[Tux4kids-commits] r1370 - in branches/commonification/tuxtype/trunk: . data data/images data/images/status data/menus src
Bolesław Kulbabiński
bolekk-guest at alioth.debian.org
Wed Aug 5 16:42:16 UTC 2009
Author: bolekk-guest
Date: 2009-08-05 16:42:16 +0000 (Wed, 05 Aug 2009)
New Revision: 1370
Added:
branches/commonification/tuxtype/trunk/data/images/status/left.png
branches/commonification/tuxtype/trunk/data/images/status/left.svg
branches/commonification/tuxtype/trunk/data/images/status/left_gray.png
branches/commonification/tuxtype/trunk/data/images/status/left_gray.svg
branches/commonification/tuxtype/trunk/data/images/status/right.png
branches/commonification/tuxtype/trunk/data/images/status/right.svg
branches/commonification/tuxtype/trunk/data/images/status/right_gray.png
branches/commonification/tuxtype/trunk/data/images/status/right_gray.svg
branches/commonification/tuxtype/trunk/data/images/status/stop.png
branches/commonification/tuxtype/trunk/data/images/status/stop.svg
branches/commonification/tuxtype/trunk/data/images/tux.svg
branches/commonification/tuxtype/trunk/data/images/tux4.png
branches/commonification/tuxtype/trunk/data/images/tux5.png
branches/commonification/tuxtype/trunk/data/images/tux6.png
branches/commonification/tuxtype/trunk/src/menu.c
branches/commonification/tuxtype/trunk/src/menu.h
Modified:
branches/commonification/tuxtype/trunk/configure.ac
branches/commonification/tuxtype/trunk/data/Makefile.am
branches/commonification/tuxtype/trunk/data/images/Makefile.am
branches/commonification/tuxtype/trunk/data/images/status/Makefile.am
branches/commonification/tuxtype/trunk/data/menus/
branches/commonification/tuxtype/trunk/src/Makefile.am
branches/commonification/tuxtype/trunk/src/SDL_extras.c
branches/commonification/tuxtype/trunk/src/SDL_extras.h
branches/commonification/tuxtype/trunk/src/alphabet.c
branches/commonification/tuxtype/trunk/src/convert_utf.c
branches/commonification/tuxtype/trunk/src/globals.h
branches/commonification/tuxtype/trunk/src/laser.c
branches/commonification/tuxtype/trunk/src/loaders.c
branches/commonification/tuxtype/trunk/src/main.c
branches/commonification/tuxtype/trunk/src/playgame.c
branches/commonification/tuxtype/trunk/src/practice.c
branches/commonification/tuxtype/trunk/src/scripting.c
branches/commonification/tuxtype/trunk/src/setup.c
branches/commonification/tuxtype/trunk/src/titlescreen.c
branches/commonification/tuxtype/trunk/src/titlescreen.h
Log:
new menu code working with TuxType
Modified: branches/commonification/tuxtype/trunk/configure.ac
===================================================================
--- branches/commonification/tuxtype/trunk/configure.ac 2009-08-05 16:23:53 UTC (rev 1369)
+++ branches/commonification/tuxtype/trunk/configure.ac 2009-08-05 16:42:16 UTC (rev 1370)
@@ -287,6 +287,7 @@
data/images/menu/Makefile
data/images/status/Makefile
data/images/tux/Makefile
+data/menus/Makefile
data/scripts/Makefile
data/sounds/Makefile
data/themes/Makefile
Modified: branches/commonification/tuxtype/trunk/data/Makefile.am
===================================================================
--- branches/commonification/tuxtype/trunk/data/Makefile.am 2009-08-05 16:23:53 UTC (rev 1369)
+++ branches/commonification/tuxtype/trunk/data/Makefile.am 2009-08-05 16:42:16 UTC (rev 1370)
@@ -1,7 +1,7 @@
## Makefile.am for tuxtype - data:
## Process with Automake to create Makefile.in
-SUBDIRS = images scripts sounds themes words fonts
+SUBDIRS = images menus scripts sounds themes words fonts
##tuxtypedatadir = $(pkgdatadir)
Modified: branches/commonification/tuxtype/trunk/data/images/Makefile.am
===================================================================
--- branches/commonification/tuxtype/trunk/data/images/Makefile.am 2009-08-05 16:23:53 UTC (rev 1369)
+++ branches/commonification/tuxtype/trunk/data/images/Makefile.am 2009-08-05 16:42:16 UTC (rev 1370)
@@ -63,5 +63,9 @@
tux1.png \
tux2.png \
tux3.png \
+ tux4.png \
+ tux5.png \
+ tux6.png \
+ tux.svg \
up.png \
world.png
Modified: branches/commonification/tuxtype/trunk/data/images/status/Makefile.am
===================================================================
--- branches/commonification/tuxtype/trunk/data/images/status/Makefile.am 2009-08-05 16:23:53 UTC (rev 1369)
+++ branches/commonification/tuxtype/trunk/data/images/status/Makefile.am 2009-08-05 16:42:16 UTC (rev 1370)
@@ -6,6 +6,16 @@
dist_images_status_DATA = gameover.png \
numbers.png \
score.png \
+ stop.png \
+ stop.svg \
+ right.png \
+ right.svg \
+ right_gray.png \
+ right_gray.svg \
+ left.png \
+ left.svg \
+ left_gray.png \
+ left_gray.svg \
tux_helmet1.png \
tux_helmet2.png \
tux_helmet3.png \
Added: branches/commonification/tuxtype/trunk/data/images/status/left.png
===================================================================
(Binary files differ)
Property changes on: branches/commonification/tuxtype/trunk/data/images/status/left.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/commonification/tuxtype/trunk/data/images/status/left.svg
===================================================================
--- branches/commonification/tuxtype/trunk/data/images/status/left.svg (rev 0)
+++ branches/commonification/tuxtype/trunk/data/images/status/left.svg 2009-08-05 16:42:16 UTC (rev 1370)
@@ -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>
Added: branches/commonification/tuxtype/trunk/data/images/status/left_gray.png
===================================================================
(Binary files differ)
Property changes on: branches/commonification/tuxtype/trunk/data/images/status/left_gray.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/commonification/tuxtype/trunk/data/images/status/left_gray.svg
===================================================================
--- branches/commonification/tuxtype/trunk/data/images/status/left_gray.svg (rev 0)
+++ branches/commonification/tuxtype/trunk/data/images/status/left_gray.svg 2009-08-05 16:42:16 UTC (rev 1370)
@@ -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>
Added: branches/commonification/tuxtype/trunk/data/images/status/right.png
===================================================================
(Binary files differ)
Property changes on: branches/commonification/tuxtype/trunk/data/images/status/right.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/commonification/tuxtype/trunk/data/images/status/right.svg
===================================================================
--- branches/commonification/tuxtype/trunk/data/images/status/right.svg (rev 0)
+++ branches/commonification/tuxtype/trunk/data/images/status/right.svg 2009-08-05 16:42:16 UTC (rev 1370)
@@ -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>
Added: branches/commonification/tuxtype/trunk/data/images/status/right_gray.png
===================================================================
(Binary files differ)
Property changes on: branches/commonification/tuxtype/trunk/data/images/status/right_gray.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/commonification/tuxtype/trunk/data/images/status/right_gray.svg
===================================================================
--- branches/commonification/tuxtype/trunk/data/images/status/right_gray.svg (rev 0)
+++ branches/commonification/tuxtype/trunk/data/images/status/right_gray.svg 2009-08-05 16:42:16 UTC (rev 1370)
@@ -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>
Added: branches/commonification/tuxtype/trunk/data/images/status/stop.png
===================================================================
(Binary files differ)
Property changes on: branches/commonification/tuxtype/trunk/data/images/status/stop.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/commonification/tuxtype/trunk/data/images/status/stop.svg
===================================================================
--- branches/commonification/tuxtype/trunk/data/images/status/stop.svg (rev 0)
+++ branches/commonification/tuxtype/trunk/data/images/status/stop.svg 2009-08-05 16:42:16 UTC (rev 1370)
@@ -0,0 +1,107 @@
+<?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="259.45691"
+ height="259.45691"
+ 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="0.35358141"
+ inkscape:cx="378.77863"
+ inkscape:cy="581.22201"
+ 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.774132,-58.953316)">
+ <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" />
+ <path
+ style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:1.89999998;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 92.57437,106.81218 L 65.499446,133.91626 L 121.42709,189.84391 L 65.499446,245.77156 L 92.57437,272.87564 L 148.50202,216.91884 L 204.4588,272.87564 L 231.53373,245.77156 L 175.60609,189.84391 L 231.53373,133.91626 L 204.4588,106.81218 L 148.50202,162.76898 L 92.57437,106.81218 z"
+ id="rect3277" />
+ </g>
+</svg>
Added: branches/commonification/tuxtype/trunk/data/images/tux.svg
===================================================================
--- branches/commonification/tuxtype/trunk/data/images/tux.svg (rev 0)
+++ branches/commonification/tuxtype/trunk/data/images/tux.svg 2009-08-05 16:42:16 UTC (rev 1370)
@@ -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="tux.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="736"
+ 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="0.52164325"
+ inkscape:cx="194.03879"
+ inkscape:cy="347.37808"
+ inkscape:window-x="0"
+ inkscape:window-y="40"
+ 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:none">
+ <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:none">
+ <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:none">
+ <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:none">
+ <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:none">
+ <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:none">
+ <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>
Added: branches/commonification/tuxtype/trunk/data/images/tux4.png
===================================================================
(Binary files differ)
Property changes on: branches/commonification/tuxtype/trunk/data/images/tux4.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/commonification/tuxtype/trunk/data/images/tux5.png
===================================================================
(Binary files differ)
Property changes on: branches/commonification/tuxtype/trunk/data/images/tux5.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/commonification/tuxtype/trunk/data/images/tux6.png
===================================================================
(Binary files differ)
Property changes on: branches/commonification/tuxtype/trunk/data/images/tux6.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Property changes on: branches/commonification/tuxtype/trunk/data/menus
___________________________________________________________________
Added: svn:ignore
+ *~
*.o
Makefile
Makefile.in
Modified: branches/commonification/tuxtype/trunk/src/Makefile.am
===================================================================
--- branches/commonification/tuxtype/trunk/src/Makefile.am 2009-08-05 16:23:53 UTC (rev 1369)
+++ branches/commonification/tuxtype/trunk/src/Makefile.am 2009-08-05 16:42:16 UTC (rev 1370)
@@ -59,6 +59,7 @@
tuxtype_SOURCES = \
playgame.c \
main.c \
+ menu.c \
titlescreen.c \
loaders.c \
setup.c \
@@ -83,6 +84,7 @@
EXTRA_DIST = titlescreen.h \
playgame.h \
laser.h \
+ menu.h \
globals.h \
funcs.h \
pixels.h \
Modified: branches/commonification/tuxtype/trunk/src/SDL_extras.c
===================================================================
--- branches/commonification/tuxtype/trunk/src/SDL_extras.c 2009-08-05 16:23:53 UTC (rev 1369)
+++ branches/commonification/tuxtype/trunk/src/SDL_extras.c 2009-08-05 16:42:16 UTC (rev 1370)
@@ -32,35 +32,89 @@
SDL_Surface* screen;
+/*
+Return a pointer to the screen we're using, as an alternative to making screen
+global. Not sure what is involved performance-wise in SDL_GetVideoSurface,
+or if this check is even necessary -Cheez
+*/
SDL_Surface* GetScreen()
{
- if (screen != SDL_GetVideoSurface() )
- {
- fprintf(stderr, "Video Surface changed from outside of SDL_Extras!\n");
- screen = SDL_GetVideoSurface();
- }
+ if (screen != SDL_GetVideoSurface() )
+ {
+ fprintf(stderr, "Video Surface changed from outside of SDL_Extras!\n");
+ screen = SDL_GetVideoSurface();
+ }
return screen;
}
-/* DrawButton() creates and draws a translucent button with */
-/* rounded ends. All colors and alpha values are supported.*/
+
+
+/* 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)
{
+ DrawButtonOn(screen, target_rect, radius, r, g, b, a);
+}
+
+void DrawButtonOn(SDL_Surface* target,
+ 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, target, 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,
- target_rect->w,
- target_rect->h,
+ 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;
+}
+/* free every surface in the array together with the array itself */
+void FreeSurfaceArray(SDL_Surface** surfs, int length)
+{
+ int i;
- SDL_BlitSurface(tmp_surf, NULL, screen, target_rect);
- SDL_FreeSurface(tmp_surf);
+ if(surfs == NULL)
+ return;
+
+ for(i = 0; i < length; i++)
+ if(surfs[i] != NULL)
+ SDL_FreeSurface(surfs[i]);
+ free(surfs);
}
+
+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;
+}
+
#endif
@@ -976,7 +1030,7 @@
{
if (blits[i].type == 'E')
{
-// DEBUGCODE
+// DEBUGCODE(debug_sdl)
// {
// fprintf(stderr, "Erasing blits[%d]\n", i);
// fprintf(stderr, "srcrect->x = %d\t srcrect->y = %d\t srcrect->w = %d\t srcrect->h = %d\n",
@@ -998,7 +1052,7 @@
{
if (blits[i].type == 'D')
{
-// DEBUGCODE
+// DEBUGCODE(debug_sdl)
// {
// fprintf(stderr, "drawing blits[%d]\n", i);
// fprintf(stderr, "srcrect->x = %d\t srcrect->y = %d\t srcrect->w = %d\t srcrect->h = %d\n",
@@ -1260,7 +1314,7 @@
return NULL;
}
-DEBUGCODE
+DEBUGCODE(debug_sdl)
{
fprintf( stderr, "\nEntering BlackOutline(): \n");
fprintf( stderr, "BlackOutline of \"%s\"\n", t );
@@ -1337,7 +1391,7 @@
out = SDL_DisplayFormatAlpha(bg);
SDL_FreeSurface(bg);
-DEBUGCODE
+DEBUGCODE(debug_sdl)
{ fprintf( stderr, "\nLeaving BlackOutline(): \n"); }
@@ -1368,7 +1422,7 @@
wcsncpy(wchar_tmp, t, length);
wchar_tmp[length] = '\0';
- DEBUGCODE
+ DEBUGCODE(debug_sdl)
{
fprintf(stderr, "In BlackOutline_w() - input wchar_t string is: %S\n", wchar_tmp);
}
@@ -1376,7 +1430,7 @@
i = ConvertToUTF8(wchar_tmp, tmp, 1024);
//tmp[i] = 0;
- DEBUGCODE
+ DEBUGCODE(debug_sdl)
{
fprintf(stderr, "In BlackOutline_w() - converted UTF8 string is: %s\n", tmp);
}
@@ -1454,7 +1508,7 @@
else
{
char buf[64];
- DEBUGCODE { fprintf(stderr, "Setting font size to %d\n", size); }
+ DEBUGCODE(debug_sdl) { fprintf(stderr, "Setting font size to %d\n", size); }
if(context != NULL)
SDLPango_FreeContext(context);
context = NULL;
@@ -1561,13 +1615,13 @@
/* try to find font in default data dir: */
sprintf(fn, "%s/fonts/%s", settings.default_data_path, font_name);
- DEBUGCODE { fprintf(stderr, "load_font(): looking for %s using bundled data paths\n", fn); }
+ DEBUGCODE(debug_sdl) { fprintf(stderr, "load_font(): looking for %s using bundled data paths\n", fn); }
/* try to load the font, if successful, return font*/
loaded_font = TTF_OpenFont(fn, font_size);
if (loaded_font != NULL)
{
- DEBUGCODE { fprintf(stderr, "load_font(): found bundled font: %s\n", fn); }
+ DEBUGCODE(debug_sdl) { fprintf(stderr, "load_font(): found bundled font: %s\n", fn); }
return loaded_font;
}
@@ -1600,13 +1654,13 @@
- DEBUGCODE { fprintf(stderr, "load_font(): looking for %s\n in OS' font path\n", fn); }
+ DEBUGCODE(debug_sdl) { fprintf(stderr, "load_font(): looking for %s\n in OS' font path\n", fn); }
/* try to load the font, if successful, return font*/
loaded_font = TTF_OpenFont(fn, font_size);
if (loaded_font != NULL)
{
- DEBUGCODE { fprintf(stderr, "load_font(): found font in OS' location: %s\n", fn); }
+ DEBUGCODE(debug_sdl) { fprintf(stderr, "load_font(): found font in OS' location: %s\n", fn); }
return loaded_font;
}
/* We could not find desired font. If we were looking for something other */
Modified: branches/commonification/tuxtype/trunk/src/SDL_extras.h
===================================================================
--- branches/commonification/tuxtype/trunk/src/SDL_extras.h 2009-08-05 16:23:53 UTC (rev 1369)
+++ branches/commonification/tuxtype/trunk/src/SDL_extras.h 2009-08-05 16:42:16 UTC (rev 1370)
@@ -63,7 +63,16 @@
#ifndef HAVE_LIBT4KCOMMON
/* "Public" function prototypes: */
SDL_Surface* GetScreen();
-void DrawButton(SDL_Rect* target_rect, int radius, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
+void DrawButton(SDL_Rect* target_rect,
+ int radius,
+ Uint8 r, Uint8 g, Uint8 b, Uint8 a);
+void DrawButtonOn(SDL_Surface* target,
+ 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);
#endif
void RoundCorners(SDL_Surface* s, Uint16 radius);
SDL_Surface* Flip(SDL_Surface *in, int x, int y);
Modified: branches/commonification/tuxtype/trunk/src/alphabet.c
===================================================================
--- branches/commonification/tuxtype/trunk/src/alphabet.c 2009-08-05 16:23:53 UTC (rev 1369)
+++ branches/commonification/tuxtype/trunk/src/alphabet.c 2009-08-05 16:42:16 UTC (rev 1370)
@@ -121,7 +121,7 @@
}
/* fn should now contain valid path to keyboard.lst: */
- DEBUGCODE{fprintf(stderr, "fn = %s\n", fn);}
+ DEBUGCODE(debug_alphabet){fprintf(stderr, "fn = %s\n", fn);}
{
char str[255];
@@ -163,7 +163,7 @@
&& (k < MAX_UNICODES)
&& !unicode_in_key_list(wide_str[2])) /* Make sure char not already added */
{
- DEBUGCODE
+ DEBUGCODE(debug_alphabet)
{
fprintf(stderr, "Adding key: Unicode char = '%C'\tUnicode value = %d\tfinger = %ld\n",
wide_str[2], wide_str[2], wcstol(&wide_str[0], NULL, 0));
@@ -483,7 +483,7 @@
last_choice = choice;
/* NOTE need %S rather than %s because of wide characters */
- DEBUGCODE { fprintf(stderr, "Selected word is: %S\n", word_list[choice]); }
+ DEBUGCODE(debug_alphabet) { fprintf(stderr, "Selected word is: %S\n", word_list[choice]); }
return word_list[choice];
}
@@ -507,7 +507,7 @@
FILE* wordFile = NULL;
- DEBUGCODE { fprintf(stderr, "Entering GenerateWordList() for file: %s\n", wordFn); }
+ DEBUGCODE(debug_alphabet) { fprintf(stderr, "Entering GenerateWordList() for file: %s\n", wordFn); }
num_words = 0;
@@ -520,7 +520,7 @@
}
/* --- load words from file named as argument: */
- DEBUGCODE { fprintf(stderr, "Loading words from file: %s\n", wordFn); }
+ DEBUGCODE(debug_alphabet) { fprintf(stderr, "Loading words from file: %s\n", wordFn); }
/* ignore the title (i.e. first line) */
/* (compiler complains unless we inspect return value) */
@@ -529,7 +529,7 @@
while (!feof(wordFile) && (num_words < MAX_NUM_WORDS))
{
ret = fscanf( wordFile, "%[^\n]\n", temp_word);
- DEBUGCODE {fprintf(stderr, "temp_word = %s\n", temp_word);}
+ DEBUGCODE(debug_alphabet) {fprintf(stderr, "temp_word = %s\n", temp_word);}
/* Ignore comment lines - starting with '#' */
if (temp_word[0] == '#')
@@ -582,7 +582,7 @@
/* If we make it to here, OK to add word: */
/* NOTE we have to add one to the length argument */
/* to include the terminating null. */
- DEBUGCODE
+ DEBUGCODE(debug_alphabet)
{
fprintf(stderr, "Adding word: %ls\n", temp_wide_word);
}
@@ -627,7 +627,7 @@
if (t[0] != 0)
{
- DEBUGCODE
+ DEBUGCODE(debug_alphabet)
{
fprintf(stderr, "Creating SDL_Surface for list element %d, char = '%lc', Unicode value = %d\n", i, *t, *t);
}
@@ -1182,18 +1182,18 @@
char buf[8];
// TTF_Font* smallfont = NULL;
- DEBUGCODE { printf("Entering GenerateKeyboard\n"); }
+ DEBUGCODE(debug_alphabet) { printf("Entering GenerateKeyboard\n"); }
if(!keyboard)
{
- DEBUGCODE { printf("Error - keyboard SDL_Surface ptr null\n"); }
+ DEBUGCODE(debug_alphabet) { printf("Error - keyboard SDL_Surface ptr null\n"); }
return;
}
// smallfont = LoadFont(settings.theme_font_name, 15);
// if(!smallfont)
// {
-// DEBUGCODE { printf("Error loading font\n"); }
+// DEBUGCODE(debug_alphabet) { printf("Error loading font\n"); }
// return;
// }
@@ -1239,7 +1239,7 @@
new.y -= 9;
}
- DEBUGCODE { printf("Making %d : %C\n",i,keyboard_list[i].unicode_value); }
+ DEBUGCODE(debug_alphabet) { printf("Making %d : %C\n",i,keyboard_list[i].unicode_value); }
ConvertToUTF8(t, buf, 8);
tmp = SimpleText(buf, 15, &black);
// tmp = TTF_RenderUNICODE_Blended((TTF_Font*)smallfont, t, black);
@@ -1253,7 +1253,7 @@
//Know this is safe - if NULL would have returned above:
// TTF_CloseFont(smallfont);
- DEBUGCODE { printf("Leaving GenerateKeyboard\n"); }
+ DEBUGCODE(debug_alphabet) { printf("Leaving GenerateKeyboard\n"); }
}
@@ -1343,7 +1343,7 @@
i++;
}
- DEBUGCODE
+ DEBUGCODE(debug_alphabet)
{
fprintf(stderr, "char_list = %S\n", char_list);
}
@@ -1380,7 +1380,7 @@
i++;
}
- DEBUGCODE
+ DEBUGCODE(debug_alphabet)
{
fprintf(stderr, "char_list = %S\n", char_list);
}
@@ -1405,7 +1405,7 @@
/* unicode already in list: */
if (char_list[i] == uc)
{
- DEBUGCODE{ fprintf(stderr,
+ DEBUGCODE(debug_alphabet){ fprintf(stderr,
"Unicode value: %d\tcharacter %lc already in list\n",
uc, uc);}
return 0;
@@ -1413,7 +1413,7 @@
if (char_list[i] == '\0')
{
- DEBUGCODE{ fprintf(stderr, "Adding unicode value: %d\tcharacter %lc\n", uc, uc);}
+ DEBUGCODE(debug_alphabet){ fprintf(stderr, "Adding unicode value: %d\tcharacter %lc\n", uc, uc);}
char_list[i] = uc;
char_list[i + 1] = '\0';
return 1;
Modified: branches/commonification/tuxtype/trunk/src/convert_utf.c
===================================================================
--- branches/commonification/tuxtype/trunk/src/convert_utf.c 2009-08-05 16:23:53 UTC (rev 1369)
+++ branches/commonification/tuxtype/trunk/src/convert_utf.c 2009-08-05 16:42:16 UTC (rev 1370)
@@ -45,7 +45,7 @@
return 0;
}
- DEBUGCODE {fprintf(stderr, "ConvertFromUTF8(): UTF8_word = %s\n", UTF8_word);}
+ DEBUGCODE(debug_convert_utf) {fprintf(stderr, "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.... */
@@ -61,7 +61,7 @@
iconv_close(conv_descr);
wcsncpy(wide_word, temp_wchar, max_length);
- DEBUGCODE {fprintf(stderr, "ConvertToUTF8(): wide_word = %S\n", wide_word);}
+ DEBUGCODE(debug_convert_utf) {fprintf(stderr, "ConvertToUTF8(): wide_word = %S\n", wide_word);}
return wcslen(wide_word);
}
@@ -88,7 +88,7 @@
size_t in_length = (size_t)UTF_BUF_LENGTH;
size_t out_length = (size_t)UTF_BUF_LENGTH;
- DEBUGCODE {fprintf(stderr, "ConvertToUTF8(): wide_word = %S\n", wide_word);}
+ DEBUGCODE(debug_convert_utf) {fprintf(stderr, "ConvertToUTF8(): wide_word = %S\n", wide_word);}
if(max_length > UTF_BUF_LENGTH)
{
@@ -111,7 +111,7 @@
iconv_close(conv_descr);
strncpy(UTF8_word, temp_UTF8, max_length);
- DEBUGCODE {fprintf(stderr, "ConvertToUTF8(): UTF8_word = %s\n", UTF8_word);}
+ DEBUGCODE(debug_convert_utf) {fprintf(stderr, "ConvertToUTF8(): UTF8_word = %s\n", UTF8_word);}
return strlen(UTF8_word);
}
Modified: branches/commonification/tuxtype/trunk/src/globals.h
===================================================================
--- branches/commonification/tuxtype/trunk/src/globals.h 2009-08-05 16:23:53 UTC (rev 1369)
+++ branches/commonification/tuxtype/trunk/src/globals.h 2009-08-05 16:42:16 UTC (rev 1370)
@@ -42,12 +42,16 @@
extern const int debug_options;
extern const int debug_convert_utf;
extern const int debug_multiplayer;
+extern const int debug_practice;
+extern const int debug_scripting;
+extern const int debug_laser;
+extern const int debug_alphabet;
#ifndef HAVE_LIBT4KCOMMON
extern const int debug_all;
#endif
/* debug macros */
-//#define DEBUGCODE(mask) if((mask) & debug_status)
+#define DEBUGCODE(mask) if((mask) & debug_status)
#define DEBUGMSG(mask, ...) if((mask) & debug_status){ fprintf(stderr, __VA_ARGS__); fflush(stderr); }
#ifdef HAVE_LIBT4KCOMMON
@@ -173,7 +177,6 @@
*/
#define LOG( str ) if (settings.debug_on) fprintf( stderr, str );
-#define DEBUGCODE if (settings.debug_on)
#define DOUT(x) if (settings.debug_on) fprintf(stderr, "%s = %d\n", #x, x);
@@ -188,13 +191,13 @@
#define FULL_CIRCLE 140
/* Menu Prototypes */
-enum Game_Type {
+/*enum Game_Type {
QUIT_GAME, CASCADE, OPTIONS, LESSONS,
INSTRUCT_CASCADE, CASCADE1, CASCADE2, CASCADE3, CASCADE4,
INSTRUCT_LASER, LASER1, LASER2, LASER3, LASER4,
PHRASE_TYPING, ASDF, ALL, MAIN, SET_LANGUAGE, PROJECT_INFO, NOT_CODED,
LEVEL1, LEVEL2, LEVEL3, LEVEL4, LASER, INSTRUCT, EDIT_WORDLIST, NONE};
-
+*/
/* Title sequence constants */
#define PRE_ANIM_FRAMES 10
#define PRE_FRAME_MULT 3
Modified: branches/commonification/tuxtype/trunk/src/laser.c
===================================================================
--- branches/commonification/tuxtype/trunk/src/laser.c 2009-08-05 16:23:53 UTC (rev 1369)
+++ branches/commonification/tuxtype/trunk/src/laser.c 2009-08-05 16:42:16 UTC (rev 1370)
@@ -183,7 +183,7 @@
key_unicode = event.key.keysym.unicode;
//key_unicode = event.key.keysym.unicode & 0xff;
- DEBUGCODE
+ DEBUGCODE(debug_laser)
{
fprintf(stderr, "key_unicode = %d\n", key_unicode);
}
@@ -196,7 +196,7 @@
key_unicode -= 32; //same for non-US chars
LOG ("After checking for lower case:\n");
- DEBUGCODE
+ DEBUGCODE(debug_laser)
{
fprintf(stderr,
"key_unicode = %d\n", key_unicode);
@@ -616,7 +616,7 @@
MusicPlay(musics[MUS_GAME + (rand() % NUM_MUSICS)], 0);
/* Pause (keep frame-rate event) */
- DEBUGCODE
+ DEBUGCODE(debug_laser)
{
fprintf(stderr, "now_time = %d\tlast_time = %d, elapsed time = %d\n",
now_time, last_time, now_time - last_time);
@@ -773,7 +773,7 @@
sprintf(fname, "/images/backgrounds/%d.jpg", i);
- DEBUGCODE { fprintf(stderr, "Will try to load file:\t%s", fname); }
+ DEBUGCODE(debug_laser) { fprintf(stderr, "Will try to load file:\t%s", fname); }
FreeBothBkgds(); // LoadBothBkgds() actually does this just in case
@@ -817,7 +817,7 @@
int add = (rand() % (diff_level + 2));
LOG ("Entering laser_add_comet()\n");
- DEBUGCODE { fprintf(stderr, "Adding %d comets \n", add); }
+ DEBUGCODE(debug_laser) { fprintf(stderr, "Adding %d comets \n", add); }
if (0 == NUM_CITIES % 2) /* Even number of cities */
{
@@ -856,7 +856,7 @@
add--;
}
- DEBUGCODE {if (location == MAX_COMETS)
+ DEBUGCODE(debug_laser) {if (location == MAX_COMETS)
printf("Location == MAX_COMETS, we have max on screen\n");}
}
}
@@ -873,7 +873,7 @@
return;
}
- DEBUGCODE {fprintf(stderr, "word is: %S\tlength is: %d\n", word, (int)wcslen(word));}
+ DEBUGCODE(debug_laser) {fprintf(stderr, "word is: %S\tlength is: %d\n", word, (int)wcslen(word));}
do
{
target = rand() % (NUM_CITIES - wcslen(word) + 1);
@@ -906,7 +906,7 @@
/* Save pointer for next time through: */
prev_comet = &comets[location];
- DEBUGCODE {fprintf(stderr, "Assigning letter to comet: %C\n", word[i]);}
+ DEBUGCODE(debug_laser) {fprintf(stderr, "Assigning letter to comet: %C\n", word[i]);}
}
}
}
Modified: branches/commonification/tuxtype/trunk/src/loaders.c
===================================================================
--- branches/commonification/tuxtype/trunk/src/loaders.c 2009-08-05 16:23:53 UTC (rev 1369)
+++ branches/commonification/tuxtype/trunk/src/loaders.c 2009-08-05 16:42:16 UTC (rev 1370)
@@ -158,7 +158,7 @@
s3 = bind_textdomain_codeset(PACKAGE, "UTF-8");
s4 = textdomain(PACKAGE);
- DEBUGCODE
+ DEBUGCODE(debug_loaders)
{
fprintf(stderr, "PACKAGE = %s\n", PACKAGE);
fprintf(stderr, "TUXLOCALE = %s\n", TUXLOCALE);
@@ -174,7 +174,7 @@
/* on some Windows versions, AFAICT */
snprintf(buf, 30, "%s", settings.theme_locale_name);
buf[5] = '\0'; //en_US" rather than "en_US.utf8"
- DEBUGCODE { fprintf(stderr, "buf is: %s\n", buf); }
+ DEBUGCODE(debug_loaders) { fprintf(stderr, "buf is: %s\n", buf); }
if (my_setenv("LANG", buf) == -1)
{
@@ -206,7 +206,7 @@
orig = LoadImageNoPrefix(datafile, IMG_REGULAR);
- DEBUGCODE
+ DEBUGCODE(debug_loaders)
{
printf("Scaling %dx%d to: %dx%d, %dx%d\n",
orig->w, orig->h, RES_X, RES_Y, fs_res_x, fs_res_y);
@@ -235,7 +235,7 @@
if (ret == 2) //orig won't be used at all
SDL_FreeSurface(orig);
- DEBUGCODE
+ DEBUGCODE(debug_loaders)
{
printf("%d images scaled\nLeaving LoadBothBkgds()\n", ret);
}
Modified: branches/commonification/tuxtype/trunk/src/main.c
===================================================================
--- branches/commonification/tuxtype/trunk/src/main.c 2009-08-05 16:23:53 UTC (rev 1369)
+++ branches/commonification/tuxtype/trunk/src/main.c 2009-08-05 16:42:16 UTC (rev 1370)
@@ -44,6 +44,10 @@
const int debug_options = 1 << 13;
const int debug_convert_utf = 1 << 14;
const int debug_multiplayer = 1 << 15;
+const int debug_practice = 1 << 16;
+const int debug_scripting = 1 << 17;
+const int debug_laser = 1 << 18;
+const int debug_alphabet = 1 << 19;
#ifndef HAVE_LIBT4KCOMMON
const int debug_all = ~0;
#endif
@@ -97,9 +101,6 @@
else if ( (strcmp(argv[i], "-sp") == 0)
|| (strcmp(argv[i], "--speed") == 0))
settings.speed_up = 1;
- else if ( (strcmp(argv[i], "-d") == 0)
- || (strcmp(argv[i], "--debug") == 0))
- settings.debug_on = 1;
else if ( (strcmp(argv[i], "-s") == 0)
|| (strcmp(argv[i], "--sound") == 0))
settings.sys_sound = 1;
@@ -172,6 +173,22 @@
{
debug_status |= debug_options;
}
+ else if (strcmp(argv[i], "--debug-practice") == 0)
+ {
+ debug_status |= debug_practice;
+ }
+ else if (strcmp(argv[i], "--debug-scripting") == 0)
+ {
+ debug_status |= debug_scripting;
+ }
+ else if (strcmp(argv[i], "--debug-laser") == 0)
+ {
+ debug_status |= debug_laser;
+ }
+ else if (strcmp(argv[i], "--debug-alphabet") == 0)
+ {
+ debug_status |= debug_alphabet;
+ }
else
{
fprintf(stderr, "Unknown option: %s\n", argv[i]);
@@ -187,6 +204,8 @@
Uint32 lib_flags = 0;
int i;
+ handle_command_args(argc, argv);
+
srand(time(NULL));
Opts_Initialize(); // First, initialize settings with hard-coded defaults
@@ -194,10 +213,7 @@
SetupPaths(NULL);
LoadSettings(); // Second, read saved any saved settings
- DEBUGCODE
- {
- fprintf(stderr, "\n%s, version %s BEGIN\n", PACKAGE, VERSION);
- }
+ DEBUGMSG(debug_setup, "\n%s, version %s BEGIN\n", PACKAGE, VERSION);
//Now initialize locale/gettext system.
//This is done after reading settings just so we can print
@@ -210,7 +226,7 @@
s3 = bind_textdomain_codeset(PACKAGE, "UTF-8");
s4 = textdomain(PACKAGE);
- DEBUGCODE
+ DEBUGCODE(debug_setup)
{
fprintf(stderr, "PACKAGE = %s\n", PACKAGE);
fprintf(stderr, "TUXLOCALE = %s\n", TUXLOCALE);
@@ -223,7 +239,6 @@
}
}
-
lib_flags = SDL_INIT_VIDEO;
lib_flags |= SDL_INIT_AUDIO;
Added: branches/commonification/tuxtype/trunk/src/menu.c
===================================================================
--- branches/commonification/tuxtype/trunk/src/menu.c (rev 0)
+++ branches/commonification/tuxtype/trunk/src/menu.c 2009-08-05 16:42:16 UTC (rev 1370)
@@ -0,0 +1,1070 @@
+/*
+ t4k-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
+
+ Copyright: See COPYING file that comes with this distribution.
+*/
+
+#ifndef HAVE_LIBT4KCOMMON
+#include "globals.h"
+#include "menu.h"
+#include "funcs.h"
+#include "compiler.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+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;
+
+/* titlescreen & menu frame rate */
+#define MAX_FPS 30
+/* number of "real" frames per one sprite frame */
+#define SPRITE_FRAME_DELAY 6
+
+
+#define QUIT -2
+#define STOP -1
+#define RUN_MAIN_MENU -3
+
+int n_of_activities;
+char** activities;
+
+char* data_prefix;
+
+Mix_Chunk* snd_click;
+Mix_Chunk* snd_hover;
+char* music_path;
+
+#define N_OF_MENUS 10
+MenuNode* menus[N_OF_MENUS];
+
+/* font size used in current resolution */
+int curr_font_size;
+
+/* buffer size used when reading attributes or names */
+const int buf_size = 512;
+
+/* 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, menu_title_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 = "/images/status/stop.svg";
+const char* prev_path = "/images/status/left.svg";
+const char* next_path = "/images/status/right.svg";
+const char* prev_gray_path = "/images/status/left_gray.svg";
+const char* next_gray_path = "/images/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;
+
+
+
+/* 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);
+
+SDL_Surface** render_buttons(MenuNode* menu, bool selected);
+char* find_longest_text(MenuNode* menu, int* length);
+void set_font_size();
+void prerender_menu(MenuNode* menu);
+
+
+/* initialization of menu module */
+void SetActivitiesList(int num, char** acts)
+{
+ n_of_activities = num;
+ activities = acts;
+}
+
+void SetMenuSounds(char* mus_path, Mix_Chunk* click, Mix_Chunk* hover)
+{
+ snd_click = click;
+ snd_hover = hover;
+ music_path = mus_path;
+}
+
+void SetImagePathPrefix(char* pref)
+{
+ data_prefix = pref;
+}
+
+/*
+ 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)
+ {
+ if(strcmp(attr_val, "RUN_MAIN_MENU") == 0)
+ node->activity = RUN_MAIN_MENU;
+ else
+ 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.
+ All given strings are copied */
+void CreateOneLevelMenu(int index, int items, char** item_names, char** sprite_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]);
+ if(sprite_names && sprite_names[i])
+ menu->submenu[i]->icon_name = strdup(sprite_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;
+ }
+
+ menus[index] = menu;
+}
+
+
+
+/* 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 RunMenu(int index, bool return_choice, void (*draw_background)(), int (*handle_event)(SDL_Event*), void (*handle_animations)(), int (*handle_activity)(int, int))
+{
+ SDL_Surface** menu_item_unselected = NULL;
+ SDL_Surface** menu_item_selected = NULL;
+ SDL_Surface* title_surf;
+ SDL_Event event;
+ MenuNode* menu = menus[index];
+ 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");
+
+ draw_background();
+ /* 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, GetScreen(), &menu->submenu[menu->first_entry + i]->button_rect);
+ else
+ SDL_BlitSurface(menu_item_unselected[i], NULL, GetScreen(), &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, GetScreen(), &menu->submenu[menu->first_entry + i]->icon_rect);
+ }
+
+ SDL_BlitSurface(stop_button, NULL, GetScreen(), &stop_rect);
+
+ if(menu->entries_per_screen < menu->submenu_size)
+ {
+ /* display arrows */
+ if(menu->first_entry > 0)
+ SDL_BlitSurface(prev_arrow, NULL, GetScreen(), &prev_rect);
+ else
+ SDL_BlitSurface(prev_gray, NULL, GetScreen(), &prev_rect);
+ if(menu->first_entry + items < menu->submenu_size)
+ SDL_BlitSurface(next_arrow, NULL, GetScreen(), &next_rect);
+ else
+ SDL_BlitSurface(next_gray, NULL, GetScreen(), &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, GetScreen(), &menu_title_rect);
+ SDL_FreeSurface(title_surf);
+ }
+ SDL_UpdateRect(GetScreen(), 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(old_loc != i && snd_hover)
+ PlaySound(snd_hover);
+ 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)
+ {
+ if(click_flag)
+ {
+ if(snd_hover)
+ PlaySound(snd_hover);
+ 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)
+ {
+ if(click_flag)
+ {
+ if(snd_hover)
+ PlaySound(snd_hover);
+ click_flag = 0;
+ }
+ }
+
+ /* "stop" button */
+ else if (inRect(stop_rect, event.motion.x, event.motion.y ))
+ {
+ if(click_flag)
+ {
+ if(snd_hover)
+ PlaySound(snd_hover);
+ 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(snd_click)
+ PlaySound(snd_click);
+ 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(snd_click)
+ PlaySound(snd_click);
+ 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(snd_click)
+ PlaySound(snd_click);
+ action = PAGEDOWN;
+ }
+
+ /* "Stop" button - go to main menu: */
+ else if (inRect(stop_rect, event.button.x, event.button.y ))
+ {
+ if(snd_click)
+ PlaySound(snd_click);
+ 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(snd_click)
+ PlaySound(snd_click);
+ action = CLICK;
+ break;
+ }
+
+ /* Go to previous page, if present: */
+ case SDLK_LEFT:
+ case SDLK_PAGEUP:
+ {
+ if(snd_click)
+ PlaySound(snd_click);
+ if (menu->first_entry > 0)
+ action = PAGEUP;
+ break;
+ }
+
+ /* Go to next page, if present: */
+ case SDLK_RIGHT:
+ case SDLK_PAGEDOWN:
+ {
+ if(snd_click)
+ PlaySound(snd_click);
+ if (menu->first_entry + items < menu->submenu_size)
+ action = PAGEDOWN;
+ break;
+ }
+
+ /* Go up one entry, if present: */
+ case SDLK_UP:
+ {
+ if(snd_hover)
+ PlaySound(snd_hover);
+ if (loc > 0)
+ loc--;
+ else if (menu->submenu_size <= menu->entries_per_screen)
+ loc = menu->submenu_size - 1; // wrap around if only 1 GetScreen()
+ else if (menu->first_entry > 0)
+ {
+ loc = menu->entries_per_screen - 1;
+ action = PAGEUP;
+ }
+ break;
+ }
+
+ case SDLK_DOWN:
+ {
+ if(snd_hover)
+ PlaySound(snd_hover);
+ 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 GetScreen()
+ else if (menu->first_entry + menu->entries_per_screen < menu->submenu_size)
+ {
+ loc = 0;
+ action = PAGEDOWN;
+ }
+ break;
+ }
+
+ /* Toggle GetScreen() mode: */
+ case SDLK_F10:
+ {
+ SwitchScreenMode();
+ action = RESIZED;
+ break;
+ }
+
+ /* Toggle menu music: */
+ case SDLK_F11:
+ {
+ if(IsPlayingMusic())
+ {
+ AudioMusicUnload();
+ }
+ else if(music_path)
+ {
+ AudioMusicLoad(music_path, -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, GetScreen(), &tmp_rect);
+ if(menu->submenu[menu->first_entry + old_loc]->icon)
+ SDL_BlitSurface(menu->submenu[menu->first_entry + old_loc]->icon->default_img, NULL, GetScreen(), &menu->submenu[menu->first_entry + old_loc]->icon_rect);
+ SDL_UpdateRect(GetScreen(), 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, GetScreen(), &tmp_rect);
+ if(menu->submenu[menu->first_entry + loc]->icon)
+ {
+ SDL_BlitSurface(menu->submenu[menu->first_entry + loc]->icon->default_img, NULL, GetScreen(), &menu->submenu[menu->first_entry + loc]->icon_rect);
+ menu->submenu[menu->first_entry + loc]->icon->cur = 0;
+ }
+ SDL_UpdateRect(GetScreen(), tmp_rect.x, tmp_rect.y, tmp_rect.w, tmp_rect.h);
+ }
+ old_loc = loc;
+ }
+
+ if(handle_event(&event))
+ stop = true;
+
+ switch(action)
+ {
+ case RESIZED:
+ RenderTitleScreen();
+ menu->first_entry = 0;
+ PrerenderAll();
+ 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 = menus[index];
+ }
+ 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)
+ {
+ SDL_BlitSurface(menu_item_selected[loc], NULL, GetScreen(), &menu->submenu[menu->first_entry + loc]->icon_rect);
+ SDL_BlitSurface(tmp_sprite->frame[tmp_sprite->cur], NULL, GetScreen(), &menu->submenu[menu->first_entry + loc]->icon_rect);
+ UpdateRect(GetScreen(), &menu->submenu[menu->first_entry + loc]->icon_rect);
+ NextFrame(tmp_sprite);
+ }
+ }
+
+ handle_animations();
+
+ /* 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, items;
+
+ DEBUGMSG(debug_menu, "Entering render_buttons()\n");
+
+ 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(GetScreen(), &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 */
+ 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);
+ }
+
+ DEBUGMSG(debug_menu, "Leaving render_buttons()\n");
+ 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, "%s/images/sprites/%s", data_prefix, 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]);
+ }
+}
+
+void PrerenderMenu(int index)
+{
+ prerender_menu(menus[index]);
+}
+
+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 PrerenderAll()
+{
+ int i;
+ char fn[PATH_MAX];
+
+ SetRect(&menu_rect, menu_pos);
+
+ SetRect(&stop_rect, stop_pos);
+ if(stop_button)
+ SDL_FreeSurface(stop_button);
+ sprintf(fn, "%s%s", data_prefix, stop_path);
+ stop_button = LoadImageOfBoundingBox(fn, IMG_ALPHA, stop_rect.w, stop_rect.h);
+ /* move button to the right */
+ stop_rect.x = GetScreen()->w - stop_button->w;
+
+ SetRect(&prev_rect, prev_pos);
+ if(prev_arrow)
+ SDL_FreeSurface(prev_arrow);
+ sprintf(fn, "%s%s", data_prefix, prev_path);
+ prev_arrow = LoadImageOfBoundingBox(fn, IMG_ALPHA, prev_rect.w, prev_rect.h);
+ if(prev_gray)
+ SDL_FreeSurface(prev_gray);
+ sprintf(fn, "%s%s", data_prefix, prev_gray_path);
+ prev_gray = LoadImageOfBoundingBox(fn, 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);
+ sprintf(fn, "%s%s", data_prefix, next_path);
+ next_arrow = LoadImageOfBoundingBox(fn, IMG_ALPHA, next_rect.w, next_rect.h);
+ if(next_gray)
+ SDL_FreeSurface(next_gray);
+ sprintf(fn, "%s%s", data_prefix, next_gray_path);
+ next_gray = LoadImageOfBoundingBox(fn, IMG_ALPHA, next_rect.w, next_rect.h);
+
+ set_font_size();
+
+ for(i = 0; i < N_OF_MENUS; i++)
+ if(menus[i])
+ PrerenderMenu(i);
+}
+
+void LoadMenu(int index, const char* file_name)
+{
+ FILE* menu_file = NULL;
+
+ if(menus[index])
+ {
+ free_menu(menus[index]);
+ menus[index] = NULL;
+ }
+
+ menu_file = fopen(file_name, "r");
+ if(menu_file == NULL)
+ {
+ DEBUGMSG(debug_menu, "LoadMenu(): Could not load %s !\n", file_name);
+ }
+ else
+ {
+ menus[index] = load_menu_from_file(menu_file, NULL);
+ fclose(menu_file);
+ }
+}
+
+
+
+/* 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");
+}
+
+#endif //HAVE_LIBT4KCOMMON
Added: branches/commonification/tuxtype/trunk/src/menu.h
===================================================================
--- branches/commonification/tuxtype/trunk/src/menu.h (rev 0)
+++ branches/commonification/tuxtype/trunk/src/menu.h 2009-08-05 16:42:16 UTC (rev 1370)
@@ -0,0 +1,37 @@
+/*
+ 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"
+
+#ifndef HAVE_LIBT4KCOMMON
+extern SDL_Rect menu_rect, stop_rect, prev_rect, next_rect;
+extern SDL_Surface *stop_button, *prev_arrow, *next_arrow, *prev_gray, *next_gray;
+
+void SetActivitiesList(int num, char** acts);
+void SetMenuSounds(char* mus_path, Mix_Chunk* click, Mix_Chunk* hover);
+void SetImagePathPrefix(char* pref);
+
+void CreateOneLevelMenu(int index, int items, char** item_names, char** sprite_names, char* title, char* trailer);
+int RunMenu(int index, bool return_choice, void (*draw_background)(), int (*handle_event)(SDL_Event*), void (*handle_animations)(), int (*handle_activity)(int, int));
+void PrerenderMenu(int index);
+void PrerenderAll();
+void LoadMenu(int index, const char* file_name);
+void UnloadMenus(void);
+
+#endif // HAVE_LIBT4KCOMMON
+#endif // MENU_H
+
Modified: branches/commonification/tuxtype/trunk/src/playgame.c
===================================================================
--- branches/commonification/tuxtype/trunk/src/playgame.c 2009-08-05 16:23:53 UTC (rev 1369)
+++ branches/commonification/tuxtype/trunk/src/playgame.c 2009-08-05 16:42:16 UTC (rev 1370)
@@ -116,7 +116,7 @@
Uint16 key_unicode;
Uint32 last_time, now_time;
- DEBUGCODE
+ DEBUGCODE(debug_game)
{
fprintf(stderr, "->Entering PlayCascade(): level=%i\n", diflevel);
}
@@ -199,7 +199,7 @@
if (settings.hidden && curlevel == 3)
sprintf(filename, "/images/hidden.jpg");
- DEBUGCODE
+ DEBUGCODE(debug_game)
{
fprintf(stderr, "->>Loading background: %s\n", filename);
}
@@ -302,7 +302,7 @@
/* See what Unicode value was typed: */
key_unicode = event.key.keysym.unicode;
- DEBUGCODE
+ DEBUGCODE(debug_game)
{
fprintf(stderr,
"\nkey_unicode = %d\twchar_t = %lc\t\n",
@@ -317,7 +317,7 @@
key_unicode -= 32; //same for non-US chars
LOG ("After checking for lower case:\n");
- DEBUGCODE
+ DEBUGCODE(debug_game)
{
fprintf(stderr,
"key_unicode = %d\twchar_t = %lc\\n\n",
@@ -380,7 +380,7 @@
/* Pause (keep frame-rate event) */
now_time = SDL_GetTicks();
- DEBUGCODE
+ DEBUGCODE(debug_game)
{
fprintf(stderr, "now_time = %d\tlast_time = %d, elapsed time = %d\n",
now_time, last_time, now_time - last_time);
@@ -609,7 +609,7 @@
char filename[FNLEN];
LOG( "=LoadOthers()\n" );
- DEBUGCODE
+ DEBUGCODE(debug_game)
{
fprintf(stderr, "settings.theme_font_name is %s\n",
settings.theme_font_name);
@@ -1038,7 +1038,7 @@
/
(fish_object[*fishies].dy);
- DEBUGCODE
+ DEBUGCODE(debug_game)
{
/* NOTE need %S rather than %s because of wide characters */
fprintf(stderr, "Spawn fishy with word '%S'\n", fish_object[*fishies].word);
Modified: branches/commonification/tuxtype/trunk/src/practice.c
===================================================================
--- branches/commonification/tuxtype/trunk/src/practice.c 2009-08-05 16:23:53 UTC (rev 1369)
+++ branches/commonification/tuxtype/trunk/src/practice.c 2009-08-05 16:42:16 UTC (rev 1370)
@@ -221,7 +221,7 @@
medfontsize, phrase_draw_width);
/* Draw the phrase to be typed up to the next wrapping point: */
- DEBUGCODE
+ DEBUGCODE(debug_practice)
{
wchar_t buf[200];
wcsncpy(buf, &phrases[cur_phrase][prev_wrap], wrap_pt + 1);
@@ -247,7 +247,7 @@
medfontsize, &white,
cursor - prev_wrap);
- DEBUGCODE
+ DEBUGCODE(debug_practice)
{
wchar_t buf[200];
wcsncpy(buf, &phrases[cur_phrase][prev_wrap], cursor - prev_wrap);
@@ -854,7 +854,7 @@
int load_failed = 0;
int labels_ok = 0;
- DEBUGCODE { printf("Entering practice_load_media\n"); }
+ DEBUGCODE(debug_practice) { printf("Entering practice_load_media\n"); }
/* load needed SDL_Surfaces: */
@@ -909,7 +909,7 @@
GenerateKeyboard(keyboard);
LOG("DONE - Loading practice media\n");
- DEBUGCODE { printf("Leaving practice_load_media\n"); }
+ DEBUGCODE(debug_practice) { printf("Leaving practice_load_media\n"); }
return 1;
}
@@ -959,7 +959,7 @@
calc_font_sizes();
text_height = fontsize * 1.5;
- DEBUGCODE
+ DEBUGCODE(debug_practice)
{
fprintf(stderr, "Entering recalc_positions(), screen is %d x %d\n", screen->w, screen->h);
}
@@ -1230,7 +1230,7 @@
return 0;
}
- DEBUGCODE { printf("load_phrases(): phrases file is '%s'\n", fn ); }
+ DEBUGCODE(debug_practice) { printf("load_phrases(): phrases file is '%s'\n", fn ); }
/* We know it will open OK because we already ran CheckFile() on it */
fp = fopen(fn, "r");
@@ -1244,7 +1244,7 @@
if (EOF != fscanf(fp, "%[^\n]\n", buf))
{
ConvertFromUTF8(phrases[num_phrases], buf, MAX_PHRASE_LENGTH);
- DEBUGCODE {printf("phrase %d:\t%S\n", num_phrases, phrases[num_phrases]);}
+ DEBUGCODE(debug_practice) {printf("phrase %d:\t%S\n", num_phrases, phrases[num_phrases]);}
num_phrases++;
}
}
@@ -1289,7 +1289,7 @@
}
DOUT(width);
- DEBUGCODE{ fprintf(stderr, "wstr = %S\n", wstr);}
+ DEBUGCODE(debug_practice){ fprintf(stderr, "wstr = %S\n", wstr);}
phr_length = wcslen(wstr);
@@ -1323,7 +1323,7 @@
/* Copy string into buf and null terminate after point to be checked: */
wcsncpy(buf, wstr, MAX_PHRASE_LENGTH);
buf[word_end + 1] = '\0';
- DEBUGCODE{ fprintf(stderr, "buf = %S\n", buf);}
+ DEBUGCODE(debug_practice){ fprintf(stderr, "buf = %S\n", buf);}
/* Need to convert to UTF8 because couldn't get UNICODE version to work: */
ConvertToUTF8(buf, UTF8buf, MAX_PHRASE_LENGTH);
@@ -1345,7 +1345,7 @@
/* whether or not we are at the end of the string: */
if (test_w > width)
{
- DEBUGCODE
+ DEBUGCODE(debug_practice)
{
fprintf(stderr, "width exceeded, returning end of previous word as wrap point\n");
fprintf(stderr, "prev_word_end is %d\n", prev_word_end);
@@ -1357,7 +1357,7 @@
{
if (i >= phr_length)
{
- DEBUGCODE
+ DEBUGCODE(debug_practice)
{
fprintf(stderr, "width not exceeded, returning because end of string reached\n");
fprintf(stderr, "word_end is %d\n", word_end);
Modified: branches/commonification/tuxtype/trunk/src/scripting.c
===================================================================
--- branches/commonification/tuxtype/trunk/src/scripting.c 2009-08-05 16:23:53 UTC (rev 1369)
+++ branches/commonification/tuxtype/trunk/src/scripting.c 2009-08-05 16:42:16 UTC (rev 1370)
@@ -148,7 +148,7 @@
sprintf(script_path, "%s/scripts", settings.theme_data_path);
if (CheckFile(script_path))
{
- DEBUGCODE {fprintf(stderr, "Using theme script dir: %s\n", script_path);}
+ DEBUGCODE(debug_scripting) {fprintf(stderr, "Using theme script dir: %s\n", script_path);}
found = 1;
}
}
@@ -159,7 +159,7 @@
sprintf( script_path, "%s/scripts", settings.default_data_path);
if (CheckFile(script_path))
{
- DEBUGCODE { fprintf(stderr, "Using theme script dir: %s\n", script_path); }
+ DEBUGCODE(debug_scripting) { fprintf(stderr, "Using theme script dir: %s\n", script_path); }
found = 1;
}
}
@@ -174,7 +174,7 @@
/* If we get to here, we know there is at least a lesson script directory */
/* but not necessarily any valid files. */
- DEBUGCODE { fprintf(stderr, "script_path is: %s\n", script_path); }
+ DEBUGCODE(debug_scripting) { fprintf(stderr, "script_path is: %s\n", script_path); }
/* FIXME looks like a place for scandir() - or our own w32_scandir() */
@@ -201,14 +201,14 @@
sprintf(script_filenames[num_scripts], "%s", script_file->d_name);
num_scripts++;
- DEBUGCODE { fprintf(stderr, "Adding XML file no. %d: %s\n",
+ DEBUGCODE(debug_scripting) { fprintf(stderr, "Adding XML file no. %d: %s\n",
num_scripts, script_filenames[num_scripts]); }
} while (1); /* Leave loop when readdir() returns NULL */
closedir(script_dir);
- DEBUGCODE { fprintf(stderr, "Found %d . xml file(s) in script dir\n", num_scripts); }
+ DEBUGCODE(debug_scripting) { fprintf(stderr, "Found %d . xml file(s) in script dir\n", num_scripts); }
/* let the user pick the lesson script */
@@ -417,7 +417,7 @@
return 0; // bail if any errors occur
}
- DEBUGCODE { fprintf(stderr, "Attempting to run script: %s\n", fn); }
+ DEBUGCODE(debug_scripting) { fprintf(stderr, "Attempting to run script: %s\n", fn); }
run_script();
SDL_ShowCursor(1);
@@ -515,7 +515,7 @@
char str[FNLEN];
FILE* f = NULL;
- DEBUGCODE
+ DEBUGCODE(debug_scripting)
{
fprintf(stderr, "\nEnter load_script() - attempt to load '%s'\n", fn);
}
Modified: branches/commonification/tuxtype/trunk/src/setup.c
===================================================================
--- branches/commonification/tuxtype/trunk/src/setup.c 2009-08-05 16:23:53 UTC (rev 1369)
+++ branches/commonification/tuxtype/trunk/src/setup.c 2009-08-05 16:42:16 UTC (rev 1370)
@@ -56,7 +56,7 @@
// Determine the current resolution: this will be used as the
// fullscreen resolution, if the user wants fullscreen.
- DEBUGCODE
+ DEBUGCODE(debug_setup)
{
fprintf(stderr, "Current resolution: w %d, h %d.\n",
video_info->current_w, video_info->current_h);
@@ -100,7 +100,7 @@
- DEBUGCODE
+ DEBUGCODE(debug_setup)
{
video_info = SDL_GetVideoInfo();
fprintf(stderr, "-SDL VidMode successfully set to %ix%ix%i\n",
@@ -190,7 +190,7 @@
LOG("WIN32 not defined\n");
#endif
- DEBUGCODE { printf("LoadSettings: settings file is '%s'\n", fn ); }
+ DEBUGCODE(debug_setup) { printf("LoadSettings: settings file is '%s'\n", fn ); }
LOG("LoadSettings: trying to open settings file\n");
@@ -246,11 +246,11 @@
if (EOF == fscanf(fp, "%[^=]=%[^\n]\n", setting, value))
break;
- DEBUGCODE {fprintf(stderr, "%s = %s", setting, value );}
+ DEBUGCODE(debug_setup) {fprintf(stderr, "%s = %s", setting, value );}
//For now we are not reading or saving the language selection:
// if (strncmp( setting, "lang", FNLEN ) == 0 )
// {
-// DEBUGCODE {fprintf(stderr, "LoadSettings: Setting language to %s\n", value);}
+// DEBUGCODE(debug_setup) {fprintf(stderr, "LoadSettings: Setting language to %s\n", value);}
// strncpy(settings.lang, value, FNLEN - 1);
// setting_found = 1;
// SetupPaths(value); /* Does this really belong here? */
@@ -258,25 +258,25 @@
// else
if (strncmp( setting, "o_lives", FNLEN ) == 0 )
{
- DEBUGCODE {fprintf(stderr, "LoadSettings: Setting lives to %s\n", value);}
+ DEBUGCODE(debug_setup) {fprintf(stderr, "LoadSettings: Setting lives to %s\n", value);}
settings.o_lives = atoi(value);
setting_found = 1;
}
else if (strncmp( setting, "mus_volume", FNLEN ) == 0 )
{
- DEBUGCODE {fprintf(stderr, "LoadSettings: Setting music volume to %s\n", value);}
+ DEBUGCODE(debug_setup) {fprintf(stderr, "LoadSettings: Setting music volume to %s\n", value);}
settings.mus_volume = atoi(value);
setting_found = 1;
}
else if (strncmp(setting, "sfx_volume", FNLEN) == 0)
{
- DEBUGCODE {fprintf(stderr, "LoadSettings: Setting effects volume to %s\n", value);}
+ DEBUGCODE(debug_setup) {fprintf(stderr, "LoadSettings: Setting effects volume to %s\n", value);}
settings.sfx_volume = atoi(value);
setting_found = 1;
}
else if (strncmp(setting, "menu_music", FNLEN) == 0)
{
- DEBUGCODE {fprintf(stderr, "LoadSettings: Setting menu music to %s\n", value);}
+ DEBUGCODE(debug_setup) {fprintf(stderr, "LoadSettings: Setting menu music to %s\n", value);}
settings.menu_music = atoi(value);
setting_found = 1;
}
@@ -287,19 +287,19 @@
}
else if (strncmp( setting, "theme_font_name", FNLEN ) == 0 )
{
- DEBUGCODE {fprintf(stderr, "load_settings_fp(): Setting theme font to %s\n", value);}
+ DEBUGCODE(debug_setup) {fprintf(stderr, "load_settings_fp(): Setting theme font to %s\n", value);}
strncpy(settings.theme_font_name, value, FNLEN - 1);
setting_found = 1;
}
else if (strncmp( setting, "theme_locale_name", FNLEN ) == 0 )
{
- DEBUGCODE {fprintf(stderr, "load_settings_fp(): Setting theme locale to %s\n", value);}
+ DEBUGCODE(debug_setup) {fprintf(stderr, "load_settings_fp(): Setting theme locale to %s\n", value);}
strncpy(settings.theme_locale_name, value, FNLEN - 1);
setting_found = 1;
fprintf(stderr, "load_settings_fp(): Setting theme locale to %s\n", value);
}
else
- DEBUGCODE {fprintf(stderr, "load_settings_fp(): unrecognized string: %s\n", value);}
+ DEBUGCODE(debug_setup) {fprintf(stderr, "load_settings_fp(): unrecognized string: %s\n", value);}
}
@@ -335,7 +335,7 @@
#endif
- DEBUGCODE { printf("SaveSettings: settings file is '%s'\n", fn ); }
+ DEBUGCODE(debug_setup) { printf("SaveSettings: settings file is '%s'\n", fn ); }
LOG("SaveSettings: trying to open settings file\n");
@@ -383,7 +383,7 @@
if (CheckFile(DATA_PREFIX))
{
strncpy(settings.default_data_path, DATA_PREFIX, FNLEN - 1);
- DEBUGCODE {fprintf(stderr, "path '%s' found, copy to settings.default_data_path\n", DATA_PREFIX);}
+ DEBUGCODE(debug_setup) {fprintf(stderr, "path '%s' found, copy to settings.default_data_path\n", DATA_PREFIX);}
}
else
{
@@ -399,7 +399,7 @@
sprintf(full_theme_path, "%s/themes/%s", settings.default_data_path, theme_dir);
- DEBUGCODE
+ DEBUGCODE(debug_setup)
{
fprintf(stderr, "SetupPaths(): checking for '%s' as theme path\n", full_theme_path);
}
@@ -408,7 +408,7 @@
{
settings.use_english = 0;
strncpy(settings.theme_data_path, full_theme_path, FNLEN - 1);
- DEBUGCODE
+ DEBUGCODE(debug_setup)
{
fprintf(stderr, "settings.theme_data_path is: %s\n", settings.theme_data_path);
}
@@ -423,7 +423,7 @@
/* Load fontname or any other theme-specific settings: */
sprintf(theme_settings_path, "%s/settings.txt", full_theme_path);
- DEBUGCODE
+ DEBUGCODE(debug_setup)
{
fprintf(stderr, "theme_settings_path is: %s\n", theme_settings_path);
}
@@ -448,7 +448,7 @@
}
- DEBUGCODE
+ DEBUGCODE(debug_setup)
{
fprintf(stderr, "Leaving SetupPaths():\n");
fprintf(stderr, "default_data_path: '%s'\n", settings.default_data_path);
@@ -462,7 +462,7 @@
if (CheckFile(VAR_PREFIX))
{
strncpy(settings.var_data_path, VAR_PREFIX, FNLEN - 1);
- DEBUGCODE {fprintf(stderr, "path '%s' found, copy to settings.var_data_path\n", VAR_PREFIX);}
+ DEBUGCODE(debug_setup) {fprintf(stderr, "path '%s' found, copy to settings.var_data_path\n", VAR_PREFIX);}
}
else
{
@@ -476,7 +476,7 @@
if (CheckFile(VAR_PREFIX))
{
strncpy(settings.var_data_path, VAR_PREFIX, FNLEN - 1);
- DEBUGCODE {fprintf(stderr, "path '%s' found, copy to settings.var_data_path\n", VAR_PREFIX);}
+ DEBUGCODE(debug_setup) {fprintf(stderr, "path '%s' found, copy to settings.var_data_path\n", VAR_PREFIX);}
}
else
{
Modified: branches/commonification/tuxtype/trunk/src/titlescreen.c
===================================================================
--- branches/commonification/tuxtype/trunk/src/titlescreen.c 2009-08-05 16:23:53 UTC (rev 1369)
+++ branches/commonification/tuxtype/trunk/src/titlescreen.c 2009-08-05 16:42:16 UTC (rev 1370)
@@ -19,10 +19,72 @@
#include "globals.h"
#include "funcs.h"
+#include "menu.h"
+#include "compiler.h"
#include "titlescreen.h"
#include "SDL_extras.h"
#include "convert_utf.h"
+/* these are all menu choices that are available in tuxtype.
+ 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_CASCADE ),\
+ X( RUN_INSTRUCTIONS ),\
+ X( RUN_COMET_ZAP ),\
+ X( RUN_LESSONS ),\
+ X( RUN_MAIN_MENU ),\
+ X( RUN_EDIT_WORD_LIST ),\
+ X( RUN_PHRASE_TYPING ),\
+ X( RUN_INFO ),\
+ X( RUN_SETUP ),\
+ X( N_OF_ACTIVITIES ) /* this one has to be the last one */
+
+/* create enum */
+#define X(name) name
+enum { ACTIVITIES };
+#undef X
+#define X(name) #name
+char* activities[] = { ACTIVITIES };
+#undef X
+
+enum { MENU_MAIN, MENU_LESSONS, MENU_LOGIN };
+
+/*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 = "/images/main_bkg.jpg";
+const char* standby_path = "/images/status/standby.svg";
+const char* title_path = "/images/title1.svg";
+const char* egg_path = "/images/title/egg.svg";
+const char* tux_path = "/images/tux";
+char* menu_music_path = "/sounds/tuxi.ogg";
+/* beak coordinates relative to tux rect */
+const float beak_pos[4] = {0.36, 0.21, 0.27, 0.14};
+
+/* screen dimensions to which titlescreen graphics are currently rendered */
+int curr_res_x = -1;
+int curr_res_y = -1;
+
+SDL_Surface* logo = NULL;
+sprite* Tux = NULL;
+SDL_Surface* title = NULL;
+
+/* locations we need */
+SDL_Rect bkg_rect,
+ logo_rect,
+ tux_rect,
+ title_rect,
+ cursor;
+
+
+
+
/* --- media for menus --- */
/* images of regular and selected text of menu items: */
@@ -32,10 +94,8 @@
static sprite* menu_gfx[TITLE_MENU_ITEMS + 1][TITLE_MENU_DEPTH + 1] = {{NULL}};
/* --- other media --- */
-static SDL_Surface* title = NULL;
static SDL_Surface* speaker = NULL;
static SDL_Surface* speakeroff = NULL;
-static sprite* Tux = NULL;
static Mix_Chunk* snd_move = NULL;
static Mix_Chunk* snd_select = NULL;
static Mix_Chunk* snd_welcome = NULL;
@@ -47,11 +107,6 @@
/* keep track of the width of each menu: */
static int menu_width[TITLE_MENU_DEPTH + 1];
-static SDL_Rect Tuxdest;
-static SDL_Rect Titledest;
-static SDL_Rect spkrdest;
-static SDL_Rect cursor;
-
/* Local function prototypes: */
static void show_logo(void);
static int load_media(void);
@@ -66,36 +121,7 @@
/* --- menu text --- */
-/* --- define menu structure --- */
-/* (these values are all in the Game_Type enum in globals.h) */
-const int menu_item[][6] = {{0, 0, 0, 0, 0},
- {0, CASCADE, LEVEL1, LEVEL1, EDIT_WORDLIST },
- {0, LASER, LEVEL2, LEVEL2, PHRASE_TYPING },
- {0, LESSONS, LEVEL3, LEVEL3, PROJECT_INFO },
- {0, OPTIONS, INSTRUCT, LEVEL4, SET_LANGUAGE },
- {0, QUIT_GAME, MAIN, MAIN, MAIN }};
-/* --- menu icons --- */
-const char* menu_icon[][6] =
-{{"", "", "", "", ""},
- {"", "cascade", "easy", "grade1_", "list" },
- {"", "comet", "medium", "grade2_", "practice" },
- {"", "lesson","hard", "grade3_", "keyboard" },
- {"", "tux_config", "tutor", "grade4_", "lang" },
- {"", "quit", "main", "main", "main" }};
-
-
-static const char* menu_text[] =
-{"", "", "", "", "" ,
- "",gettext_noop("Fish Cascade"),gettext_noop("Easy"),gettext_noop("Space Cadet"),gettext_noop("Edit Word Lists"),
- "",gettext_noop("Comet Zap"),gettext_noop("Medium"),gettext_noop("Pilot"),gettext_noop("Phrase Typing"),
- "",gettext_noop("Lessons"),gettext_noop("Hard"), gettext_noop("Ace"),gettext_noop("Project Info"),
- "", gettext_noop("Options"),gettext_noop("Instructions"),gettext_noop("Commander"),gettext_noop("Setup Language"),
- "", gettext_noop("Quit"),gettext_noop("Main Menu"),gettext_noop("Main Menu"),gettext_noop("Main Menu")};
-
-
-
-
/************************************************************************/
/* */
/* "Public" functions (callable throughout program) */
@@ -112,8 +138,12 @@
{
Uint32 frame = 0;
+ Uint32 start_time = 0;
Uint32 start = 0;
+ char fn[1000];
+ SDL_Rect tux_anim, title_anim;
+ int tux_pix_skip, title_pix_skip, curr_time;
/* NOTE for 'depth', think pages like a restaurant menu, */
/* not heirarchical depth - choice of term is misleading */
int menu_depth; // how deep we are in the menu
@@ -121,8 +151,6 @@
int i, j, tux_frame = 0;
int done = 0;
int firstloop = 1;
- int menu_opt = NONE;
- int sub_menu = NONE;
int update_locs = 1;
int redraw = 0;
int key_menu = 1;
@@ -149,13 +177,6 @@
PlaySound(snd_welcome);
}
- /* Load media and menu data: */
- if (!load_media())
- {
- fprintf(stderr, "TitleScreen - load_media() failed!");
- return;
- }
-
SDL_WM_GrabInput(SDL_GRAB_ON); // User input goes to TuxType, not window manager
@@ -165,20 +186,22 @@
LOG( "->Now Animating Tux and Title onto the screen\n" );
- Tuxdest.x = 0;
- Tuxdest.y = screen->h;
- Tuxdest.w = Tux->frame[0]->w;
- Tuxdest.h = Tux->frame[0]->h;
+ LoadBothBkgds(bkg_path);
- Titledest.x = screen->w;
- Titledest.y = 10;
- Titledest.w = title->w;
- Titledest.h = title->h;
+ /* load menus */
+ SetActivitiesList(N_OF_ACTIVITIES, activities);
+ SetImagePathPrefix(settings.default_data_path);
+ //SetMenuSounds(menu_music_path, sounds[SND_POP], sounds[SND_TOCK]);
+ sprintf(fn, "%s%s", settings.default_data_path, "/menus/main_menu.xml");
+ LoadMenu(MENU_MAIN, fn);
+ PrerenderAll();
- spkrdest.x = screen->w - speaker->w - 10;
- spkrdest.y = screen->h - speaker->h - 10;
- spkrdest.w = speaker->w;
- spkrdest.h = speaker->h;
+ /* load titlescreen images */
+ if(RenderTitleScreen() == 0)
+ {
+ fprintf(stderr, "Media was not properly loaded, exiting");
+ return;
+ }
/* --- wait if the first time in the game --- */
@@ -200,41 +223,53 @@
SDL_UpdateRect(screen, 0, 0, 0, 0);
/* --- Pull tux & logo onscreen --- */
- for (i = 0; i <= (PRE_ANIM_FRAMES * PRE_FRAME_MULT); i++)
+ if(title && Tux && Tux->frame[0])
{
- start = SDL_GetTicks();
- SDL_BlitSurface(CurrentBkgd(), &Tuxdest, screen, &Tuxdest);
- SDL_BlitSurface(CurrentBkgd(), &Titledest, screen, &Titledest);
+ /* 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;
- Tuxdest.y -= Tux->frame[0]->h / (PRE_ANIM_FRAMES * PRE_FRAME_MULT);
- Titledest.x -= (screen->w) / (PRE_ANIM_FRAMES * PRE_FRAME_MULT);
- /* Don't go past 0; */
- if (Tuxdest.y < 0)
- Tuxdest.y = 0;
- if (Titledest.x < 0)
- Titledest.x = 0;
+ for(i = 0; i < ANIM_FRAMES; i++)
+ {
+ start_time = SDL_GetTicks();
- SDL_BlitSurface(Tux->frame[0], NULL, screen, &Tuxdest);
- SDL_BlitSurface(title, NULL, screen, &Titledest);
+ /* Draw the entire background, over a black screen if necessary */
+ if(CurrentBkgd()->w != screen->w || CurrentBkgd()->h != screen->h)
+ SDL_FillRect(screen, &screen->clip_rect, 0);
- SDL_UpdateRect(screen, Tuxdest.x, Tuxdest.y, Tuxdest.w, Tuxdest.h);
- SDL_UpdateRect(screen, Titledest.x, Titledest.y, Titledest.w + 40, Titledest.h);
+ SDL_BlitSurface(CurrentBkgd(), NULL, screen, &bkg_rect);
- while ((SDL_GetTicks() - start) < 33)
- {
- SDL_Delay(2);
+ /* 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));
}
}
- recalc_rects();
-
/* Pick speaker graphic according to whether music is on: */
- if ( settings.menu_music )
+/* if ( settings.menu_music )
SDL_BlitSurface(speaker, NULL, screen, &spkrdest);
else
SDL_BlitSurface(speakeroff, NULL, screen, &spkrdest);
-
+*/
/* Start playing menu music if desired: */
if (settings.menu_music)
AudioMusicLoad( "/sounds/tuxi.ogg", -1 );
@@ -244,608 +279,242 @@
SDL_WM_GrabInput(SDL_GRAB_OFF);
- /****************************
- * Main Loop Starts Here ... *
- ****************************/
+ run_main_menu();
- menu_depth = 1;
- firstloop = 1;
- Tuxdest.y = screen->h - Tux->frame[0]->h;
+ LOG( "->>Freeing title screen images\n" );
+ LOG( "->TitleScreen():END \n" );
+}
- while (!done)
- {
- start=SDL_GetTicks();
- /* ---process input queue --- */
+/************************************************************************/
+/* */
+/* "Private" functions (local to titlescreen.c) */
+/* */
+/************************************************************************/
- menu_opt = NONE; // clear the option so we don't change twice!
+void DrawTitleScreen(void)
+{
+ DEBUGMSG(debug_titlescreen, "Entering DrawTitleScreen()\n");
+ SDL_BlitSurface(CurrentBkgd(), 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);
+ DEBUGMSG(debug_titlescreen, "Leaving DrawTitleScreen()\n");
+}
- old_key_menu = key_menu;
+/* 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;
+ char* path;
- /* Retrieve any user interface events: */
- while (SDL_PollEvent(&event))
- {
- switch (event.type)
- {
+ 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");
- case SDL_MOUSEMOTION:
- {
- cursor.x = event.motion.x;
- cursor.y = event.motion.y;
- break;
- }
-
-
- /* Handle mouse clicks based on mouse location: */
- case SDL_MOUSEBUTTONDOWN:
- {
- cursor.x = event.motion.x;
- cursor.y = event.motion.y;
-
- for (j = 1; j <= TITLE_MENU_ITEMS; j++)
- {
- if (inRect(menu_button[j], cursor.x, cursor.y))
- {
- menu_opt = menu_item[j][menu_depth];
- if (settings.menu_sound)
- {
- PlaySound(snd_select);
- }
- DEBUGCODE
- {
- fprintf(stderr, "->>BUTTON CLICK menu_opt = %d\n", menu_opt);
- fprintf(stderr, "->J = %d menu_depth=%d\n", j, menu_depth);
- }
- }
- }
-
- /* If mouse over speaker, toggle menu music off or on: */
- if (inRect(spkrdest, cursor.x, cursor.y))
- {
- if (settings.menu_music)
- {
- AudioMusicUnload();
- settings.menu_music = 0;
- }
- else
- {
- settings.menu_music = 1;
- AudioMusicLoad("/sounds/tuxi.ogg", -1);
- }
- redraw = 1;
- }
- break;
- }
-
-
-
- case SDL_QUIT:
- {
- menu_opt = QUIT_GAME;
- break;
- }
-
-
- /* Handle key press events based on key value: */
- case SDL_KEYDOWN:
- {
- switch (event.key.keysym.sym)
- {
- case SDLK_ESCAPE:
- {
- /* Go to main menu (if in submenu) or quit: */
- if (menu_depth != 1)
- menu_opt = MAIN;
- else
- menu_opt = QUIT_GAME;
-
- if (settings.menu_sound)
- PlaySound(snd_select);
- break;
- }
-
-
- /* Toggle screen mode: */
- case SDLK_F10:
- {
- SwitchScreenMode();
- recalc_rects();
- redraw = 1;
- break;
- }
-
-
- /* Toggle menu music: */
- case SDLK_F11:
- {
- if (settings.menu_music)
- {
- AudioMusicUnload( );
- settings.menu_music = 0;
- }
- else
- {
- settings.menu_music = 1;
- AudioMusicLoad("/sounds/tuxi.ogg", -1);
- }
- redraw = 1;
- break;
- }
-
-
- /* --- reload translation/graphics/media: for themers/translaters --- */
- case SDLK_F12:
- {
- unload_media();
- LoadLang();
- load_media();
- redraw = 1;
- break;
- }
-
-
- case SDLK_UP:
- {
- if (settings.menu_sound)
- PlaySound(snd_move);
- key_menu--;
- if (key_menu < 1)
- key_menu = 5;
- break;
- }
-
-
- case SDLK_DOWN:
- {
- key_menu++;
- if (settings.menu_sound)
- PlaySound(snd_move);
- if (key_menu > 5)
- key_menu = 1;
- break;
- }
-
-
- case SDLK_RETURN:
- {
- if (key_menu)
- {
- menu_opt = menu_item[key_menu][menu_depth];
- if (settings.menu_sound)
- PlaySound(snd_select);
- }
- break;
- }
-
-
- default: /* Some other key pressed - do nothing: */
- {
- break;
- }
- } /* End of switch(event.key.keysym.sym) statement */
- } /* End of case: SDL_KEYDOWN: */
-
-
- default: /* Some other type of SDL event - do nothing; */
- {
- break;
- }
- } /* End of switch(event.type) statement */
- } /* End of while (SDL_PollEvent(&event)) loop */
-
-
-
-
-
- /* --- do menu processing --- */
-
-
- if (menu_opt == QUIT_GAME)
- done = 1;
-
-
- if (menu_opt == LASER)
+ /* we keep two backgrounds to make screen mode switch faster */
+ if(CurrentBkgd()->w != screen->w || CurrentBkgd()->h != screen->h)
{
- menu_depth = LASER_SUBMENU;
- sub_menu = LASER;
- update_locs = 1;
- redraw = 1;
- }
-
-
- if (menu_opt == CASCADE)
- {
- menu_depth = CASCADE_SUBMENU;
- sub_menu = CASCADE;
- update_locs = 1;
- redraw=1;
- }
-
-
- if (menu_opt == OPTIONS)
- {
- menu_depth = OPTIONS_SUBMENU;
- sub_menu = OPTIONS;
- update_locs = 1;
- redraw = 1;
- }
-
-
- if (menu_opt == MAIN)
- {
- menu_depth = ROOTMENU;
- update_locs = 1;
- redraw = 1;
- }
-
-
- if (menu_opt == EDIT_WORDLIST)
- {
- not_implemented();
-// ChooseFile();
- redraw = 1;
- }
-
-
- if (menu_opt == PROJECT_INFO)
- {
- ProjectInfo();
- redraw = 1;
- }
-
-
- if (menu_opt == LESSONS)
- {
-// not_implemented();
- SDL_BlitSurface(CurrentBkgd(), NULL, screen, NULL);
- SDL_Flip( screen );
- unload_media();
-
- if (settings.menu_music)
- AudioMusicUnload( );
-
- TestLesson();
-
- load_media();
-
- redraw = 1;
-
- if (settings.menu_music)
- AudioMusicLoad( "/sounds/tuxi.ogg", -1 );
- }
-
-
- if (menu_opt == SET_LANGUAGE)
- {
- unload_media();
- ChooseTheme();
- LoadLang();
- LoadKeyboard();
- load_media();
- redraw = 1;
-
- if (settings.menu_music)
- AudioMusicLoad( "/sounds/tuxi.ogg", -1 );
- }
-
-
- if (menu_opt == LEVEL1)
- {
- if (chooseWordlist())
+ new_bkg = LoadBkgd(bkg_path, screen->w, screen->h);
+ if(new_bkg == NULL)
{
- unload_media();
-
- switch (sub_menu)
- {
- case CASCADE: PlayCascade( EASY ); break;
- case LASER: PlayLaserGame( EASY ); break;
- }
+ DEBUGMSG(debug_titlescreen, "RenderTitleScreen(): Failed to load new background.\n");
+ return 0;
}
-
- load_media();
-
- if (settings.menu_music)
- AudioMusicLoad("/sounds/tuxi.ogg", -1);
-
- redraw = 1;
- }
-
-
- if (menu_opt == LEVEL2)
- {
- if (chooseWordlist())
+ else
{
- unload_media();
-
- switch (sub_menu)
- {
- case CASCADE: PlayCascade( MEDIUM ); break;
- case LASER: PlayLaserGame( MEDIUM ); break;
- }
-
-
- if (settings.menu_music)
- AudioMusicLoad( "/sounds/tuxi.ogg", -1 );
+ DEBUGMSG(debug_titlescreen, "RenderTitleScreen(): New background loaded.\n");
+ //set_current_bkg(new_bkg);
}
-
- load_media();
- redraw = 1;
}
+ DEBUGMSG(debug_titlescreen, "Re-rendering titlescreen items.\n");
+ bkg_rect = CurrentBkgd()->clip_rect;
+ bkg_rect.x = (screen->w - bkg_rect.w) / 2;
+ bkg_rect.y = (screen->h - bkg_rect.h) / 2;
+ DEBUGMSG(debug_titlescreen, "Re-rendering titlescreen items.\n");
+ /* Tux in lower left corner of the screen */
+ SetRect(&tux_rect, tux_pos);
- if (menu_opt == LEVEL3)
- {
- if (chooseWordlist())
- {
- unload_media();
+ path = GetSpriteFullPath(tux_path);
+ Tux = LoadSpriteOfBoundingBox(path, IMG_ALPHA, tux_rect.w, tux_rect.h);
+ if(path)
+ free(path);
- switch (sub_menu)
- {
- case CASCADE: PlayCascade( HARD ); break;
- case LASER: PlayLaserGame( HARD ); break;
- }
-
-
- if (settings.menu_music)
- AudioMusicLoad( "/sounds/tuxi.ogg", -1 );
- }
-
- load_media();
- redraw = 1;
- }
-
-
-
- if (menu_opt == LEVEL4)
+ if(Tux && Tux->frame[0])
{
- if (chooseWordlist())
- {
- unload_media();
-
- switch (sub_menu)
- {
- case CASCADE: PlayCascade( INSANE ); break;
- case LASER: PlayLaserGame( INSANE ); break;
- }
-
- if (settings.menu_music)
- AudioMusicLoad( "/sounds/tuxi.ogg", -1 );
- }
-
- load_media();
- redraw = 1;
+ tux_rect.w = Tux->frame[0]->clip_rect.w;
+ tux_rect.h = Tux->frame[0]->clip_rect.h;
}
-
-
-
- if (menu_opt == INSTRUCT)
+ else
{
-// unload_media();
- not_implemented();
-
-// switch (sub_menu)
-// {
-// case CASCADE: InstructCascade(); break;
-// case LASER: InstructLaser(); break;
-// }
-
-// load_media();
-
-// if (settings.menu_music)
-// AudioMusicLoad( "/sounds/tuxi.ogg", -1 );
-
- redraw = 1;
+ 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);
+ path = GetSpriteFullPath(title_path);
+ title = LoadImageOfBoundingBox(path, IMG_ALPHA, title_rect.w, title_rect.h);
+ if(path)
+ free(path);
- if (menu_opt == PHRASE_TYPING)
+ if(title)
{
-// not_implemented();
-
- unload_media();
-
- Phrases(NULL);
-
- load_media();
-
- if (settings.menu_music)
- AudioMusicLoad( "/sounds/tuxi.ogg", -1 );
-
- redraw = 1;
+ title_rect.w = title->clip_rect.w;
+ title_rect.h = title->clip_rect.h;
}
-
- /* ------ End menu_opt processing ----------- */
-
-
-
- if (redraw)
+ else
{
- LOG("TitleScreen() - redraw requested\n");
- recalc_rects();
-
- SDL_BlitSurface(CurrentBkgd(), NULL, screen, NULL);
- SDL_BlitSurface(title, NULL, screen, &Titledest);
-
- if ( settings.menu_music )
- SDL_BlitSurface(speaker, NULL, screen, &spkrdest);
- else
- SDL_BlitSurface(speakeroff, NULL, screen, &spkrdest);
-
- /* Screen will be updated due to update_locs - see ~30 lines down: */
-// SDL_UpdateRect(screen, 0, 0, 0, 0);
- frame = redraw = 0; // so we redraw tux
- update_locs = 1; // so we redraw menu
- firstloop = 1;
+ DEBUGMSG(debug_titlescreen, "RenderTitleScreen(): Failed to load title image.\n");
+ return 0;
}
+ curr_res_x = screen->w;
+ curr_res_y = screen->h;
+ DEBUGMSG(debug_titlescreen, "Leaving RenderTitleScreen().\n");
+ }
+ return 1;
+}
- /* --- create new menu screen when needed --- */
- if (update_locs)
- {
- LOG("TitleScreen() - update_locs requested\n");
+/* handle titlescreen events (easter egg)
+ this function should be called from event loops
+ return 1 if events require full redraw */
+int HandleTitleScreenEvents(SDL_Event* evt)
+{
+ return 0;
+}
- /* --- erase the last menu --- */
- for (i = 1; i <= TITLE_MENU_ITEMS; i++)
- {
- text_dst[i].x = screen->w/2 - 70;//290;
- text_dst[i].w = reg_text[i][menu_depth]->w;
- text_dst[i].h = reg_text[i][menu_depth]->h;
- SDL_BlitSurface(CurrentBkgd(), &menu_button[i], screen, &menu_button[i]);
- menu_button[i].w = menu_width[menu_depth] + 20;
- }
+/* handle all titlescreen blitting
+ this function should be called after every animation frame */
+void HandleTitleScreenAnimations()
+{
+ static int frame_counter = 0;
+ int tux_frame;
+ DEBUGMSG(debug_titlescreen, "Entering HandleTitleScreenAnimations()\n");
+ /* --- 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;
+ }
- update_locs = 0;
+ if (Tux && tux_frame)
+ {
+ /* Redraw background to keep edges anti-aliased properly: */
+ SDL_BlitSurface(CurrentBkgd(),&tux_rect, screen, &tux_rect);
+ SDL_BlitSurface(Tux->frame[tux_frame - 1], NULL, screen, &tux_rect);
+ UpdateRect(screen, &tux_rect);
+ }
- /* --- draw the full menu --- */
+ frame_counter++;
+}
- for (j = 1; j <= TITLE_MENU_ITEMS; j++)
- {
- DOUT(j);
- DrawButton(&menu_button[j], 10, REG_RGBA);
- if (reg_text[j][menu_depth] != NULL)
- SDL_BlitSurface(reg_text[j][menu_depth], NULL, screen, &text_dst[j]);
- if (menu_gfx[j][menu_depth] != NULL)
- SDL_BlitSurface(menu_gfx[j][menu_depth]->default_img, NULL, screen, &menu_gfxdest[j]);
- }
- SDL_UpdateRect(screen, 0, 0, 0, 0);
+/* 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");
- LOG("TitleScreen() - update_locs completed\n");
- }
+ switch(act)
+ {
+ case RUN_EDIT_WORD_LIST:
+ not_implemented();
+ break;
+ case RUN_INSTRUCTIONS:
+ not_implemented();
+ break;
+ case RUN_INFO:
+ ProjectInfo();
+ break;
- /* --- make tux blink --- */
+ case RUN_LESSONS:
+ SDL_BlitSurface(CurrentBkgd(), NULL, screen, NULL);
+ SDL_Flip( screen );
+ TestLesson();
+ break;
- 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;
- }
+ case RUN_SETUP:
+ ChooseTheme();
+ LoadLang();
+ LoadKeyboard();
+ break;
- if (tux_frame)
- {
- SDL_Rect blink_src, blink_dest;
- blink_src.x = 0;
- blink_src.y = 0;
- blink_src.w = Tuxdest.w;
- blink_src.h = Tuxdest.h;
- blink_dest.x = Tuxdest.x + blink_src.x;
- blink_dest.y = Tuxdest.y + blink_src.y;
- blink_dest.w = blink_src.w;
- blink_dest.h = blink_src.h;
-// SDL_BlitSurface(CurrentBkgd(), , screen, &Tuxdest);
- SDL_BlitSurface(Tux->frame[tux_frame - 1], &blink_src, screen, &blink_dest);
- }
-
-
- /* --- check if mouse is in a menu option --- */
-
- key_menu = 0;
-
- for (j = 1; j <= TITLE_MENU_ITEMS; j++)
- {
- if ((cursor.x >= menu_button[j].x && cursor.x <= (menu_button[j].x + menu_button[j].w)) &&
- (cursor.y >= menu_button[j].y && cursor.y <= (menu_button[j].y + menu_button[j].h)))
+ case RUN_CASCADE:
+ switch(param)
{
- key_menu = j; // update menu to point
- break; // Don't need to check rest of menu
+ case 0:
+ PlayCascade(EASY);
+ break;
+ case 1:
+ PlayCascade(MEDIUM);
+ break;
+ case 2:
+ PlayCascade(HARD);
+ break;
+ case 3:
+ PlayCascade(INSANE);
+ break;
}
- }
+ break;
-
- /* --- return old selection to unselected state --- */
-
- if (old_key_menu && (key_menu != old_key_menu))
- {
- SDL_BlitSurface(CurrentBkgd(), &menu_button[old_key_menu], screen, &menu_button[old_key_menu]);
- DrawButton(&menu_button[old_key_menu], 10, REG_RGBA);
- SDL_BlitSurface(reg_text[old_key_menu][menu_depth], NULL, screen, &text_dst[old_key_menu]);
- SDL_BlitSurface(menu_gfx[old_key_menu][menu_depth]->default_img, NULL, screen, &menu_gfxdest[old_key_menu]);
- }
-
-
- /* --- draw current selection --- */
-
- if ((key_menu != 0) &&
- ((old_key_menu != key_menu) || (frame % 5 == 0))) // Redraw every fifth frame?
- {
- if (key_menu != old_key_menu)
+ case RUN_COMET_ZAP:
+ switch(param)
{
- REWIND(menu_gfx[key_menu][menu_depth]);
- PlaySound(snd_move);
+ case 0:
+ PlayLaserGame(EASY);
+ break;
+ case 1:
+ PlayLaserGame(MEDIUM);
+ break;
+ case 2:
+ PlayLaserGame(HARD);
+ break;
+ case 3:
+ PlayLaserGame(INSANE);
+ break;
}
+ break;
- SDL_BlitSurface(CurrentBkgd(), &menu_button[key_menu], screen, &menu_button[key_menu]);
- DrawButton(&menu_button[key_menu], 10, SEL_RGBA);
- SDL_BlitSurface(sel_text[key_menu][menu_depth], NULL, screen, &text_dst[key_menu]);
- SDL_BlitSurface(menu_gfx[key_menu][menu_depth]->frame[menu_gfx[key_menu][menu_depth]->cur], NULL, screen, &menu_gfxdest[key_menu]);
+ case RUN_PHRASE_TYPING:
+ Phrases(NULL);
+ break;
- NEXT_FRAME(menu_gfx[key_menu][menu_depth]);
- }
+ case RUN_QUIT:
+ return QUIT;
+ }
+ return 0;
+}
- // HACK This is still more than we need to update every frame but
- // it cuts cpu on my machine %60 so it seems better...
- if ( settings.menu_music )
- SDL_BlitSurface(speaker, NULL, screen, &spkrdest);
- else
- SDL_BlitSurface(speakeroff, NULL, screen, &spkrdest);
-
- SDL_UpdateRect(screen, spkrdest.x, spkrdest.y, spkrdest.w, spkrdest.h);
-
- for (i = 1; i < 6; i++)
- {
- SDL_UpdateRect(screen, menu_button[i].x, menu_button[i].y, menu_button[i].w, menu_button[i].h);
- }
-
- if (tux_frame)
- SDL_UpdateRect(screen, Tuxdest.x, Tuxdest.y, Tuxdest.w, Tuxdest.h);
-
- if (firstloop)
- SDL_UpdateRect(screen, Tuxdest.x, Tuxdest.y, Tuxdest.w, Tuxdest.h);
-
- firstloop = 0;
-
- /* Wait so we keep frame rate constant: */
- while ((SDL_GetTicks() - start) < 33)
- {
- SDL_Delay(20);
- }
-
- frame++;
- } /* ----------- End of 'while(!done)' loop ------------ */
-
-
-
- LOG( "->>Freeing title screen images\n" );
-
- unload_media();
-
- LOG( "->TitleScreen():END \n" );
+/* run main menu. If this function ends it means that tuxmath is going to quit */
+void run_main_menu(void)
+{
+ DEBUGMSG(debug_titlescreen, "Entering run_main_menu()\n");
+ RunMenu(MENU_MAIN, false, DrawTitleScreen, HandleTitleScreenEvents, HandleTitleScreenAnimations, handle_activity);
+ DEBUGMSG(debug_titlescreen, "Leaving run_main_menu()\n");
}
-
-
-/************************************************************************/
-/* */
-/* "Private" functions (local to titlescreen.c) */
-/* */
-/************************************************************************/
-
static void show_logo(void)
{
if (settings.show_tux4kids)
@@ -872,237 +541,7 @@
}
-/* Renders the menu text for all items and loads the associated */
-/* animated sprites, if any. */
-static void load_menu(void)
-{
- char fn[FNLEN];
- int max, i, j;
- SDL_ShowCursor(1);
-
- LOG("loading & parsing menu\n");
-
- for (j = 1; j <= TITLE_MENU_DEPTH; j++) /* Each 'depth' is a different menu */
- {
- max = 0;
- for (i = 1; i <= TITLE_MENU_ITEMS; i++)
- {
- DEBUGCODE
- {
- fprintf(stderr, "i = '%d'\tj = '%d'\ttext = '%s'\n",
- i, j, gettext(menu_text[j + 5 * i]));
- }
-
- /* --- create text surfaces --- */
- reg_text[i][j] = BlackOutline( gettext(menu_text[j + 5 * i]), DEFAULT_MENU_FONT_SIZE, &white);
- sel_text[i][j] = BlackOutline( gettext(menu_text[j + 5 * i]), DEFAULT_MENU_FONT_SIZE, &yellow);
-
- /* (first make sure ptr valid to avoid segfault) */
- if (sel_text[i][j] && sel_text[i][j]->w > max)
- max = sel_text[i][j]->w;
-
- /* --- load animated icon for menu item --- */
- sprintf(fn, "/images/menu/%s", menu_icon[i][j]);
- menu_gfx[i][j] = LoadSpriteNoPrefix(fn, IMG_ALPHA);
- }
- menu_width[j] = max + 20 + 40; // Not clear where '20' and '40' are coming from
- }
-
- recalc_rects();
-}
-
-
-
-static void recalc_rects(void)
-{
- int i = 0;
-
- Tuxdest.x = 0;
- Tuxdest.y = screen->h - Tux->frame[0]->h;
- Tuxdest.w = Tux->frame[0]->w;
- Tuxdest.h = Tux->frame[0]->h;
-
- Titledest.x = 0;
- Titledest.y = 10;
- Titledest.w = title->w;
- Titledest.h = title->h;
-
- spkrdest.x = screen->w - speaker->w - 10;
- spkrdest.y = screen->h - speaker->h - 10;
- spkrdest.w = speaker->w;
- spkrdest.h = speaker->h;
-
- /* --- setup menu item destinations --- */
- menu_button[1].x = screen->w/2 - 120; //240;
- menu_button[1].y = 100;
- menu_button[1].w = menu_width[1]; //calc from width of widest menu item
- menu_button[1].h = 50;
-
- menu_gfxdest[1].x = menu_button[1].x + 6; // inset graphic by (6, 4) */
- menu_gfxdest[1].y = menu_button[1].y + 4;
- menu_gfxdest[1].w = 40;
- menu_gfxdest[1].h = 50;
-
- text_dst[1].x = screen->w/2 - 70;//290;
- text_dst[1].y = menu_button[1].y + 15;
-
- /* FIXME each menu item drawn hardcoded 60 pixels below last - */
- /* perhaps increment should be "menu_button[j-1].h + MENU_ITEM_GAP" */
- for (i = 2; i < 6; i++)
- {
- /* --- setup location of button text --- */
- text_dst[i].x = screen->w/2 - 70;
- text_dst[i].y = text_dst[i - 1].y + 60;
-
- /* --- setup location of button background --- */
- menu_button[i].x = menu_button[i - 1].x;
- menu_button[i].y = menu_button[i - 1].y + 60;
- menu_button[i].w = menu_button[i - 1].w;
- menu_button[i].h = menu_button[i - 1].h;
-
- /* --- setup location of animated icon --- */
- menu_gfxdest[i].x = menu_gfxdest[i - 1].x;
- menu_gfxdest[i].y = menu_gfxdest[i - 1].y + 60;
- menu_gfxdest[i].w = menu_gfxdest[i - 1].w;
- menu_gfxdest[i].h = menu_gfxdest[i - 1].h;
- }
-}
-
-
-
-static void unload_menu(void)
-{
- int i,j;
-
- for (i = 1; i <= TITLE_MENU_ITEMS; i++)
- {
- for (j = 1; j <= TITLE_MENU_DEPTH; j++)
- {
- if (reg_text[i][j])
- SDL_FreeSurface(reg_text[i][j]);
- if (sel_text[i][j])
- SDL_FreeSurface(sel_text[i][j]);
- if (menu_gfx[i][j])
- FreeSprite(menu_gfx[i][j]);
- reg_text[i][j] = sel_text[i][j] = NULL;
- menu_gfx[i][j] = NULL;
- }
- }
-}
-
-
-static int load_media(void)
-{
- DEBUGCODE
- {
- fprintf(stderr, "Entering load_media():\n");
- fprintf(stderr, "default_data_path = %s\n", settings.default_data_path);
- fprintf(stderr, "theme_data_path = %s\n", settings.theme_data_path);
- }
-
- /* Make sure everything is unloaded before we start: */
- /* FIXME have not been to do this to run without crashing: */
- //unload_media();
-
- /* --- load sounds --- */
- if (settings.menu_sound)
- {
- snd_move = LoadSoundNoPrefix("/sounds/tock.wav");
- snd_select = LoadSoundNoPrefix("/sounds/pop.wav");
- if (!snd_move || !snd_select)
- {
- fprintf(stderr, "Could not load menu sounds - turning menu_sound off\n");
- settings.menu_sound = 0;
- }
- }
-
- /* --- load graphics --- */
- LoadBothBkgds("/images/main_bkg.png");
- title = LoadImageNoPrefix( "/images/title1.png", IMG_ALPHA );
- speaker = LoadImageNoPrefix( "/images/sound.png", IMG_ALPHA );
- speakeroff = LoadImageNoPrefix( "/images/nosound.png", IMG_ALPHA );
-// sel = LoadSpriteNoPrefix("/images/menu/sel", IMG_ALPHA);
-// reg = LoadSpriteNoPrefix("/images/menu/reg", IMG_ALPHA);
- Tux = LoadSpriteNoPrefix("/images/tux", IMG_ALPHA);
-
- DEBUGCODE
- {
- fprintf(stderr, "titlescreen.c load_media(): settings.theme_font_name is %s\n",
- settings.theme_font_name);
- }
-
- /* Make sure we were successful: */
- if (!CurrentBkgd()
- || !title
- || !speaker
- || !speakeroff
- || !Tux)
- {
- fprintf(stderr, "load_media() - could not load all needed files\n");
- unload_media();
- return 0;
- }
-
- /* Should probably call this directly from TitleScreen() */
- load_menu();
- return 1;
-}
-
-
-
-static void unload_media(void)
-{
- LOG("Entering unload_media():\n");
-
- /* --- unload sounds --- */
- if (snd_move)
- {
- Mix_FreeChunk(snd_move);
- snd_move = NULL;
- }
- if (snd_select)
- {
- Mix_FreeChunk(snd_select);
- snd_select = NULL;
- }
- if (snd_welcome)
- {
- Mix_FreeChunk(snd_welcome);
- snd_welcome = NULL;
- }
-
- /* --- unload graphics --- */
- if (title)
- {
- SDL_FreeSurface(title);
- title = NULL;
- }
- if (speaker)
- {
- SDL_FreeSurface(speaker);
- speaker = NULL;
- }
- if (speakeroff)
- {
- SDL_FreeSurface(speakeroff);
- speakeroff = NULL;
- }
-
- FreeBothBkgds();
-
- if (Tux)
- {
- FreeSprite(Tux);
- Tux = NULL;
- }
-
- LOG("Leaving load_media():\n");
-
- unload_menu();
-}
-
-
static void not_implemented(void)
{
SDL_Surface *s1 = NULL, *s2 = NULL, *s3 = NULL, *s4 = NULL;
@@ -1238,7 +677,7 @@
/* If we get to here, we know there is at least a wordlist directory */
/* but not necessarily any valid files. */
- DEBUGCODE { fprintf(stderr, "wordPath is: %s\n", wordPath); }
+ DEBUGCODE(debug_titlescreen) { fprintf(stderr, "wordPath is: %s\n", wordPath); }
/* FIXME looks like a place for scandir() - or our own w32_scandir() */
@@ -1281,7 +720,7 @@
closedir(wordsDir);
- DEBUGCODE { fprintf(stderr, "Found %d .txt file(s) in words dir\n", lists); }
+ DEBUGCODE(debug_titlescreen) { fprintf(stderr, "Found %d .txt file(s) in words dir\n", lists); }
@@ -1482,7 +921,7 @@
SDL_FreeSurface(right);
left = right = NULL; /* Maybe overkill - about to be destroyed anyway */
- DEBUGCODE { fprintf( stderr, "Leaving chooseWordlist();\n" ); }
+ DEBUGCODE(debug_titlescreen) { fprintf( stderr, "Leaving chooseWordlist();\n" ); }
if (stop == 2)
return 0;
Modified: branches/commonification/tuxtype/trunk/src/titlescreen.h
===================================================================
--- branches/commonification/tuxtype/trunk/src/titlescreen.h 2009-08-05 16:23:53 UTC (rev 1369)
+++ branches/commonification/tuxtype/trunk/src/titlescreen.h 2009-08-05 16:42:16 UTC (rev 1370)
@@ -1,4 +1,8 @@
+/* trans_wipe() animation constants */
+#define ANIM_FRAMES 30 /* frames to be displayed */
+#define ANIM_FPS 25 /* max fps */
+
/* --- SETUP MENU OPTIONS --- */
#define TITLE_MENU_ITEMS 5
More information about the Tux4kids-commits
mailing list