summaryrefslogtreecommitdiffstats
path: root/demos
diff options
context:
space:
mode:
Diffstat (limited to 'demos')
-rw-r--r--demos/affine/affine.pro2
-rw-r--r--demos/arthurplugin/arthurplugin.pro2
-rw-r--r--demos/arthurplugin/plugin.cpp74
-rw-r--r--demos/books/books.pro4
-rw-r--r--demos/boxes/boxes.pro11
-rw-r--r--demos/boxes/glbuffers.cpp26
-rw-r--r--demos/boxes/glbuffers.h10
-rw-r--r--demos/boxes/glextensions.cpp37
-rw-r--r--demos/boxes/glextensions.h85
-rw-r--r--demos/boxes/glshaders.cpp266
-rw-r--r--demos/boxes/glshaders.h108
-rw-r--r--demos/boxes/qtbox.cpp33
-rw-r--r--demos/boxes/qtbox.h8
-rw-r--r--demos/boxes/roundedbox.cpp21
-rw-r--r--demos/boxes/roundedbox.h9
-rw-r--r--demos/boxes/scene.cpp152
-rw-r--r--demos/boxes/scene.h20
-rw-r--r--demos/boxes/trackball.cpp50
-rw-r--r--demos/boxes/trackball.h17
-rw-r--r--demos/boxes/vector.h602
-rw-r--r--demos/browser/browser.pro7
-rw-r--r--demos/browser/browsermainwindow.cpp3
-rw-r--r--demos/browser/data/defaultbookmarks.xbel3
-rw-r--r--demos/browser/networkaccessmanager.cpp39
-rw-r--r--demos/browser/networkaccessmanager.h8
-rw-r--r--demos/browser/searchlineedit.cpp4
-rw-r--r--demos/browser/webview.cpp2
-rw-r--r--demos/browser/xbel.cpp109
-rw-r--r--demos/browser/xbel.h1
-rw-r--r--demos/chip/chip.cpp17
-rw-r--r--demos/chip/chip.pro1
-rw-r--r--demos/composition/composition.pro2
-rw-r--r--demos/deform/deform.pro5
-rw-r--r--demos/deform/pathdeform.cpp2
-rw-r--r--demos/demos.pro39
-rw-r--r--demos/embedded/anomaly/README.TXT0
-rw-r--r--demos/embedded/anomaly/anomaly.pro31
-rw-r--r--demos/embedded/anomaly/src/AddressBar.cpp109
-rw-r--r--demos/embedded/anomaly/src/AddressBar.h73
-rw-r--r--demos/embedded/anomaly/src/BookmarksView.cpp70
-rw-r--r--demos/embedded/anomaly/src/BookmarksView.h64
-rw-r--r--demos/embedded/anomaly/src/BrowserView.cpp185
-rw-r--r--demos/embedded/anomaly/src/BrowserView.h92
-rw-r--r--demos/embedded/anomaly/src/BrowserWindow.cpp187
-rw-r--r--demos/embedded/anomaly/src/BrowserWindow.h79
-rw-r--r--demos/embedded/anomaly/src/ControlStrip.cpp101
-rw-r--r--demos/embedded/anomaly/src/ControlStrip.h72
-rw-r--r--demos/embedded/anomaly/src/HomeView.cpp76
-rw-r--r--demos/embedded/anomaly/src/HomeView.h74
-rw-r--r--demos/embedded/anomaly/src/Main.cpp71
-rw-r--r--demos/embedded/anomaly/src/TitleBar.cpp124
-rw-r--r--demos/embedded/anomaly/src/TitleBar.h70
-rw-r--r--demos/embedded/anomaly/src/ZoomStrip.cpp82
-rw-r--r--demos/embedded/anomaly/src/ZoomStrip.h70
-rw-r--r--demos/embedded/anomaly/src/anomaly.qrc9
-rw-r--r--demos/embedded/anomaly/src/flickcharm.cpp327
-rw-r--r--demos/embedded/anomaly/src/flickcharm.h67
-rw-r--r--demos/embedded/anomaly/src/images/edit-find.pngbin0 -> 1636 bytes
-rw-r--r--demos/embedded/anomaly/src/images/go-next.pngbin0 -> 1219 bytes
-rw-r--r--demos/embedded/anomaly/src/images/go-previous.pngbin0 -> 1200 bytes
-rw-r--r--demos/embedded/anomaly/src/images/list-add.pngbin0 -> 601 bytes
-rw-r--r--demos/embedded/anomaly/src/images/list-remove.pngbin0 -> 317 bytes
-rw-r--r--demos/embedded/desktopservices/contenttab.cpp154
-rw-r--r--demos/embedded/desktopservices/contenttab.h101
-rw-r--r--demos/embedded/desktopservices/data/Explosion.wavbin0 -> 18427 bytes
-rw-r--r--demos/embedded/desktopservices/data/designer.pngbin0 -> 4205 bytes
-rw-r--r--demos/embedded/desktopservices/data/monkey_on_64x64.pngbin0 -> 3479 bytes
-rw-r--r--demos/embedded/desktopservices/data/sax.mp3bin0 -> 417844 bytes
-rw-r--r--demos/embedded/desktopservices/desktopservices.pro22
-rw-r--r--demos/embedded/desktopservices/desktopservices.qrc8
-rw-r--r--demos/embedded/desktopservices/desktopwidget.cpp90
-rw-r--r--demos/embedded/desktopservices/desktopwidget.h73
-rw-r--r--demos/embedded/desktopservices/linktab.cpp88
-rw-r--r--demos/embedded/desktopservices/linktab.h86
-rw-r--r--demos/embedded/desktopservices/main.cpp56
-rw-r--r--demos/embedded/desktopservices/resources/browser.pngbin0 -> 2739 bytes
-rw-r--r--demos/embedded/desktopservices/resources/heart.svg55
-rw-r--r--demos/embedded/desktopservices/resources/message.pngbin0 -> 2234 bytes
-rw-r--r--demos/embedded/desktopservices/resources/music.pngbin0 -> 2322 bytes
-rw-r--r--demos/embedded/desktopservices/resources/photo.pngbin0 -> 2430 bytes
-rw-r--r--demos/embedded/digiflip/digiflip.cpp425
-rw-r--r--demos/embedded/digiflip/digiflip.pro1
-rw-r--r--demos/embedded/embedded.pro18
-rw-r--r--demos/embedded/embeddedsvgviewer/embeddedsvgviewer.cpp2
-rw-r--r--demos/embedded/embeddedsvgviewer/embeddedsvgviewer.pro9
-rw-r--r--demos/embedded/flickable/flickable.cpp284
-rw-r--r--demos/embedded/flickable/flickable.h80
-rw-r--r--demos/embedded/flickable/flickable.pro2
-rw-r--r--demos/embedded/flickable/main.cpp233
-rw-r--r--demos/embedded/flightinfo/aircraft.pngbin0 -> 28713 bytes
-rw-r--r--demos/embedded/flightinfo/flightinfo.cpp415
-rw-r--r--demos/embedded/flightinfo/flightinfo.pro12
-rw-r--r--demos/embedded/flightinfo/flightinfo.qrc5
-rw-r--r--demos/embedded/flightinfo/form.ui226
-rw-r--r--demos/embedded/fluidlauncher/config_s60/config.xml27
-rw-r--r--demos/embedded/fluidlauncher/fluidlauncher.cpp126
-rw-r--r--demos/embedded/fluidlauncher/fluidlauncher.h4
-rw-r--r--demos/embedded/fluidlauncher/fluidlauncher.pro95
-rw-r--r--demos/embedded/fluidlauncher/pictureflow.cpp339
-rw-r--r--demos/embedded/fluidlauncher/pictureflow.h37
-rw-r--r--demos/embedded/fluidlauncher/screenshots/anomaly_s60.pngbin0 -> 39093 bytes
-rw-r--r--demos/embedded/fluidlauncher/screenshots/context2d_s60.pngbin0 -> 39405 bytes
-rw-r--r--demos/embedded/fluidlauncher/screenshots/desktopservices_s60.pngbin0 -> 31757 bytes
-rw-r--r--demos/embedded/fluidlauncher/screenshots/digiflip.pngbin0 -> 3508 bytes
-rw-r--r--demos/embedded/fluidlauncher/screenshots/drilldown_s60.pngbin0 -> 47687 bytes
-rw-r--r--demos/embedded/fluidlauncher/screenshots/embeddedsvgviewer_s60.pngbin0 -> 29917 bytes
-rw-r--r--demos/embedded/fluidlauncher/screenshots/flickable.pngbin0 -> 21107 bytes
-rw-r--r--demos/embedded/fluidlauncher/screenshots/flightinfo_s60.pngbin0 -> 24473 bytes
-rw-r--r--demos/embedded/fluidlauncher/screenshots/fridgemagnets_s60.pngbin0 -> 39865 bytes
-rw-r--r--demos/embedded/fluidlauncher/screenshots/ftp_s60.pngbin0 -> 32534 bytes
-rw-r--r--demos/embedded/fluidlauncher/screenshots/lightmaps.pngbin0 -> 114178 bytes
-rw-r--r--demos/embedded/fluidlauncher/screenshots/raycasting.pngbin0 -> 43006 bytes
-rw-r--r--demos/embedded/fluidlauncher/screenshots/saxbookmarks_s60.pngbin0 -> 47182 bytes
-rw-r--r--demos/embedded/fluidlauncher/screenshots/softkeys_s60.pngbin0 -> 28562 bytes
-rw-r--r--demos/embedded/fluidlauncher/screenshots/styledemo_s60.pngbin0 -> 51957 bytes
-rw-r--r--demos/embedded/fluidlauncher/screenshots/weatherinfo.pngbin0 -> 38521 bytes
-rw-r--r--demos/embedded/fluidlauncher/screenshots/wiggly_s60.pngbin0 -> 5549 bytes
-rw-r--r--demos/embedded/lightmaps/lightmaps.cpp579
-rw-r--r--demos/embedded/lightmaps/lightmaps.pro10
-rw-r--r--demos/embedded/raycasting/raycasting.cpp310
-rw-r--r--demos/embedded/raycasting/raycasting.pro3
-rw-r--r--demos/embedded/raycasting/raycasting.qrc5
-rw-r--r--demos/embedded/raycasting/textures.pngbin0 -> 42319 bytes
-rw-r--r--demos/embedded/styledemo/files/application.qss2
-rw-r--r--demos/embedded/styledemo/files/blue.qss3
-rw-r--r--demos/embedded/styledemo/files/khaki.qss3
-rw-r--r--demos/embedded/styledemo/files/transparent.qss1
-rw-r--r--demos/embedded/styledemo/styledemo.pro5
-rw-r--r--demos/embedded/styledemo/stylewidget.ui345
-rw-r--r--demos/embedded/weatherinfo/icons/README.txt5
-rw-r--r--demos/embedded/weatherinfo/icons/weather-few-clouds.svg738
-rw-r--r--demos/embedded/weatherinfo/icons/weather-fog.svg1585
-rw-r--r--demos/embedded/weatherinfo/icons/weather-haze.svg1121
-rw-r--r--demos/embedded/weatherinfo/icons/weather-icy.svg255
-rw-r--r--demos/embedded/weatherinfo/icons/weather-overcast.svg3036
-rw-r--r--demos/embedded/weatherinfo/icons/weather-showers.svg4753
-rw-r--r--demos/embedded/weatherinfo/icons/weather-sleet.svg5196
-rw-r--r--demos/embedded/weatherinfo/icons/weather-snow.svg1974
-rw-r--r--demos/embedded/weatherinfo/icons/weather-storm.svg4308
-rw-r--r--demos/embedded/weatherinfo/icons/weather-sunny-very-few-clouds.svg593
-rw-r--r--demos/embedded/weatherinfo/icons/weather-sunny.svg1330
-rw-r--r--demos/embedded/weatherinfo/icons/weather-thundershower.svg4587
-rw-r--r--demos/embedded/weatherinfo/weatherinfo.cpp511
-rw-r--r--demos/embedded/weatherinfo/weatherinfo.pro11
-rw-r--r--demos/embedded/weatherinfo/weatherinfo.qrc16
-rw-r--r--demos/embeddeddialogs/embeddeddialogs.pro2
-rw-r--r--demos/embeddeddialogs/main.cpp1
-rw-r--r--demos/gradients/gradients.pro2
-rw-r--r--demos/interview/interview.pro1
-rw-r--r--demos/macmainwindow/macmainwindow.pro2
-rw-r--r--demos/mainwindow/mainwindow.pro1
-rw-r--r--demos/mediaplayer/mediaplayer.pro5
-rw-r--r--demos/pathstroke/pathstroke.pro4
-rw-r--r--demos/qtdemo/colors.cpp31
-rw-r--r--demos/qtdemo/colors.h4
-rw-r--r--demos/qtdemo/mainwindow.cpp15
-rw-r--r--demos/qtdemo/qtdemo.pro4
-rw-r--r--demos/qtdemo/qtdemo.rc30
-rw-r--r--demos/qtdemo/xml/examples.xml23
-rw-r--r--demos/shared/shared.pri3
-rw-r--r--demos/shared/shared.pro5
-rw-r--r--demos/spreadsheet/spreadsheet.cpp2
-rw-r--r--demos/spreadsheet/spreadsheet.pro1
-rw-r--r--demos/sqlbrowser/sqlbrowser.pro2
-rw-r--r--demos/sub-attaq/animationmanager.cpp93
-rw-r--r--demos/sub-attaq/animationmanager.h70
-rw-r--r--demos/sub-attaq/boat.cpp318
-rw-r--r--demos/sub-attaq/boat.h101
-rw-r--r--demos/sub-attaq/boat_p.h256
-rw-r--r--demos/sub-attaq/bomb.cpp124
-rw-r--r--demos/sub-attaq/bomb.h75
-rw-r--r--demos/sub-attaq/custompropertyanimation.cpp108
-rw-r--r--demos/sub-attaq/custompropertyanimation.h114
-rw-r--r--demos/sub-attaq/data.xml39
-rw-r--r--demos/sub-attaq/graphicsscene.cpp374
-rw-r--r--demos/sub-attaq/graphicsscene.h131
-rw-r--r--demos/sub-attaq/main.cpp57
-rw-r--r--demos/sub-attaq/mainwindow.cpp97
-rw-r--r--demos/sub-attaq/mainwindow.h64
-rw-r--r--demos/sub-attaq/pics/big/background.pngbin0 -> 48858 bytes
-rw-r--r--demos/sub-attaq/pics/big/boat.pngbin0 -> 5198 bytes
-rw-r--r--demos/sub-attaq/pics/big/bomb.pngbin0 -> 760 bytes
-rw-r--r--demos/sub-attaq/pics/big/explosion/boat/step1.pngbin0 -> 5760 bytes
-rw-r--r--demos/sub-attaq/pics/big/explosion/boat/step2.pngbin0 -> 9976 bytes
-rw-r--r--demos/sub-attaq/pics/big/explosion/boat/step3.pngbin0 -> 12411 bytes
-rw-r--r--demos/sub-attaq/pics/big/explosion/boat/step4.pngbin0 -> 15438 bytes
-rw-r--r--demos/sub-attaq/pics/big/explosion/submarine/step1.pngbin0 -> 3354 bytes
-rw-r--r--demos/sub-attaq/pics/big/explosion/submarine/step2.pngbin0 -> 6205 bytes
-rw-r--r--demos/sub-attaq/pics/big/explosion/submarine/step3.pngbin0 -> 6678 bytes
-rw-r--r--demos/sub-attaq/pics/big/explosion/submarine/step4.pngbin0 -> 6666 bytes
-rw-r--r--demos/sub-attaq/pics/big/submarine.pngbin0 -> 3202 bytes
-rw-r--r--demos/sub-attaq/pics/big/surface.pngbin0 -> 575 bytes
-rw-r--r--demos/sub-attaq/pics/big/torpedo.pngbin0 -> 951 bytes
-rw-r--r--demos/sub-attaq/pics/scalable/background-n810.svg171
-rw-r--r--demos/sub-attaq/pics/scalable/background.svg171
-rw-r--r--demos/sub-attaq/pics/scalable/boat.svg279
-rw-r--r--demos/sub-attaq/pics/scalable/bomb.svg138
-rw-r--r--demos/sub-attaq/pics/scalable/sand.svg103
-rw-r--r--demos/sub-attaq/pics/scalable/see.svg44
-rw-r--r--demos/sub-attaq/pics/scalable/sky.svg45
-rw-r--r--demos/sub-attaq/pics/scalable/sub-attaq.svg1473
-rw-r--r--demos/sub-attaq/pics/scalable/submarine.svg214
-rw-r--r--demos/sub-attaq/pics/scalable/surface.svg49
-rw-r--r--demos/sub-attaq/pics/scalable/torpedo.svg127
-rw-r--r--demos/sub-attaq/pics/small/background.pngbin0 -> 34634 bytes
-rw-r--r--demos/sub-attaq/pics/small/boat.pngbin0 -> 2394 bytes
-rw-r--r--demos/sub-attaq/pics/small/bomb.pngbin0 -> 760 bytes
-rw-r--r--demos/sub-attaq/pics/small/submarine.pngbin0 -> 1338 bytes
-rw-r--r--demos/sub-attaq/pics/small/surface.pngbin0 -> 502 bytes
-rw-r--r--demos/sub-attaq/pics/small/torpedo.pngbin0 -> 951 bytes
-rw-r--r--demos/sub-attaq/pics/welcome/logo-a.pngbin0 -> 5972 bytes
-rw-r--r--demos/sub-attaq/pics/welcome/logo-a2.pngbin0 -> 5969 bytes
-rw-r--r--demos/sub-attaq/pics/welcome/logo-b.pngbin0 -> 6869 bytes
-rw-r--r--demos/sub-attaq/pics/welcome/logo-dash.pngbin0 -> 2255 bytes
-rw-r--r--demos/sub-attaq/pics/welcome/logo-excl.pngbin0 -> 2740 bytes
-rw-r--r--demos/sub-attaq/pics/welcome/logo-q.pngbin0 -> 7016 bytes
-rw-r--r--demos/sub-attaq/pics/welcome/logo-s.pngbin0 -> 5817 bytes
-rw-r--r--demos/sub-attaq/pics/welcome/logo-t.pngbin0 -> 3717 bytes
-rw-r--r--demos/sub-attaq/pics/welcome/logo-t2.pngbin0 -> 3688 bytes
-rw-r--r--demos/sub-attaq/pics/welcome/logo-u.pngbin0 -> 5374 bytes
-rw-r--r--demos/sub-attaq/pixmapitem.cpp59
-rw-r--r--demos/sub-attaq/pixmapitem.h63
-rw-r--r--demos/sub-attaq/progressitem.cpp67
-rw-r--r--demos/sub-attaq/progressitem.h61
-rw-r--r--demos/sub-attaq/qanimationstate.cpp150
-rw-r--r--demos/sub-attaq/qanimationstate.h92
-rw-r--r--demos/sub-attaq/states.cpp327
-rw-r--r--demos/sub-attaq/states.h180
-rw-r--r--demos/sub-attaq/sub-attaq.pro37
-rw-r--r--demos/sub-attaq/subattaq.qrc39
-rw-r--r--demos/sub-attaq/submarine.cpp218
-rw-r--r--demos/sub-attaq/submarine.h96
-rw-r--r--demos/sub-attaq/submarine_p.h138
-rw-r--r--demos/sub-attaq/torpedo.cpp120
-rw-r--r--demos/sub-attaq/torpedo.h75
-rw-r--r--demos/symbianpkgrules.pri13
-rw-r--r--demos/textedit/textedit.cpp90
-rw-r--r--demos/textedit/textedit.pro1
-rw-r--r--demos/undo/undo.pro1
239 files changed, 43111 insertions, 1859 deletions
diff --git a/demos/affine/affine.pro b/demos/affine/affine.pro
index b928753..7f9e444 100644
--- a/demos/affine/affine.pro
+++ b/demos/affine/affine.pro
@@ -18,6 +18,8 @@ sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.html *.jpg
sources.path = $$[QT_INSTALL_DEMOS]/affine
INSTALLS += target sources
+symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
+
wince*: {
DEPLOYMENT_PLUGIN += qjpeg
}
diff --git a/demos/arthurplugin/arthurplugin.pro b/demos/arthurplugin/arthurplugin.pro
index e9eb1f3..3114293 100644
--- a/demos/arthurplugin/arthurplugin.pro
+++ b/demos/arthurplugin/arthurplugin.pro
@@ -44,6 +44,8 @@ sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.jpg *.png
sources.path = $$[QT_INSTALL_DEMOS]/arthurplugin
INSTALLS += target sources
+symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
+
win32-msvc* {
QMAKE_CFLAGS += /Zm500
QMAKE_CXXFLAGS += /Zm500
diff --git a/demos/arthurplugin/plugin.cpp b/demos/arthurplugin/plugin.cpp
index 19fecbc..727fd12 100644
--- a/demos/arthurplugin/plugin.cpp
+++ b/demos/arthurplugin/plugin.cpp
@@ -55,7 +55,26 @@
QT_FORWARD_DECLARE_CLASS(QDesignerFormEditorInterface)
-static inline QString customWidgetDomXml(const QString &className)
+// Specify "text" to be a singleline property (no richtext)
+static inline QString textSingleLinePropertyDeclaration(const QString &className)
+{
+ QString rc = QLatin1String(
+ "<customwidgets>\n"
+ " <customwidget>\n"
+ " <class>");
+ rc += className;
+ rc += QLatin1String("</class>\n"
+ " <propertyspecifications>\n"
+ " <stringpropertyspecification name=\"text\" type=\"singleline\"/>\n"
+ " </propertyspecifications>\n"
+ " </customwidget>\n"
+ "</customwidgets>\n");
+ return rc;
+}
+
+// Plain XML for a custom widget
+static inline QString customWidgetDomXml(const QString &className,
+ const QString &customSection = QString())
{
QString rc = QLatin1String("<ui language=\"c++\"><widget class=\"");
rc += className;
@@ -63,7 +82,9 @@ static inline QString customWidgetDomXml(const QString &className)
QString objectName = className;
objectName[0] = objectName.at(0).toLower();
rc += objectName;
- rc += QLatin1String("\"/></ui>");
+ rc += QLatin1String("\"/>");
+ rc += customSection;
+ rc += QLatin1String("</ui>");
return rc;
}
@@ -80,7 +101,7 @@ class DemoPlugin : public QDesignerCustomWidgetInterface
Q_INTERFACES(QDesignerCustomWidgetInterface)
protected:
- DemoPlugin(const QString &className);
+ explicit DemoPlugin(const QString &className, const QString &customSection = QString());
public:
QString name() const { return m_className; }
@@ -105,9 +126,9 @@ private:
bool m_initialized;
};
-DemoPlugin::DemoPlugin(const QString &className) :
+DemoPlugin::DemoPlugin(const QString &className, const QString &customSection) :
m_className(className),
- m_domXml(customWidgetDomXml(className)),
+ m_domXml(customWidgetDomXml(className, customSection)),
m_initialized(false)
{
}
@@ -117,8 +138,8 @@ class DeformPlugin : public QObject, public DemoPlugin
Q_OBJECT
public:
- DeformPlugin(QObject *parent = 0) : QObject(parent), DemoPlugin(QLatin1String("PathDeformRendererEx")) { }
- QString includeFile() const { return "deform.h"; }
+ explicit DeformPlugin(QObject *parent = 0);
+ QString includeFile() const { return QLatin1String("deform.h"); }
QWidget *createWidget(QWidget *parent)
{
@@ -126,12 +147,19 @@ public:
deform->setRadius(70);
deform->setAnimated(false);
deform->setFontSize(20);
- deform->setText("Arthur Widgets Demo");
+ deform->setText(QLatin1String("Arthur Widgets Demo"));
return deform;
}
};
+DeformPlugin::DeformPlugin(QObject *parent) :
+ QObject(parent),
+ DemoPlugin(QLatin1String("PathDeformRendererEx"),
+ textSingleLinePropertyDeclaration(QLatin1String("PathDeformRendererEx")))
+{
+}
+
class XFormRendererEx : public XFormView
{
Q_OBJECT
@@ -144,24 +172,30 @@ class XFormPlugin : public QObject, public DemoPlugin
{
Q_OBJECT
public:
- XFormPlugin(QObject *parent = 0) : QObject(parent), DemoPlugin(QLatin1String("XFormRendererEx")) { }
- QString includeFile() const { return "xform.h"; }
+ explicit XFormPlugin(QObject *parent = 0);
+ QString includeFile() const { return QLatin1String("xform.h"); }
QWidget *createWidget(QWidget *parent)
{
XFormRendererEx *xform = new XFormRendererEx(parent);
- xform->setText("Qt - Hello World!!");
- xform->setPixmap(QPixmap(":/trolltech/arthurplugin/bg1.jpg"));
+ xform->setText(QLatin1String("Qt - Hello World!!"));
+ xform->setPixmap(QPixmap(QLatin1String(":/trolltech/arthurplugin/bg1.jpg")));
return xform;
}
};
+XFormPlugin::XFormPlugin(QObject *parent) :
+ QObject(parent),
+ DemoPlugin(QLatin1String("XFormRendererEx"),
+ textSingleLinePropertyDeclaration(QLatin1String("XFormRendererEx")))
+{
+}
class GradientEditorPlugin : public QObject, public DemoPlugin
{
Q_OBJECT
public:
- GradientEditorPlugin(QObject *parent = 0) : QObject(parent), DemoPlugin(QLatin1String("GradientEditor")) { }
+ explicit GradientEditorPlugin(QObject *parent = 0) : QObject(parent), DemoPlugin(QLatin1String("GradientEditor")) { }
QString includeFile() const { return "gradients.h"; }
QWidget *createWidget(QWidget *parent)
@@ -184,7 +218,7 @@ class GradientRendererPlugin : public QObject, public DemoPlugin
Q_OBJECT
public:
GradientRendererPlugin(QObject *parent = 0) : QObject(parent), DemoPlugin(QLatin1String("GradientRendererEx")) { }
- QString includeFile() const { return "gradients.h"; }
+ QString includeFile() const { return QLatin1String("gradients.h"); }
QWidget *createWidget(QWidget *parent)
{
@@ -198,7 +232,7 @@ class PathStrokeRendererEx : public PathStrokeRenderer
{
Q_OBJECT
public:
- PathStrokeRendererEx(QWidget *p) : PathStrokeRenderer(p) { }
+ explicit PathStrokeRendererEx(QWidget *p) : PathStrokeRenderer(p) { }
QSize sizeHint() const { return QSize(300, 200); }
};
@@ -206,8 +240,8 @@ class StrokeRenderPlugin : public QObject, public DemoPlugin
{
Q_OBJECT
public:
- StrokeRenderPlugin(QObject *parent = 0) : QObject(parent), DemoPlugin(QLatin1String("PathStrokeRendererEx")) { }
- QString includeFile() const { return "pathstroke.h"; }
+ explicit StrokeRenderPlugin(QObject *parent = 0) : QObject(parent), DemoPlugin(QLatin1String("PathStrokeRendererEx")) { }
+ QString includeFile() const { return QLatin1String("pathstroke.h"); }
QWidget *createWidget(QWidget *parent)
{
@@ -221,8 +255,8 @@ class CompositionModePlugin : public QObject, public DemoPlugin
{
Q_OBJECT
public:
- CompositionModePlugin(QObject *parent = 0) : QObject(parent), DemoPlugin(QLatin1String("CompositionRenderer")) { }
- QString includeFile() const { return "composition.h"; }
+ explicit CompositionModePlugin(QObject *parent = 0) : QObject(parent), DemoPlugin(QLatin1String("CompositionRenderer")) { }
+ QString includeFile() const { return QLatin1String("composition.h"); }
QWidget *createWidget(QWidget *parent)
{
@@ -239,7 +273,7 @@ class ArthurPlugins : public QObject, public QDesignerCustomWidgetCollectionInte
Q_INTERFACES(QDesignerCustomWidgetCollectionInterface)
public:
- ArthurPlugins(QObject *parent = 0);
+ explicit ArthurPlugins(QObject *parent = 0);
QList<QDesignerCustomWidgetInterface*> customWidgets() const { return m_plugins; }
private:
diff --git a/demos/books/books.pro b/demos/books/books.pro
index a2cd33f..a5e44e5 100644
--- a/demos/books/books.pro
+++ b/demos/books/books.pro
@@ -13,9 +13,11 @@ sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.pro images
sources.path = $$[QT_INSTALL_DEMOS]/books
INSTALLS += target sources
+symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
+
wince*: {
CONFIG(debug, debug|release):sqlPlugins.sources = $$QT_BUILD_TREE/plugins/sqldrivers/*d4.dll
CONFIG(release, debug|release):sqlPlugins.sources = $$QT_BUILD_TREE/plugins/sqldrivers/*[^d]4.dll
sqlPlugins.path = sqldrivers
DEPLOYMENT += sqlPlugins
-} \ No newline at end of file
+}
diff --git a/demos/boxes/boxes.pro b/demos/boxes/boxes.pro
index 6c1a331..59c9132 100644
--- a/demos/boxes/boxes.pro
+++ b/demos/boxes/boxes.pro
@@ -11,17 +11,14 @@ INCLUDEPATH += .
HEADERS += 3rdparty/fbm.h \
glbuffers.h \
glextensions.h \
- glshaders.h \
gltrianglemesh.h \
qtbox.h \
roundedbox.h \
scene.h \
- trackball.h \
- vector.h
+ trackball.h
SOURCES += 3rdparty/fbm.c \
glbuffers.cpp \
glextensions.cpp \
- glshaders.cpp \
main.cpp \
qtbox.cpp \
roundedbox.cpp \
@@ -45,6 +42,8 @@ wince*: {
}
win32-msvc* {
- QMAKE_CXXFLAGS += /Zm1200
- QMAKE_CFLAGS += /Zm1200
+ QMAKE_CXXFLAGS -= -Zm200
+ QMAKE_CFLAGS -= -Zm200
+ QMAKE_CXXFLAGS += -Zm1200
+ QMAKE_CFLAGS += -Zm1200
}
diff --git a/demos/boxes/glbuffers.cpp b/demos/boxes/glbuffers.cpp
index 69d7ad8..a3d26f6 100644
--- a/demos/boxes/glbuffers.cpp
+++ b/demos/boxes/glbuffers.cpp
@@ -40,6 +40,7 @@
****************************************************************************/
#include "glbuffers.h"
+#include <QtGui/qmatrix4x4.h>
//============================================================================//
// GLTexture //
@@ -346,7 +347,7 @@ void GLRenderTargetCube::end()
m_fbo.setAsRenderTarget(false);
}
-void GLRenderTargetCube::getViewMatrix(gfx::Matrix4x4f& mat, int face)
+void GLRenderTargetCube::getViewMatrix(QMatrix4x4& mat, int face)
{
if (face < 0 || face >= 6) {
qWarning("GLRenderTargetCube::getViewMatrix: 'face' must be in the range [0, 6). (face == %d)", face);
@@ -371,20 +372,21 @@ void GLRenderTargetCube::getViewMatrix(gfx::Matrix4x4f& mat, int face)
{-1.0f, -1.0f, +1.0f},
};
- memset(mat.bits(), 0, sizeof(float) * 16);
+ memset(mat.data(), 0, sizeof(float) * 16);
for (int i = 0; i < 3; ++i)
- mat(perm[face][i], i) = signs[face][i];
+ mat(i, perm[face][i]) = signs[face][i];
mat(3, 3) = 1.0f;
}
-void GLRenderTargetCube::getProjectionMatrix(gfx::Matrix4x4f& mat, float nearZ, float farZ)
+void GLRenderTargetCube::getProjectionMatrix(QMatrix4x4& mat, float nearZ, float farZ)
{
- float proj[] = {
- 1.0f, 0.0f, 0.0f, 0.0f,
- 0.0f, 1.0f, 0.0f, 0.0f,
- 0.0f, 0.0f, (nearZ+farZ)/(nearZ-farZ), -1.0f,
- 0.0f, 0.0f, 2.0f*nearZ*farZ/(nearZ-farZ), 0.0f,
- };
-
- memcpy(mat.bits(), proj, sizeof(float) * 16);
+ static const QMatrix4x4 reference(
+ 1.0f, 0.0f, 0.0f, 0.0f,
+ 0.0f, 1.0f, 0.0f, 0.0f,
+ 0.0f, 0.0f, 0.0f, 0.0f,
+ 0.0f, 0.0f, -1.0f, 0.0f);
+
+ mat = reference;
+ mat(2, 2) = (nearZ+farZ)/(nearZ-farZ);
+ mat(2, 3) = 2.0f*nearZ*farZ/(nearZ-farZ);
}
diff --git a/demos/boxes/glbuffers.h b/demos/boxes/glbuffers.h
index 71c4012..2cce006 100644
--- a/demos/boxes/glbuffers.h
+++ b/demos/boxes/glbuffers.h
@@ -48,8 +48,6 @@
#include <QtGui>
#include <QtOpenGL>
-#include "vector.h"
-
#define BUFFER_OFFSET(i) ((char*)0 + (i))
#define SIZE_OF_MEMBER(cls, member) sizeof(static_cast<cls *>(0)->member)
@@ -60,6 +58,10 @@ if (m_failed || !(assertion)) {
returnStatement; \
}
+QT_BEGIN_NAMESPACE
+class QMatrix4x4;
+QT_END_NAMESPACE
+
class GLTexture
{
public:
@@ -135,8 +137,8 @@ public:
void end();
virtual bool failed() {return m_failed || m_fbo.failed();}
- static void getViewMatrix(gfx::Matrix4x4f& mat, int face);
- static void getProjectionMatrix(gfx::Matrix4x4f& mat, float nearZ, float farZ);
+ static void getViewMatrix(QMatrix4x4& mat, int face);
+ static void getProjectionMatrix(QMatrix4x4& mat, float nearZ, float farZ);
private:
GLFrameBufferObject m_fbo;
};
diff --git a/demos/boxes/glextensions.cpp b/demos/boxes/glextensions.cpp
index 20aaebe..6e11284 100644
--- a/demos/boxes/glextensions.cpp
+++ b/demos/boxes/glextensions.cpp
@@ -47,23 +47,6 @@ bool GLExtensionFunctions::resolve(const QGLContext *context)
{
bool ok = true;
- RESOLVE_GL_FUNC(CreateShaderObjectARB)
- RESOLVE_GL_FUNC(ShaderSourceARB)
- RESOLVE_GL_FUNC(CompileShaderARB)
- RESOLVE_GL_FUNC(GetObjectParameterivARB)
- RESOLVE_GL_FUNC(DeleteObjectARB)
- RESOLVE_GL_FUNC(GetInfoLogARB)
- RESOLVE_GL_FUNC(CreateProgramObjectARB)
- RESOLVE_GL_FUNC(AttachObjectARB)
- RESOLVE_GL_FUNC(DetachObjectARB)
- RESOLVE_GL_FUNC(LinkProgramARB)
- RESOLVE_GL_FUNC(UseProgramObjectARB)
- RESOLVE_GL_FUNC(GetUniformLocationARB)
- RESOLVE_GL_FUNC(Uniform1iARB)
- RESOLVE_GL_FUNC(Uniform1fARB)
- RESOLVE_GL_FUNC(Uniform4fARB)
- RESOLVE_GL_FUNC(UniformMatrix4fvARB)
-
RESOLVE_GL_FUNC(GenFramebuffersEXT)
RESOLVE_GL_FUNC(GenRenderbuffersEXT)
RESOLVE_GL_FUNC(BindRenderbufferEXT)
@@ -88,26 +71,6 @@ bool GLExtensionFunctions::resolve(const QGLContext *context)
return ok;
}
-bool GLExtensionFunctions::glslSupported() {
- return CreateShaderObjectARB
- && CreateShaderObjectARB
- && ShaderSourceARB
- && CompileShaderARB
- && GetObjectParameterivARB
- && DeleteObjectARB
- && GetInfoLogARB
- && CreateProgramObjectARB
- && AttachObjectARB
- && DetachObjectARB
- && LinkProgramARB
- && UseProgramObjectARB
- && GetUniformLocationARB
- && Uniform1iARB
- && Uniform1fARB
- && Uniform4fARB
- && UniformMatrix4fvARB;
-}
-
bool GLExtensionFunctions::fboSupported() {
return GenFramebuffersEXT
&& GenRenderbuffersEXT
diff --git a/demos/boxes/glextensions.h b/demos/boxes/glextensions.h
index 7520a57..70d6c33 100644
--- a/demos/boxes/glextensions.h
+++ b/demos/boxes/glextensions.h
@@ -47,23 +47,6 @@
/*
Functions resolved:
-glCreateShaderObjectARB
-glShaderSourceARB
-glCompileShaderARB
-glGetObjectParameterivARB
-glDeleteObjectARB
-glGetInfoLogARB
-glCreateProgramObjectARB
-glAttachObjectARB
-glDetachObjectARB
-glLinkProgramARB
-glUseProgramObjectARB
-glGetUniformLocationARB
-glUniform1iARB
-glUniform1fARB
-glUniform4fARB
-glUniformMatrix4fvARB
-
glGenFramebuffersEXT
glGenRenderbuffersEXT
glBindRenderbufferEXT
@@ -139,39 +122,6 @@ typedef ptrdiff_t GLsizeiptrARB;
#define GL_DEPTH_ATTACHMENT_EXT 0x8D00
#endif
-#ifndef GL_ARB_vertex_shader
-#define GL_VERTEX_SHADER_ARB 0x8B31
-#endif
-
-#ifndef GL_ARB_fragment_shader
-#define GL_FRAGMENT_SHADER_ARB 0x8B30
-#endif
-
-#ifndef GL_ARB_shader_objects
-typedef char GLcharARB;
-typedef unsigned int GLhandleARB;
-#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81
-#define GL_OBJECT_LINK_STATUS_ARB 0x8B82
-#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84
-#endif
-
-typedef GLhandleARB (APIENTRY *_glCreateShaderObjectARB) (GLenum);
-typedef void (APIENTRY *_glShaderSourceARB) (GLhandleARB, GLuint, const GLcharARB**, GLint *);
-typedef void (APIENTRY *_glCompileShaderARB) (GLhandleARB);
-typedef void (APIENTRY *_glGetObjectParameterivARB) (GLhandleARB, GLenum, int *);
-typedef void (APIENTRY *_glDeleteObjectARB) (GLhandleARB);
-typedef void (APIENTRY *_glGetInfoLogARB) (GLhandleARB, GLsizei, GLsizei *, GLcharARB *);
-typedef GLhandleARB (APIENTRY *_glCreateProgramObjectARB) ();
-typedef void (APIENTRY *_glAttachObjectARB) (GLhandleARB, GLhandleARB);
-typedef void (APIENTRY *_glDetachObjectARB) (GLhandleARB, GLhandleARB);
-typedef void (APIENTRY *_glLinkProgramARB) (GLhandleARB);
-typedef void (APIENTRY *_glUseProgramObjectARB) (GLhandleARB);
-typedef GLint (APIENTRY *_glGetUniformLocationARB) (GLhandleARB, const GLcharARB *);
-typedef void (APIENTRY *_glUniform1iARB) (GLint, GLint);
-typedef void (APIENTRY *_glUniform1fARB) (GLint, GLfloat);
-typedef void (APIENTRY *_glUniform4fARB) (GLint, GLfloat, GLfloat, GLfloat, GLfloat);
-typedef void (APIENTRY *_glUniformMatrix4fvARB) (GLint, GLuint, GLboolean, const GLfloat *);
-
typedef void (APIENTRY *_glGenFramebuffersEXT) (GLsizei, GLuint *);
typedef void (APIENTRY *_glGenRenderbuffersEXT) (GLsizei, GLuint *);
typedef void (APIENTRY *_glBindRenderbufferEXT) (GLenum, GLuint);
@@ -197,27 +147,9 @@ struct GLExtensionFunctions
{
bool resolve(const QGLContext *context);
- bool glslSupported();
bool fboSupported();
bool openGL15Supported(); // the rest: multi-texture, 3D-texture, vertex buffer objects
- _glCreateShaderObjectARB CreateShaderObjectARB;
- _glShaderSourceARB ShaderSourceARB;
- _glCompileShaderARB CompileShaderARB;
- _glGetObjectParameterivARB GetObjectParameterivARB;
- _glDeleteObjectARB DeleteObjectARB;
- _glGetInfoLogARB GetInfoLogARB;
- _glCreateProgramObjectARB CreateProgramObjectARB;
- _glAttachObjectARB AttachObjectARB;
- _glDetachObjectARB DetachObjectARB;
- _glLinkProgramARB LinkProgramARB;
- _glUseProgramObjectARB UseProgramObjectARB;
- _glGetUniformLocationARB GetUniformLocationARB;
- _glUniform1iARB Uniform1iARB;
- _glUniform1fARB Uniform1fARB;
- _glUniform4fARB Uniform4fARB;
- _glUniformMatrix4fvARB UniformMatrix4fvARB;
-
_glGenFramebuffersEXT GenFramebuffersEXT;
_glGenRenderbuffersEXT GenRenderbuffersEXT;
_glBindRenderbufferEXT BindRenderbufferEXT;
@@ -246,23 +178,6 @@ inline GLExtensionFunctions &getGLExtensionFunctions()
return funcs;
}
-#define glCreateShaderObjectARB getGLExtensionFunctions().CreateShaderObjectARB
-#define glShaderSourceARB getGLExtensionFunctions().ShaderSourceARB
-#define glCompileShaderARB getGLExtensionFunctions().CompileShaderARB
-#define glGetObjectParameterivARB getGLExtensionFunctions().GetObjectParameterivARB
-#define glDeleteObjectARB getGLExtensionFunctions().DeleteObjectARB
-#define glGetInfoLogARB getGLExtensionFunctions().GetInfoLogARB
-#define glCreateProgramObjectARB getGLExtensionFunctions().CreateProgramObjectARB
-#define glAttachObjectARB getGLExtensionFunctions().AttachObjectARB
-#define glDetachObjectARB getGLExtensionFunctions().DetachObjectARB
-#define glLinkProgramARB getGLExtensionFunctions().LinkProgramARB
-#define glUseProgramObjectARB getGLExtensionFunctions().UseProgramObjectARB
-#define glGetUniformLocationARB getGLExtensionFunctions().GetUniformLocationARB
-#define glUniform1iARB getGLExtensionFunctions().Uniform1iARB
-#define glUniform1fARB getGLExtensionFunctions().Uniform1fARB
-#define glUniform4fARB getGLExtensionFunctions().Uniform4fARB
-#define glUniformMatrix4fvARB getGLExtensionFunctions().UniformMatrix4fvARB
-
#define glGenFramebuffersEXT getGLExtensionFunctions().GenFramebuffersEXT
#define glGenRenderbuffersEXT getGLExtensionFunctions().GenRenderbuffersEXT
#define glBindRenderbufferEXT getGLExtensionFunctions().BindRenderbufferEXT
diff --git a/demos/boxes/glshaders.cpp b/demos/boxes/glshaders.cpp
deleted file mode 100644
index 7622858..0000000
--- a/demos/boxes/glshaders.cpp
+++ /dev/null
@@ -1,266 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the demonstration applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain
-** additional rights. These rights are described in the Nokia Qt LGPL
-** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
-** package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "glshaders.h"
-
-#define GLSHADERS_ASSERT_OPENGL(prefix, assertion, returnStatement) \
-if (m_failed || !(assertion)) { \
- if (!m_failed) qCritical(prefix ": The necessary OpenGL functions are not available."); \
- m_failed = true; \
- returnStatement; \
-}
-
-
-GLShader::GLShader(const char *data, int size, GLenum shaderType)
-: m_compileError(false), m_failed(false)
-{
- GLSHADERS_ASSERT_OPENGL("GLShader::GLShader",
- glCreateShaderObjectARB && glShaderSourceARB && glCompileShaderARB && glGetObjectParameterivARB, return)
-
- m_shader = glCreateShaderObjectARB(shaderType);
-
- GLint glSize = size;
- glShaderSourceARB(m_shader, 1, reinterpret_cast<const GLcharARB**>(&data), &glSize);
- glCompileShaderARB(m_shader);
- int status;
- glGetObjectParameterivARB(m_shader, GL_OBJECT_COMPILE_STATUS_ARB, &status);
- m_compileError = (status != 1);
-}
-
-GLShader::GLShader(const QString& fileName, GLenum shaderType)
- : m_compileError(false), m_failed(false)
-{
- GLSHADERS_ASSERT_OPENGL("GLShader::GLShader",
- glCreateShaderObjectARB && glShaderSourceARB && glCompileShaderARB && glGetObjectParameterivARB, return)
-
- m_shader = glCreateShaderObjectARB(shaderType);
-
- QFile file(fileName);
- if (file.open(QIODevice::ReadOnly)) {
- QByteArray bytes = file.readAll();
- GLint size = file.size();
- const char *p = bytes.data();
- file.close();
- glShaderSourceARB(m_shader, 1, reinterpret_cast<const GLcharARB**>(&p), &size);
- glCompileShaderARB(m_shader);
- int status;
- glGetObjectParameterivARB(m_shader, GL_OBJECT_COMPILE_STATUS_ARB, &status);
- m_compileError = (status != 1);
- } else {
- m_compileError = true;
- }
-}
-
-GLShader::~GLShader()
-{
- GLSHADERS_ASSERT_OPENGL("GLShader::~GLShader", glDeleteObjectARB, return)
-
- glDeleteObjectARB(m_shader);
-}
-
-QString GLShader::log()
-{
- GLSHADERS_ASSERT_OPENGL("GLShader::log", glGetObjectParameterivARB
- && glGetInfoLogARB, return QLatin1String("GLSL not supported."))
-
- int length;
- glGetObjectParameterivARB(m_shader, GL_OBJECT_INFO_LOG_LENGTH_ARB, &length);
- char *log = new char[length + 1];
- GLsizei glLength = length;
- glGetInfoLogARB(m_shader, glLength, &glLength, reinterpret_cast<GLcharARB*>(log));
- log[glLength] = '\0';
- QString result(log);
- delete log;
- return result;
-}
-
-GLVertexShader::GLVertexShader(const char *data, int size) : GLShader(data, size, GL_VERTEX_SHADER_ARB)
-{
-}
-
-GLVertexShader::GLVertexShader(const QString& fileName) : GLShader(fileName, GL_VERTEX_SHADER_ARB)
-{
-}
-
-GLFragmentShader::GLFragmentShader(const char *data, int size) : GLShader(data, size, GL_FRAGMENT_SHADER_ARB)
-{
-}
-
-GLFragmentShader::GLFragmentShader(const QString& fileName) : GLShader(fileName, GL_FRAGMENT_SHADER_ARB)
-{
-}
-
-GLProgram::GLProgram() : m_linked(false), m_linkError(false), m_failed(false)
-{
- GLSHADERS_ASSERT_OPENGL("GLProgram::GLProgram", glCreateProgramObjectARB, return)
-
- m_program = glCreateProgramObjectARB();
-}
-
-GLProgram::~GLProgram()
-{
- GLSHADERS_ASSERT_OPENGL("GLProgram::~GLProgram", glDeleteObjectARB, return)
-
- glDeleteObjectARB(m_program);
-}
-
-void GLProgram::attach(const GLShader &shader)
-{
- GLSHADERS_ASSERT_OPENGL("GLProgram::attach", glAttachObjectARB, return)
-
- glAttachObjectARB(m_program, shader.m_shader);
- m_linked = m_linkError = false;
-}
-
-void GLProgram::detach(const GLShader &shader)
-{
- GLSHADERS_ASSERT_OPENGL("GLProgram::detach", glDetachObjectARB, return)
-
- glDetachObjectARB(m_program, shader.m_shader);
- m_linked = m_linkError = false;
-}
-
-bool GLProgram::failed()
-{
- if (m_failed || m_linkError)
- return true;
-
- if (m_linked)
- return false;
-
- GLSHADERS_ASSERT_OPENGL("GLProgram::failed", glLinkProgramARB && glGetObjectParameterivARB, return true)
-
- glLinkProgramARB(m_program);
- int status;
- glGetObjectParameterivARB(m_program, GL_OBJECT_LINK_STATUS_ARB, &status);
- m_linkError = !(m_linked = (status == 1));
- return m_linkError;
-}
-
-QString GLProgram::log()
-{
- GLSHADERS_ASSERT_OPENGL("GLProgram::log", glGetObjectParameterivARB && glGetInfoLogARB,
- return QLatin1String("Failed."))
-
- int length;
- glGetObjectParameterivARB(m_program, GL_OBJECT_INFO_LOG_LENGTH_ARB, &length);
- char *log = new char[length + 1];
- GLsizei glLength = length;
- glGetInfoLogARB(m_program, glLength, &glLength, reinterpret_cast<GLcharARB*>(log));
- log[glLength] = '\0';
- QString result(log);
- delete log;
- return result;
-}
-
-void GLProgram::bind()
-{
- GLSHADERS_ASSERT_OPENGL("GLProgram::bind", glUseProgramObjectARB, return)
-
- if (!failed())
- glUseProgramObjectARB(m_program);
-}
-
-void GLProgram::unbind()
-{
- GLSHADERS_ASSERT_OPENGL("GLProgram::bind", glUseProgramObjectARB, return)
-
- glUseProgramObjectARB(0);
-}
-
-bool GLProgram::hasParameter(const QString& name)
-{
- GLSHADERS_ASSERT_OPENGL("GLProgram::hasParameter", glGetUniformLocationARB, return false)
-
- if (!failed()) {
- QByteArray asciiName = name.toAscii();
- return -1 != glGetUniformLocationARB(m_program, reinterpret_cast<const GLcharARB*>(asciiName.data()));
- }
- return false;
-}
-
-void GLProgram::setInt(const QString& name, int value)
-{
- GLSHADERS_ASSERT_OPENGL("GLProgram::setInt", glGetUniformLocationARB && glUniform1iARB, return)
-
- if (!failed()) {
- QByteArray asciiName = name.toAscii();
- int loc = glGetUniformLocationARB(m_program, reinterpret_cast<const GLcharARB*>(asciiName.data()));
- glUniform1iARB(loc, value);
- }
-}
-
-void GLProgram::setFloat(const QString& name, float value)
-{
- GLSHADERS_ASSERT_OPENGL("GLProgram::setFloat", glGetUniformLocationARB && glUniform1fARB, return)
-
- if (!failed()) {
- QByteArray asciiName = name.toAscii();
- int loc = glGetUniformLocationARB(m_program, reinterpret_cast<const GLcharARB*>(asciiName.data()));
- glUniform1fARB(loc, value);
- }
-}
-
-void GLProgram::setColor(const QString& name, QRgb value)
-{
- GLSHADERS_ASSERT_OPENGL("GLProgram::setColor", glGetUniformLocationARB && glUniform4fARB, return)
-
- //qDebug() << "Setting color" << name;
- if (!failed()) {
- QByteArray asciiName = name.toAscii();
- int loc = glGetUniformLocationARB(m_program, reinterpret_cast<const GLcharARB*>(asciiName.data()));
- //qDebug() << "Location of" << name << "is" << loc;
- QColor color(value);
- glUniform4fARB(loc, color.redF(), color.greenF(), color.blueF(), color.alphaF());
- }
-}
-
-void GLProgram::setMatrix(const QString& name, const gfx::Matrix4x4f &mat)
-{
- GLSHADERS_ASSERT_OPENGL("GLProgram::setMatrix", glGetUniformLocationARB && glUniformMatrix4fvARB, return)
-
- if (!failed()) {
- QByteArray asciiName = name.toAscii();
- int loc = glGetUniformLocationARB(m_program, reinterpret_cast<const GLcharARB*>(asciiName.data()));
- //qDebug() << "Location of" << name << "is" << loc;
- glUniformMatrix4fvARB(loc, 1, GL_FALSE, mat.bits());
- }
-}
diff --git a/demos/boxes/glshaders.h b/demos/boxes/glshaders.h
deleted file mode 100644
index 7380c4d..0000000
--- a/demos/boxes/glshaders.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the demonstration applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain
-** additional rights. These rights are described in the Nokia Qt LGPL
-** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
-** package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef GLSHADERS_H
-#define GLSHADERS_H
-
-//#include <GL/glew.h>
-#include "glextensions.h"
-
-#include <QtGui>
-#include <QtOpenGL>
-
-#include "vector.h"
-
-class GLShader
-{
-public:
- friend class GLProgram;
- virtual ~GLShader();
- bool failed() const {return m_failed;}
- QString log();
-protected:
- GLShader(const char *data, int size, GLenum shaderType);
- GLShader(const QString& fileName, GLenum shaderType);
-
- GLhandleARB m_shader;
- bool m_compileError;
- bool m_failed;
-};
-
-class GLVertexShader : public GLShader
-{
-public:
- GLVertexShader(const char *data, int size);
- GLVertexShader(const QString& fileName);
-};
-
-class GLFragmentShader : public GLShader
-{
-public:
- GLFragmentShader(const char *data, int size);
- GLFragmentShader(const QString& fileName);
-};
-
-class GLProgram
-{
-public:
- GLProgram();
- ~GLProgram();
- void attach(const GLShader &shader);
- void detach(const GLShader &shader);
- void bind();
- void unbind();
- bool failed();
- QString log();
- bool hasParameter(const QString& name);
- // use program before setting values
- void setInt(const QString& name, int value);
- void setFloat(const QString& name, float value);
- void setColor(const QString& name, QRgb value);
- void setMatrix(const QString& name, const gfx::Matrix4x4f &mat);
- // TODO: add a bunch of set-functions for different types.
-private:
- GLhandleARB m_program;
- bool m_linked;
- bool m_linkError;
- bool m_failed;
-};
-
-#endif
diff --git a/demos/boxes/qtbox.cpp b/demos/boxes/qtbox.cpp
index 2255a38..015bc95 100644
--- a/demos/boxes/qtbox.cpp
+++ b/demos/boxes/qtbox.cpp
@@ -269,19 +269,20 @@ bool ItemBase::isInResizeArea(const QPointF &pos)
QtBox::QtBox(int size, int x, int y) : ItemBase(size, x, y), m_texture(0)
{
for (int i = 0; i < 8; ++i) {
- m_vertices[i][0] = (i & 1 ? 0.5f : -0.5f);
- m_vertices[i][1] = (i & 2 ? 0.5f : -0.5f);
- m_vertices[i][2] = (i & 4 ? 0.5f : -0.5f);
+ m_vertices[i].setX(i & 1 ? 0.5f : -0.5f);
+ m_vertices[i].setY(i & 2 ? 0.5f : -0.5f);
+ m_vertices[i].setZ(i & 4 ? 0.5f : -0.5f);
}
for (int i = 0; i < 4; ++i) {
- m_texCoords[i][0] = (i & 1 ? 1.0f : 0.0f);
- m_texCoords[i][1] = (i & 2 ? 1.0f : 0.0f);
- }
- memset(m_normals, 0, sizeof(m_normals));
- for (int i = 0; i < 3; ++i) {
- m_normals[2 * i + 0][i] = -1.0f;
- m_normals[2 * i + 1][i] = 1.0f;
+ m_texCoords[i].setX(i & 1 ? 1.0f : 0.0f);
+ m_texCoords[i].setY(i & 2 ? 1.0f : 0.0f);
}
+ m_normals[0] = QVector3D(-1.0f, 0.0f, 0.0f);
+ m_normals[1] = QVector3D(1.0f, 0.0f, 0.0f);
+ m_normals[2] = QVector3D(0.0f, -1.0f, 0.0f);
+ m_normals[3] = QVector3D(0.0f, 1.0f, 0.0f);
+ m_normals[4] = QVector3D(0.0f, 0.0f, -1.0f);
+ m_normals[5] = QVector3D(0.0f, 0.0f, 1.0f);
}
QtBox::~QtBox()
@@ -351,21 +352,21 @@ void QtBox::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWi
glColor4f(1.0f, 1.0f, 1.0f, 1.0);
glBegin(GL_TRIANGLE_STRIP);
- glNormal3fv(m_normals[2 * dir + 0].bits());
+ glNormal3fv(reinterpret_cast<float *>(&m_normals[2 * dir + 0]));
for (int i = 0; i < 2; ++i) {
for (int j = 0; j < 2; ++j) {
- glTexCoord2fv(m_texCoords[(j << 1) | i].bits());
- glVertex3fv(m_vertices[(i << ((dir + 2) % 3)) | (j << ((dir + 1) % 3))].bits());
+ glTexCoord2fv(reinterpret_cast<float *>(&m_texCoords[(j << 1) | i]));
+ glVertex3fv(reinterpret_cast<float *>(&m_vertices[(i << ((dir + 2) % 3)) | (j << ((dir + 1) % 3))]));
}
}
glEnd();
glBegin(GL_TRIANGLE_STRIP);
- glNormal3fv(m_normals[2 * dir + 1].bits());
+ glNormal3fv(reinterpret_cast<float *>(&m_normals[2 * dir + 1]));
for (int i = 0; i < 2; ++i) {
for (int j = 0; j < 2; ++j) {
- glTexCoord2fv(m_texCoords[(j << 1) | i].bits());
- glVertex3fv(m_vertices[(1 << dir) | (i << ((dir + 1) % 3)) | (j << ((dir + 2) % 3))].bits());
+ glTexCoord2fv(reinterpret_cast<float *>(&m_texCoords[(j << 1) | i]));
+ glVertex3fv(reinterpret_cast<float *>(&m_vertices[(1 << dir) | (i << ((dir + 1) % 3)) | (j << ((dir + 2) % 3))]));
}
}
glEnd();
diff --git a/demos/boxes/qtbox.h b/demos/boxes/qtbox.h
index 260e134..6f39b0d 100644
--- a/demos/boxes/qtbox.h
+++ b/demos/boxes/qtbox.h
@@ -44,7 +44,7 @@
#include <QtGui>
-#include "vector.h"
+#include <QtGui/qvector3d.h>
#include "glbuffers.h"
class ItemBase : public QObject, public QGraphicsItem
@@ -85,9 +85,9 @@ public:
protected:
virtual ItemBase *createNew(int size, int x, int y);
private:
- gfx::Vector3f m_vertices[8];
- gfx::Vector2f m_texCoords[4];
- gfx::Vector3f m_normals[6];
+ QVector3D m_vertices[8];
+ QVector3D m_texCoords[4];
+ QVector3D m_normals[6];
GLTexture *m_texture;
};
diff --git a/demos/boxes/roundedbox.cpp b/demos/boxes/roundedbox.cpp
index 16e9616..e01f6b8 100644
--- a/demos/boxes/roundedbox.cpp
+++ b/demos/boxes/roundedbox.cpp
@@ -46,9 +46,10 @@
//============================================================================//
VertexDescription P3T2N3Vertex::description[] = {
- {VertexDescription::Position, GL_FLOAT, SIZE_OF_MEMBER(P3T2N3Vertex, position) / sizeof(float), offsetof(P3T2N3Vertex, position), 0},
- {VertexDescription::TexCoord, GL_FLOAT, SIZE_OF_MEMBER(P3T2N3Vertex, texCoord) / sizeof(float), offsetof(P3T2N3Vertex, texCoord), 0},
- {VertexDescription::Normal, GL_FLOAT, SIZE_OF_MEMBER(P3T2N3Vertex, normal) / sizeof(float), offsetof(P3T2N3Vertex, normal), 0},
+ {VertexDescription::Position, GL_FLOAT, SIZE_OF_MEMBER(P3T2N3Vertex, position) / sizeof(float), 0, 0},
+ {VertexDescription::TexCoord, GL_FLOAT, SIZE_OF_MEMBER(P3T2N3Vertex, texCoord) / sizeof(float), sizeof(QVector3D), 0},
+ {VertexDescription::Normal, GL_FLOAT, SIZE_OF_MEMBER(P3T2N3Vertex, normal) / sizeof(float), sizeof(QVector3D) + sizeof(QVector2D), 0},
+
{VertexDescription::Null, 0, 0, 0, 0},
};
@@ -78,10 +79,9 @@ GLRoundedBox::GLRoundedBox(float r, float scale, int n)
}
for (int corner = 0; corner < 8; ++corner) {
- gfx::Vector3f centre;
- centre[0] = (corner & 1 ? 1.0f : -1.0f);
- centre[1] = (corner & 2 ? 1.0f : -1.0f);
- centre[2] = (corner & 4 ? 1.0f : -1.0f);
+ QVector3D centre(corner & 1 ? 1.0f : -1.0f,
+ corner & 2 ? 1.0f : -1.0f,
+ corner & 4 ? 1.0f : -1.0f);
int winding = (corner & 1) ^ ((corner >> 1) & 1) ^ (corner >> 2);
int offsX = ((corner ^ 1) - corner) * vertexCountPerCorner;
int offsY = ((corner ^ 2) - corner) * vertexCountPerCorner;
@@ -129,12 +129,13 @@ GLRoundedBox::GLRoundedBox(float r, float scale, int n)
}
for (int j = 0; j <= i; ++j) {
- gfx::Vector3f normal = gfx::Vector3f::vector(i - j, j, n + 1 - i).normalized();
- gfx::Vector3f pos = centre * (0.5f - r + r * normal);
+ QVector3D normal = QVector3D(i - j, j, n + 1 - i).normalized();
+ QVector3D offset(0.5f - r, 0.5f - r, 0.5f - r);
+ QVector3D pos = centre * (offset + r * normal);
vp[vidx].position = scale * pos;
vp[vidx].normal = centre * normal;
- vp[vidx].texCoord = gfx::Vector2f::vector(pos[0], pos[1]) + 0.5f;
+ vp[vidx].texCoord = QVector2D(pos.x() + 0.5f, pos.y() + 0.5f);
// Corner polygons
if (i < n + 1) {
diff --git a/demos/boxes/roundedbox.h b/demos/boxes/roundedbox.h
index 4f10bde..11069a1 100644
--- a/demos/boxes/roundedbox.h
+++ b/demos/boxes/roundedbox.h
@@ -49,14 +49,15 @@
#include <QtOpenGL>
#include "gltrianglemesh.h"
-#include "vector.h"
+#include <QtGui/qvector3d.h>
+#include <QtGui/qvector2d.h>
#include "glbuffers.h"
struct P3T2N3Vertex
{
- gfx::Vector3f position;
- gfx::Vector2f texCoord;
- gfx::Vector3f normal;
+ QVector3D position;
+ QVector2D texCoord;
+ QVector3D normal;
static VertexDescription description[];
};
diff --git a/demos/boxes/scene.cpp b/demos/boxes/scene.cpp
index 29aece9..016ba17 100644
--- a/demos/boxes/scene.cpp
+++ b/demos/boxes/scene.cpp
@@ -39,7 +39,10 @@
**
****************************************************************************/
+#include <QDebug>
#include "scene.h"
+#include <QtGui/qmatrix4x4.h>
+#include <QtGui/qvector3d.h>
#include "3rdparty/fbm.h"
@@ -484,9 +487,9 @@ Scene::Scene(int width, int height, int maxTextureSize)
{
setSceneRect(0, 0, width, height);
- m_trackBalls[0] = TrackBall(0.0005f, gfx::Vector3f::vector(0, 1, 0), TrackBall::Sphere);
- m_trackBalls[1] = TrackBall(0.0001f, gfx::Vector3f::vector(0, 0, 1), TrackBall::Sphere);
- m_trackBalls[2] = TrackBall(0.0f, gfx::Vector3f::vector(0, 1, 0), TrackBall::Plane);
+ m_trackBalls[0] = TrackBall(0.05f, QVector3D(0, 1, 0), TrackBall::Sphere);
+ m_trackBalls[1] = TrackBall(0.005f, QVector3D(0, 0, 1), TrackBall::Sphere);
+ m_trackBalls[2] = TrackBall(0.0f, QVector3D(0, 1, 0), TrackBall::Plane);
m_renderOptions = new RenderOptionsDialog;
m_renderOptions->move(20, 120);
@@ -531,11 +534,11 @@ Scene::~Scene()
if (texture) delete texture;
if (m_mainCubemap)
delete m_mainCubemap;
- foreach (GLProgram *program, m_programs)
+ foreach (QGLShaderProgram *program, m_programs)
if (program) delete program;
if (m_vertexShader)
delete m_vertexShader;
- foreach (GLFragmentShader *shader, m_fragmentShaders)
+ foreach (QGLShader *shader, m_fragmentShaders)
if (shader) delete shader;
foreach (GLRenderTargetCube *rt, m_cubemaps)
if (rt) delete rt;
@@ -549,16 +552,18 @@ void Scene::initGL()
{
m_box = new GLRoundedBox(0.25f, 1.0f, 10);
- m_vertexShader = new GLVertexShader(":/res/boxes/basic.vsh");
+ m_vertexShader = new QGLShader(":/res/boxes/basic.vsh", QGLShader::VertexShader);
QStringList list;
list << ":/res/boxes/cubemap_posx.jpg" << ":/res/boxes/cubemap_negx.jpg" << ":/res/boxes/cubemap_posy.jpg"
<< ":/res/boxes/cubemap_negy.jpg" << ":/res/boxes/cubemap_posz.jpg" << ":/res/boxes/cubemap_negz.jpg";
m_environment = new GLTextureCube(list, qMin(1024, m_maxTextureSize));
- m_environmentShader = new GLFragmentShader(environmentShaderText, strlen(environmentShaderText));
- m_environmentProgram = new GLProgram;
- m_environmentProgram->attach(*m_vertexShader);
- m_environmentProgram->attach(*m_environmentShader);
+ m_environmentShader = new QGLShader(QGLShader::FragmentShader);
+ m_environmentShader->compile(environmentShaderText);
+ m_environmentProgram = new QGLShaderProgram;
+ m_environmentProgram->addShader(m_vertexShader);
+ m_environmentProgram->addShader(m_environmentShader);
+ m_environmentProgram->link();
const int NOISE_SIZE = 128; // for a different size, B and BM in fbm.c must also be changed
m_noise = new GLTexture3D(NOISE_SIZE, NOISE_SIZE, NOISE_SIZE);
@@ -610,12 +615,12 @@ void Scene::initGL()
filter = QStringList("*.fsh");
files = QDir(":/res/boxes/").entryInfoList(filter, QDir::Files | QDir::Readable);
foreach (QFileInfo file, files) {
- GLProgram *program = new GLProgram;
- GLFragmentShader* shader = new GLFragmentShader(file.absoluteFilePath());
+ QGLShaderProgram *program = new QGLShaderProgram;
+ QGLShader* shader = new QGLShader(file.absoluteFilePath(), QGLShader::FragmentShader);
// The program does not take ownership over the shaders, so store them in a vector so they can be deleted afterwards.
- program->attach(*m_vertexShader);
- program->attach(*shader);
- if (program->failed()) {
+ program->addShader(m_vertexShader);
+ program->addShader(shader);
+ if (!program->link()) {
qWarning("Failed to compile and link shader program");
qWarning("Vertex shader log:");
qWarning() << m_vertexShader->log();
@@ -633,22 +638,22 @@ void Scene::initGL()
m_programs << program;
m_renderOptions->addShader(file.baseName());
- program->bind();
- m_cubemaps << (program->hasParameter("env") ? new GLRenderTargetCube(qMin(256, m_maxTextureSize)) : 0);
- program->unbind();
+ program->enable();
+ m_cubemaps << ((program->uniformLocation("env") != -1) ? new GLRenderTargetCube(qMin(256, m_maxTextureSize)) : 0);
+ program->disable();
}
if (m_programs.size() == 0)
- m_programs << new GLProgram;
+ m_programs << new QGLShaderProgram;
m_renderOptions->emitParameterChanged();
}
// If one of the boxes should not be rendered, set excludeBox to its index.
// If the main box should not be rendered, set excludeBox to -1.
-void Scene::renderBoxes(const gfx::Matrix4x4f &view, int excludeBox)
+void Scene::renderBoxes(const QMatrix4x4 &view, int excludeBox)
{
- gfx::Matrix4x4f invView = view.inverse();
+ QMatrix4x4 invView = view.inverted();
// If multi-texturing is supported, use three saplers.
if (glActiveTexture) {
@@ -664,26 +669,26 @@ void Scene::renderBoxes(const gfx::Matrix4x4f &view, int excludeBox)
glDisable(GL_LIGHTING);
glDisable(GL_CULL_FACE);
- gfx::Matrix4x4f viewRotation(view);
+ QMatrix4x4 viewRotation(view);
viewRotation(3, 0) = viewRotation(3, 1) = viewRotation(3, 2) = 0.0f;
viewRotation(0, 3) = viewRotation(1, 3) = viewRotation(2, 3) = 0.0f;
viewRotation(3, 3) = 1.0f;
- glLoadMatrixf(viewRotation.bits());
+ glLoadMatrixf(viewRotation.data());
glScalef(20.0f, 20.0f, 20.0f);
// Don't render the environment if the environment texture can't be set for the correct sampler.
if (glActiveTexture) {
m_environment->bind();
- m_environmentProgram->bind();
- m_environmentProgram->setInt("tex", 0);
- m_environmentProgram->setInt("env", 1);
- m_environmentProgram->setInt("noise", 2);
+ m_environmentProgram->enable();
+ m_environmentProgram->setUniformValue("tex", GLint(0));
+ m_environmentProgram->setUniformValue("env", GLint(1));
+ m_environmentProgram->setUniformValue("noise", GLint(2));
m_box->draw();
- m_environmentProgram->unbind();
+ m_environmentProgram->disable();
m_environment->unbind();
}
- glLoadMatrixf(view.bits());
+ glLoadMatrixf(view.data());
glEnable(GL_CULL_FACE);
glEnable(GL_LIGHTING);
@@ -693,9 +698,11 @@ void Scene::renderBoxes(const gfx::Matrix4x4f &view, int excludeBox)
continue;
glPushMatrix();
- gfx::Matrix4x4f m;
- m_trackBalls[1].rotation().matrix(m);
- glMultMatrixf(m.bits());
+ QMatrix4x4 m;
+ m.rotate(m_trackBalls[1].rotation());
+ m = m.transposed();
+
+ glMultMatrixf(m.data());
glRotatef(360.0f * i / m_programs.size(), 0.0f, 0.0f, 1.0f);
glTranslatef(2.0f, 0.0f, 0.0f);
@@ -707,14 +714,14 @@ void Scene::renderBoxes(const gfx::Matrix4x4f &view, int excludeBox)
else
m_environment->bind();
}
- m_programs[i]->bind();
- m_programs[i]->setInt("tex", 0);
- m_programs[i]->setInt("env", 1);
- m_programs[i]->setInt("noise", 2);
- m_programs[i]->setMatrix("view", view);
- m_programs[i]->setMatrix("invView", invView);
+ m_programs[i]->enable();
+ m_programs[i]->setUniformValue("tex", GLint(0));
+ m_programs[i]->setUniformValue("env", GLint(1));
+ m_programs[i]->setUniformValue("noise", GLint(2));
+ m_programs[i]->setUniformValue("view", view);
+ m_programs[i]->setUniformValue("invView", invView);
m_box->draw();
- m_programs[i]->unbind();
+ m_programs[i]->disable();
if (glActiveTexture) {
if (m_dynamicCubemap && m_cubemaps[i])
@@ -726,9 +733,10 @@ void Scene::renderBoxes(const gfx::Matrix4x4f &view, int excludeBox)
}
if (-1 != excludeBox) {
- gfx::Matrix4x4f m;
- m_trackBalls[0].rotation().matrix(m);
- glMultMatrixf(m.bits());
+ QMatrix4x4 m;
+ m.rotate(m_trackBalls[0].rotation());
+ m = m.transposed();
+ glMultMatrixf(m.data());
if (glActiveTexture) {
if (m_dynamicCubemap)
@@ -737,14 +745,14 @@ void Scene::renderBoxes(const gfx::Matrix4x4f &view, int excludeBox)
m_environment->bind();
}
- m_programs[m_currentShader]->bind();
- m_programs[m_currentShader]->setInt("tex", 0);
- m_programs[m_currentShader]->setInt("env", 1);
- m_programs[m_currentShader]->setInt("noise", 2);
- m_programs[m_currentShader]->setMatrix("view", view);
- m_programs[m_currentShader]->setMatrix("invView", invView);
+ m_programs[m_currentShader]->enable();
+ m_programs[m_currentShader]->setUniformValue("tex", GLint(0));
+ m_programs[m_currentShader]->setUniformValue("env", GLint(1));
+ m_programs[m_currentShader]->setUniformValue("noise", GLint(2));
+ m_programs[m_currentShader]->setUniformValue("view", view);
+ m_programs[m_currentShader]->setUniformValue("invView", invView);
m_box->draw();
- m_programs[m_currentShader]->unbind();
+ m_programs[m_currentShader]->disable();
if (glActiveTexture) {
if (m_dynamicCubemap)
@@ -829,31 +837,32 @@ void Scene::renderCubemaps()
// To speed things up, only update the cubemaps for the small cubes every N frames.
const int N = (m_updateAllCubemaps ? 1 : 3);
- gfx::Matrix4x4f mat;
+ QMatrix4x4 mat;
GLRenderTargetCube::getProjectionMatrix(mat, 0.1f, 100.0f);
glMatrixMode(GL_PROJECTION);
glPushMatrix();
- glLoadMatrixf(mat.bits());
+ glLoadMatrixf(mat.data());
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
- gfx::Vector3f center;
+ QVector3D center;
for (int i = m_frame % N; i < m_cubemaps.size(); i += N) {
if (0 == m_cubemaps[i])
continue;
float angle = 2.0f * PI * i / m_cubemaps.size();
- center = m_trackBalls[1].rotation().transform(gfx::Vector3f::vector(cos(angle), sin(angle), 0));
+
+ center = m_trackBalls[1].rotation().rotateVector(QVector3D(cos(angle), sin(angle), 0.0f));
for (int face = 0; face < 6; ++face) {
m_cubemaps[i]->begin(face);
GLRenderTargetCube::getViewMatrix(mat, face);
- gfx::Vector4f v = gfx::Vector4f::vector(-center[0], -center[1], -center[2], 1.0);
- mat[3] = v * mat;
+ QVector4D v = QVector4D(-center.x(), -center.y(), -center.z(), 1.0);
+ mat.setColumn(3, v * mat);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
renderBoxes(mat, i);
@@ -897,12 +906,9 @@ void Scene::drawBackground(QPainter *painter, const QRectF &)
glMatrixMode(GL_MODELVIEW);
- //gfx::Matrix4x4f view = gfx::Matrix4x4f::identity();
- //view(3, 2) -= 2.0f * exp(m_distExp / 1200.0f);
-
- gfx::Matrix4x4f view;
- m_trackBalls[2].rotation().matrix(view);
- view(3, 2) -= 2.0f * exp(m_distExp / 1200.0f);
+ QMatrix4x4 view;
+ view.rotate(m_trackBalls[2].rotation());
+ view(2, 3) -= 2.0f * exp(m_distExp / 1200.0f);
renderBoxes(view);
defaultStates();
@@ -936,10 +942,10 @@ void Scene::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
}
if (event->buttons() & Qt::MidButton) {
- m_trackBalls[2].move(pixelPosToViewPos(event->scenePos()), gfx::Quaternionf::identity());
+ m_trackBalls[2].move(pixelPosToViewPos(event->scenePos()), QQuaternion());
event->accept();
} else {
- m_trackBalls[2].release(pixelPosToViewPos(event->scenePos()), gfx::Quaternionf::identity());
+ m_trackBalls[2].release(pixelPosToViewPos(event->scenePos()), QQuaternion());
}
}
@@ -960,7 +966,7 @@ void Scene::mousePressEvent(QGraphicsSceneMouseEvent *event)
}
if (event->buttons() & Qt::MidButton) {
- m_trackBalls[2].push(pixelPosToViewPos(event->scenePos()), gfx::Quaternionf::identity());
+ m_trackBalls[2].push(pixelPosToViewPos(event->scenePos()), QQuaternion());
event->accept();
}
}
@@ -982,7 +988,7 @@ void Scene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
}
if (event->button() == Qt::MidButton) {
- m_trackBalls[2].release(pixelPosToViewPos(event->scenePos()), gfx::Quaternionf::identity());
+ m_trackBalls[2].release(pixelPosToViewPos(event->scenePos()), QQuaternion());
event->accept();
}
}
@@ -1021,20 +1027,20 @@ void Scene::toggleDynamicCubemap(int state)
void Scene::setColorParameter(const QString &name, QRgb color)
{
// set the color in all programs
- foreach (GLProgram *program, m_programs) {
- program->bind();
- program->setColor(name, color);
- program->unbind();
+ foreach (QGLShaderProgram *program, m_programs) {
+ program->enable();
+ program->setUniformValue(program->uniformLocation(name), QColor(color));
+ program->disable();
}
}
void Scene::setFloatParameter(const QString &name, float value)
{
// set the color in all programs
- foreach (GLProgram *program, m_programs) {
- program->bind();
- program->setFloat(name, value);
- program->unbind();
+ foreach (QGLShaderProgram *program, m_programs) {
+ program->enable();
+ program->setUniformValue(program->uniformLocation(name), value);
+ program->disable();
}
}
diff --git a/demos/boxes/scene.h b/demos/boxes/scene.h
index cc1dace..efe1e3f 100644
--- a/demos/boxes/scene.h
+++ b/demos/boxes/scene.h
@@ -50,14 +50,16 @@
#include "roundedbox.h"
#include "gltrianglemesh.h"
-#include "vector.h"
#include "trackball.h"
#include "glbuffers.h"
-#include "glshaders.h"
#include "qtbox.h"
#define PI 3.14159265358979
+QT_BEGIN_NAMESPACE
+class QMatrix4x4;
+QT_END_NAMESPACE
+
class ParameterEdit : public QWidget
{
public:
@@ -195,7 +197,7 @@ public slots:
void setFloatParameter(const QString &name, float value);
void newItem(ItemDialog::ItemType type);
protected:
- void renderBoxes(const gfx::Matrix4x4f &view, int excludeBox = -2);
+ void renderBoxes(const QMatrix4x4 &view, int excludeBox = -2);
void setStates();
void setLights();
void defaultStates();
@@ -231,13 +233,11 @@ private:
GLTexture3D *m_noise;
GLRenderTargetCube *m_mainCubemap;
QVector<GLRenderTargetCube *> m_cubemaps;
- QVector<GLProgram *> m_programs;
- GLVertexShader *m_vertexShader;
- QVector<GLFragmentShader *> m_fragmentShaders;
- GLFragmentShader *m_environmentShader;
- GLProgram *m_environmentProgram;
+ QVector<QGLShaderProgram *> m_programs;
+ QGLShader *m_vertexShader;
+ QVector<QGLShader *> m_fragmentShaders;
+ QGLShader *m_environmentShader;
+ QGLShaderProgram *m_environmentProgram;
};
-
-
#endif
diff --git a/demos/boxes/trackball.cpp b/demos/boxes/trackball.cpp
index 2dec679..9898441 100644
--- a/demos/boxes/trackball.cpp
+++ b/demos/boxes/trackball.cpp
@@ -40,6 +40,7 @@
****************************************************************************/
#include "trackball.h"
+#include "scene.h"
//============================================================================//
// TrackBall //
@@ -51,23 +52,23 @@ TrackBall::TrackBall(TrackMode mode)
, m_pressed(false)
, m_mode(mode)
{
- m_axis = gfx::Vector3f::vector(0, 1, 0);
- m_rotation = gfx::Quaternionf::quaternion(1.0f, 0.0f, 0.0f, 0.0f);
+ m_axis = QVector3D(0, 1, 0);
+ m_rotation = QQuaternion();
m_lastTime = QTime::currentTime();
}
-TrackBall::TrackBall(float angularVelocity, const gfx::Vector3f& axis, TrackMode mode)
+TrackBall::TrackBall(float angularVelocity, const QVector3D& axis, TrackMode mode)
: m_axis(axis)
, m_angularVelocity(angularVelocity)
, m_paused(false)
, m_pressed(false)
, m_mode(mode)
{
- m_rotation = gfx::Quaternionf::quaternion(1.0f, 0.0f, 0.0f, 0.0f);
+ m_rotation = QQuaternion();
m_lastTime = QTime::currentTime();
}
-void TrackBall::push(const QPointF& p, const gfx::Quaternionf &)
+void TrackBall::push(const QPointF& p, const QQuaternion &)
{
m_rotation = rotation();
m_pressed = true;
@@ -76,7 +77,7 @@ void TrackBall::push(const QPointF& p, const gfx::Quaternionf &)
m_angularVelocity = 0.0f;
}
-void TrackBall::move(const QPointF& p, const gfx::Quaternionf &transformation)
+void TrackBall::move(const QPointF& p, const QQuaternion &transformation)
{
if (!m_pressed)
return;
@@ -90,44 +91,45 @@ void TrackBall::move(const QPointF& p, const gfx::Quaternionf &transformation)
case Plane:
{
QLineF delta(m_lastPos, p);
- m_angularVelocity = delta.length() / msecs;
- m_axis = gfx::Vector3f::vector(delta.dy(), -delta.dx(), 0.0f).normalized();
- m_axis = transformation.transform(m_axis);
- m_rotation *= gfx::Quaternionf::rotation(delta.length(), m_axis);
+ m_angularVelocity = 180*delta.length() / (PI*msecs);
+ m_axis = QVector3D(delta.dy(), -delta.dx(), 0.0f).normalized();
+ m_axis = transformation.rotateVector(m_axis);
+ m_rotation *= QQuaternion::fromAxisAndAngle(m_axis, delta.length());
}
break;
case Sphere:
{
- gfx::Vector3f lastPos3D = gfx::Vector3f::vector(m_lastPos.x(), m_lastPos.y(), 0);
- float sqrZ = 1 - lastPos3D.sqrNorm();
+ QVector3D lastPos3D = QVector3D(m_lastPos.x(), m_lastPos.y(), 0.0f);
+ float sqrZ = 1 - QVector3D::dotProduct(lastPos3D, lastPos3D);
if (sqrZ > 0)
- lastPos3D[2] = sqrt(sqrZ);
+ lastPos3D.setZ(sqrt(sqrZ));
else
lastPos3D.normalize();
- gfx::Vector3f currentPos3D = gfx::Vector3f::vector(p.x(), p.y(), 0);
- sqrZ = 1 - currentPos3D.sqrNorm();
+ QVector3D currentPos3D = QVector3D(p.x(), p.y(), 0.0f);
+ sqrZ = 1 - QVector3D::dotProduct(currentPos3D, currentPos3D);
if (sqrZ > 0)
- currentPos3D[2] = sqrt(sqrZ);
+ currentPos3D.setZ(sqrt(sqrZ));
else
currentPos3D.normalize();
- m_axis = gfx::Vector3f::cross(currentPos3D, lastPos3D);
- float angle = asin(sqrt(m_axis.sqrNorm()));
+ m_axis = QVector3D::crossProduct(currentPos3D, lastPos3D);
+ float angle = asin(sqrt(QVector3D::dotProduct(m_axis, m_axis)));
- m_angularVelocity = angle / msecs;
+ m_angularVelocity = 180*angle / (PI*msecs);
m_axis.normalize();
- m_axis = transformation.transform(m_axis);
- m_rotation *= gfx::Quaternionf::rotation(angle, m_axis);
+ m_axis = transformation.rotateVector(m_axis);
+ m_rotation *= QQuaternion::fromAxisAndAngle(m_axis, angle);
}
break;
}
+
m_lastPos = p;
m_lastTime = currentTime;
}
-void TrackBall::release(const QPointF& p, const gfx::Quaternionf &transformation)
+void TrackBall::release(const QPointF& p, const QQuaternion &transformation)
{
// Calling move() caused the rotation to stop if the framerate was too low.
move(p, transformation);
@@ -146,13 +148,13 @@ void TrackBall::stop()
m_paused = true;
}
-gfx::Quaternionf TrackBall::rotation() const
+QQuaternion TrackBall::rotation() const
{
if (m_paused || m_pressed)
return m_rotation;
QTime currentTime = QTime::currentTime();
float angle = m_angularVelocity * m_lastTime.msecsTo(currentTime);
- return m_rotation * gfx::Quaternionf::rotation(angle, m_axis);
+ return m_rotation * QQuaternion::fromAxisAndAngle(m_axis, angle);
}
diff --git a/demos/boxes/trackball.h b/demos/boxes/trackball.h
index 817595f..323424b 100644
--- a/demos/boxes/trackball.h
+++ b/demos/boxes/trackball.h
@@ -44,7 +44,8 @@
#include <QtGui>
-#include "vector.h"
+#include <QtGui/qvector3d.h>
+#include <QtGui/qquaternion.h>
class TrackBall
{
@@ -55,17 +56,17 @@ public:
Sphere,
};
TrackBall(TrackMode mode = Sphere);
- TrackBall(float angularVelocity, const gfx::Vector3f& axis, TrackMode mode = Sphere);
+ TrackBall(float angularVelocity, const QVector3D& axis, TrackMode mode = Sphere);
// coordinates in [-1,1]x[-1,1]
- void push(const QPointF& p, const gfx::Quaternionf &transformation);
- void move(const QPointF& p, const gfx::Quaternionf &transformation);
- void release(const QPointF& p, const gfx::Quaternionf &transformation);
+ void push(const QPointF& p, const QQuaternion &transformation);
+ void move(const QPointF& p, const QQuaternion &transformation);
+ void release(const QPointF& p, const QQuaternion &transformation);
void start(); // starts clock
void stop(); // stops clock
- gfx::Quaternionf rotation() const;
+ QQuaternion rotation() const;
private:
- gfx::Quaternionf m_rotation;
- gfx::Vector3f m_axis;
+ QQuaternion m_rotation;
+ QVector3D m_axis;
float m_angularVelocity;
QPointF m_lastPos;
diff --git a/demos/boxes/vector.h b/demos/boxes/vector.h
deleted file mode 100644
index 0923b63..0000000
--- a/demos/boxes/vector.h
+++ /dev/null
@@ -1,602 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the demonstration applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain
-** additional rights. These rights are described in the Nokia Qt LGPL
-** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
-** package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef VECTOR_H
-#define VECTOR_H
-
-#include <cassert>
-#include <cmath>
-#include <iostream>
-
-namespace gfx
-{
-
-template<class T, int n>
-struct Vector
-{
- // Keep the Vector struct a plain old data (POD) struct by avoiding constructors
-
- static Vector vector(T x)
- {
- Vector result;
- for (int i = 0; i < n; ++i)
- result.v[i] = x;
- return result;
- }
-
- // Use only for 2D vectors
- static Vector vector(T x, T y)
- {
- assert(n == 2);
- Vector result;
- result.v[0] = x;
- result.v[1] = y;
- return result;
- }
-
- // Use only for 3D vectors
- static Vector vector(T x, T y, T z)
- {
- assert(n == 3);
- Vector result;
- result.v[0] = x;
- result.v[1] = y;
- result.v[2] = z;
- return result;
- }
-
- // Use only for 4D vectors
- static Vector vector(T x, T y, T z, T w)
- {
- assert(n == 4);
- Vector result;
- result.v[0] = x;
- result.v[1] = y;
- result.v[2] = z;
- result.v[3] = w;
- return result;
- }
-
- // Pass 'n' arguments to this function.
- static Vector vector(T *v)
- {
- Vector result;
- for (int i = 0; i < n; ++i)
- result.v[i] = v[i];
- return result;
- }
-
- T &operator [] (int i) {return v[i];}
- T operator [] (int i) const {return v[i];}
-
-#define VECTOR_BINARY_OP(op, arg, rhs) \
- Vector operator op (arg) const \
- { \
- Vector result; \
- for (int i = 0; i < n; ++i) \
- result.v[i] = v[i] op rhs; \
- return result; \
- }
-
- VECTOR_BINARY_OP(+, const Vector &u, u.v[i])
- VECTOR_BINARY_OP(-, const Vector &u, u.v[i])
- VECTOR_BINARY_OP(*, const Vector &u, u.v[i])
- VECTOR_BINARY_OP(/, const Vector &u, u.v[i])
- VECTOR_BINARY_OP(+, T s, s)
- VECTOR_BINARY_OP(-, T s, s)
- VECTOR_BINARY_OP(*, T s, s)
- VECTOR_BINARY_OP(/, T s, s)
-#undef VECTOR_BINARY_OP
-
- Vector operator - () const
- {
- Vector result;
- for (int i = 0; i < n; ++i)
- result.v[i] = -v[i];
- return result;
- }
-
-#define VECTOR_ASSIGN_OP(op, arg, rhs) \
- Vector &operator op (arg) \
- { \
- for (int i = 0; i < n; ++i) \
- v[i] op rhs; \
- return *this; \
- }
-
- VECTOR_ASSIGN_OP(+=, const Vector &u, u.v[i])
- VECTOR_ASSIGN_OP(-=, const Vector &u, u.v[i])
- VECTOR_ASSIGN_OP(=, T s, s)
- VECTOR_ASSIGN_OP(*=, T s, s)
- VECTOR_ASSIGN_OP(/=, T s, s)
-#undef VECTOR_ASSIGN_OP
-
- static T dot(const Vector &u, const Vector &v)
- {
- T sum(0);
- for (int i = 0; i < n; ++i)
- sum += u.v[i] * v.v[i];
- return sum;
- }
-
- static Vector cross(const Vector &u, const Vector &v)
- {
- assert(n == 3);
- return vector(u.v[1] * v.v[2] - u.v[2] * v.v[1],
- u.v[2] * v.v[0] - u.v[0] * v.v[2],
- u.v[0] * v.v[1] - u.v[1] * v.v[0]);
- }
-
- T sqrNorm() const
- {
- return dot(*this, *this);
- }
-
- // requires floating point type T
- void normalize()
- {
- T s = sqrNorm();
- if (s != 0)
- *this /= sqrt(s);
- }
-
- // requires floating point type T
- Vector normalized() const
- {
- T s = sqrNorm();
- if (s == 0)
- return *this;
- return *this / sqrt(s);
- }
-
- T *bits() {return v;}
- const T *bits() const {return v;}
-
- T v[n];
-};
-
-#define SCALAR_VECTOR_BINARY_OP(op) \
-template<class T, int n> \
-Vector<T, n> operator op (T s, const Vector<T, n>& u) \
-{ \
- Vector<T, n> result; \
- for (int i = 0; i < n; ++i) \
- result[i] = s op u[i]; \
- return result; \
-}
-
-SCALAR_VECTOR_BINARY_OP(+)
-SCALAR_VECTOR_BINARY_OP(-)
-SCALAR_VECTOR_BINARY_OP(*)
-SCALAR_VECTOR_BINARY_OP(/)
-#undef SCALAR_VECTOR_BINARY_OP
-
-template<class T, int n>
-std::ostream &operator << (std::ostream &os, const Vector<T, n> &v)
-{
- assert(n > 0);
- os << "[" << v[0];
- for (int i = 1; i < n; ++i)
- os << ", " << v[i];
- os << "]";
- return os;
-}
-
-typedef Vector<float, 2> Vector2f;
-typedef Vector<float, 3> Vector3f;
-typedef Vector<float, 4> Vector4f;
-
-template<class T, int rows, int cols>
-struct Matrix
-{
- // Keep the Matrix struct a plain old data (POD) struct by avoiding constructors
-
- static Matrix matrix(T x)
- {
- Matrix result;
- for (int i = 0; i < rows; ++i) {
- for (int j = 0; j < cols; ++j)
- result.v[i][j] = x;
- }
- return result;
- }
-
- static Matrix matrix(T *m)
- {
- Matrix result;
- for (int i = 0; i < rows; ++i) {
- for (int j = 0; j < cols; ++j) {
- result.v[i][j] = *m;
- ++m;
- }
- }
- return result;
- }
-
- T &operator () (int i, int j) {return v[i][j];}
- T operator () (int i, int j) const {return v[i][j];}
- Vector<T, cols> &operator [] (int i) {return v[i];}
- const Vector<T, cols> &operator [] (int i) const {return v[i];}
-
- // TODO: operators, methods
-
- Vector<T, rows> operator * (const Vector<T, cols> &u) const
- {
- Vector<T, rows> result;
- for (int i = 0; i < rows; ++i)
- result[i] = Vector<T, cols>::dot(v[i], u);
- return result;
- }
-
- template<int k>
- Matrix<T, rows, k> operator * (const Matrix<T, cols, k> &m)
- {
- Matrix<T, rows, k> result;
- for (int i = 0; i < rows; ++i)
- result[i] = v[i] * m;
- return result;
- }
-
- T* bits() {return reinterpret_cast<T *>(this);}
- const T* bits() const {return reinterpret_cast<const T *>(this);}
-
- // Simple Gauss elimination.
- // TODO: Optimize and improve stability.
- Matrix inverse(bool *ok = 0) const
- {
- assert(rows == cols);
- Matrix rhs = identity();
- Matrix lhs(*this);
- T temp;
- // Down
- for (int i = 0; i < rows; ++i) {
- // Pivoting
- int pivot = i;
- for (int j = i; j < rows; ++j) {
- if (qAbs(lhs(j, i)) > lhs(pivot, i))
- pivot = j;
- }
- // TODO: fuzzy compare.
- if (lhs(pivot, i) == T(0)) {
- if (ok)
- *ok = false;
- return rhs;
- }
- if (pivot != i) {
- for (int j = i; j < cols; ++j) {
- temp = lhs(pivot, j);
- lhs(pivot, j) = lhs(i, j);
- lhs(i, j) = temp;
- }
- for (int j = 0; j < cols; ++j) {
- temp = rhs(pivot, j);
- rhs(pivot, j) = rhs(i, j);
- rhs(i, j) = temp;
- }
- }
-
- // Normalize i-th row
- rhs[i] /= lhs(i, i);
- for (int j = cols - 1; j > i; --j)
- lhs(i, j) /= lhs(i, i);
-
- // Eliminate non-zeros in i-th column below the i-th row.
- for (int j = i + 1; j < rows; ++j) {
- rhs[j] -= lhs(j, i) * rhs[i];
- for (int k = i + 1; k < cols; ++k)
- lhs(j, k) -= lhs(j, i) * lhs(i, k);
- }
- }
- // Up
- for (int i = rows - 1; i > 0; --i) {
- for (int j = i - 1; j >= 0; --j)
- rhs[j] -= lhs(j, i) * rhs[i];
- }
- if (ok)
- *ok = true;
- return rhs;
- }
-
- Matrix<T, cols, rows> transpose() const
- {
- Matrix<T, cols, rows> result;
- for (int i = 0; i < rows; ++i) {
- for (int j = 0; j < cols; ++j)
- result.v[j][i] = v[i][j];
- }
- return result;
- }
-
- static Matrix identity()
- {
- Matrix result = matrix(T(0));
- for (int i = 0; i < rows && i < cols; ++i)
- result.v[i][i] = T(1);
- return result;
- }
-
- Vector<T, cols> v[rows];
-};
-
-template<class T, int rows, int cols>
-Vector<T, cols> operator * (const Vector<T, rows> &u, const Matrix<T, rows, cols> &m)
-{
- Vector<T, cols> result = Vector<T, cols>::vector(T(0));
- for (int i = 0; i < rows; ++i)
- result += m[i] * u[i];
- return result;
-}
-
-template<class T, int rows, int cols>
-std::ostream &operator << (std::ostream &os, const Matrix<T, rows, cols> &m)
-{
- assert(rows > 0);
- os << "[" << m[0];
- for (int i = 1; i < rows; ++i)
- os << ", " << m[i];
- os << "]";
- return os;
-}
-
-
-typedef Matrix<float, 2, 2> Matrix2x2f;
-typedef Matrix<float, 3, 3> Matrix3x3f;
-typedef Matrix<float, 4, 4> Matrix4x4f;
-
-template<class T>
-struct Quaternion
-{
- // Keep the Quaternion struct a plain old data (POD) struct by avoiding constructors
-
- static Quaternion quaternion(T s, T x, T y, T z)
- {
- Quaternion result;
- result.scalar = s;
- result.vector[0] = x;
- result.vector[1] = y;
- result.vector[2] = z;
- return result;
- }
-
- static Quaternion quaternion(T s, const Vector<T, 3> &v)
- {
- Quaternion result;
- result.scalar = s;
- result.vector = v;
- return result;
- }
-
- static Quaternion identity()
- {
- return quaternion(T(1), T(0), T(0), T(0));
- }
-
- // assumes that all the elements are packed tightly
- T& operator [] (int i) {return reinterpret_cast<T *>(this)[i];}
- T operator [] (int i) const {return reinterpret_cast<const T *>(this)[i];}
-
-#define QUATERNION_BINARY_OP(op, arg, rhs) \
- Quaternion operator op (arg) const \
- { \
- Quaternion result; \
- for (int i = 0; i < 4; ++i) \
- result[i] = (*this)[i] op rhs; \
- return result; \
- }
-
- QUATERNION_BINARY_OP(+, const Quaternion &q, q[i])
- QUATERNION_BINARY_OP(-, const Quaternion &q, q[i])
- QUATERNION_BINARY_OP(*, T s, s)
- QUATERNION_BINARY_OP(/, T s, s)
-#undef QUATERNION_BINARY_OP
-
- Quaternion operator - () const
- {
- return Quaternion(-scalar, -vector);
- }
-
- Quaternion operator * (const Quaternion &q) const
- {
- Quaternion result;
- result.scalar = scalar * q.scalar - Vector<T, 3>::dot(vector, q.vector);
- result.vector = scalar * q.vector + vector * q.scalar + Vector<T, 3>::cross(vector, q.vector);
- return result;
- }
-
- Quaternion operator * (const Vector<T, 3> &v) const
- {
- Quaternion result;
- result.scalar = -Vector<T, 3>::dot(vector, v);
- result.vector = scalar * v + Vector<T, 3>::cross(vector, v);
- return result;
- }
-
- friend Quaternion operator * (const Vector<T, 3> &v, const Quaternion &q)
- {
- Quaternion result;
- result.scalar = -Vector<T, 3>::dot(v, q.vector);
- result.vector = v * q.scalar + Vector<T, 3>::cross(v, q.vector);
- return result;
- }
-
-#define QUATERNION_ASSIGN_OP(op, arg, rhs) \
- Quaternion &operator op (arg) \
- { \
- for (int i = 0; i < 4; ++i) \
- (*this)[i] op rhs; \
- return *this; \
- }
-
- QUATERNION_ASSIGN_OP(+=, const Quaternion &q, q[i])
- QUATERNION_ASSIGN_OP(-=, const Quaternion &q, q[i])
- QUATERNION_ASSIGN_OP(=, T s, s)
- QUATERNION_ASSIGN_OP(*=, T s, s)
- QUATERNION_ASSIGN_OP(/=, T s, s)
-#undef QUATERNION_ASSIGN_OP
-
- Quaternion& operator *= (const Quaternion &q)
- {
- Quaternion result;
- result.scalar = scalar * q.scalar - Vector<T, 3>::dot(vector, q.vector);
- result.vector = scalar * q.vector + vector * q.scalar + Vector<T, 3>::cross(vector, q.vector);
- return (*this = result);
- }
-
- Quaternion& operator *= (const Vector<T, 3> &v)
- {
- Quaternion result;
- result.scalar = -Vector<T, 3>::dot(vector, v);
- result.vector = scalar * v + Vector<T, 3>::cross(vector, v);
- return (*this = result);
- }
-
- Quaternion conjugate() const
- {
- return quaternion(scalar, -vector);
- }
-
- T sqrNorm() const
- {
- return scalar * scalar + vector.sqrNorm();
- }
-
- Quaternion inverse() const
- {
- return conjugate() / sqrNorm();
- }
-
- // requires floating point type T
- Quaternion normalized() const
- {
- T s = sqrNorm();
- if (s == 0)
- return *this;
- return *this / sqrt(s);
- }
-
- void matrix(Matrix<T, 3, 3>& m) const
- {
- T bb = vector[0] * vector[0];
- T cc = vector[1] * vector[1];
- T dd = vector[2] * vector[2];
- T diag = scalar * scalar - bb - cc - dd;
- T ab = scalar * vector[0];
- T ac = scalar * vector[1];
- T ad = scalar * vector[2];
- T bc = vector[0] * vector[1];
- T cd = vector[1] * vector[2];
- T bd = vector[2] * vector[0];
- m(0, 0) = diag + 2 * bb;
- m(0, 1) = 2 * (bc - ad);
- m(0, 2) = 2 * (ac + bd);
- m(1, 0) = 2 * (ad + bc);
- m(1, 1) = diag + 2 * cc;
- m(1, 2) = 2 * (cd - ab);
- m(2, 0) = 2 * (bd - ac);
- m(2, 1) = 2 * (ab + cd);
- m(2, 2) = diag + 2 * dd;
- }
-
- void matrix(Matrix<T, 4, 4>& m) const
- {
- T bb = vector[0] * vector[0];
- T cc = vector[1] * vector[1];
- T dd = vector[2] * vector[2];
- T diag = scalar * scalar - bb - cc - dd;
- T ab = scalar * vector[0];
- T ac = scalar * vector[1];
- T ad = scalar * vector[2];
- T bc = vector[0] * vector[1];
- T cd = vector[1] * vector[2];
- T bd = vector[2] * vector[0];
- m(0, 0) = diag + 2 * bb;
- m(0, 1) = 2 * (bc - ad);
- m(0, 2) = 2 * (ac + bd);
- m(0, 3) = 0;
- m(1, 0) = 2 * (ad + bc);
- m(1, 1) = diag + 2 * cc;
- m(1, 2) = 2 * (cd - ab);
- m(1, 3) = 0;
- m(2, 0) = 2 * (bd - ac);
- m(2, 1) = 2 * (ab + cd);
- m(2, 2) = diag + 2 * dd;
- m(2, 3) = 0;
- m(3, 0) = 0;
- m(3, 1) = 0;
- m(3, 2) = 0;
- m(3, 3) = 1;
- }
-
- // assumes that 'this' is normalized
- Vector<T, 3> transform(const Vector<T, 3> &v) const
- {
- Matrix<T, 3, 3> m;
- matrix(m);
- return v * m;
- }
-
- // assumes that all the elements are packed tightly
- T* bits() {return reinterpret_cast<T *>(this);}
- const T* bits() const {return reinterpret_cast<const T *>(this);}
-
- // requires floating point type T
- static Quaternion rotation(T angle, const Vector<T, 3> &unitAxis)
- {
- T s = sin(angle / 2);
- T c = cos(angle / 2);
- return quaternion(c, unitAxis * s);
- }
-
- T scalar;
- Vector<T, 3> vector;
-};
-
-template<class T>
-Quaternion<T> operator * (T s, const Quaternion<T>& q)
-{
- return Quaternion<T>::quaternion(s * q.scalar, s * q.vector);
-}
-
-typedef Quaternion<float> Quaternionf;
-
-} // end namespace gfx
-
-#endif
diff --git a/demos/browser/browser.pro b/demos/browser/browser.pro
index 13e8a1d..f54afe4 100644
--- a/demos/browser/browser.pro
+++ b/demos/browser/browser.pro
@@ -3,7 +3,7 @@ TARGET = browser
QT += webkit network
CONFIG += qt warn_on
-contains(QT_BUILD_PARTS, tools): CONFIG += uitools
+contains(QT_BUILD_PARTS, tools):!symbian: CONFIG += uitools
else: DEFINES += QT_NO_UITOOLS
FORMS += \
@@ -89,3 +89,8 @@ target.path = $$[QT_INSTALL_DEMOS]/browser
sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.plist *.icns *.ico *.rc *.pro *.html *.doc images htmls data
sources.path = $$[QT_INSTALL_DEMOS]/browser
INSTALLS += target sources
+
+symbian {
+ include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
+ TARGET.UID3 = 0xA000CF70
+}
diff --git a/demos/browser/browsermainwindow.cpp b/demos/browser/browsermainwindow.cpp
index 8f68c07..2489467 100644
--- a/demos/browser/browsermainwindow.cpp
+++ b/demos/browser/browsermainwindow.cpp
@@ -81,6 +81,7 @@ BrowserMainWindow::BrowserMainWindow(QWidget *parent, Qt::WindowFlags flags)
, m_stop(0)
, m_reload(0)
{
+ setToolButtonStyle(Qt::ToolButtonFollowStyle);
setAttribute(Qt::WA_DeleteOnClose, true);
statusBar()->setSizeGripEnabled(true);
setupMenu();
@@ -575,7 +576,7 @@ QUrl BrowserMainWindow::guessUrlFromString(const QString &string)
int dotIndex = urlStr.indexOf(QLatin1Char('.'));
if (dotIndex != -1) {
QString prefix = urlStr.left(dotIndex).toLower();
- QByteArray schema = (prefix == QLatin1String("ftp")) ? prefix.toLatin1() : "http";
+ QByteArray schema = (prefix == QLatin1String("ftp")) ? prefix.toLatin1() : QByteArray("http");
QUrl url =
QUrl::fromEncoded(schema + "://" + urlStr.toUtf8(), QUrl::TolerantMode);
if (url.isValid())
diff --git a/demos/browser/data/defaultbookmarks.xbel b/demos/browser/data/defaultbookmarks.xbel
index 1d20ac0..dce5297 100644
--- a/demos/browser/data/defaultbookmarks.xbel
+++ b/demos/browser/data/defaultbookmarks.xbel
@@ -30,6 +30,9 @@
<bookmark href="http://xkcd.com/">
<title>xkcd</title>
</bookmark>
+ <bookmark href="http://twitter.com/qtbynokia">
+ <title>Twitter</title>
+ </bookmark>
</folder>
<folder folded="yes">
<title>Bookmarks Menu</title>
diff --git a/demos/browser/networkaccessmanager.cpp b/demos/browser/networkaccessmanager.cpp
index c420e5b..6f53091 100644
--- a/demos/browser/networkaccessmanager.cpp
+++ b/demos/browser/networkaccessmanager.cpp
@@ -57,16 +57,21 @@
#include <QtNetwork/QAuthenticator>
#include <QtNetwork/QNetworkDiskCache>
#include <QtNetwork/QNetworkProxy>
+#include <QtNetwork/QNetworkRequest>
#include <QtNetwork/QNetworkReply>
#include <QtNetwork/QSslError>
NetworkAccessManager::NetworkAccessManager(QObject *parent)
- : QNetworkAccessManager(parent)
+ : QNetworkAccessManager(parent),
+ requestFinishedCount(0), requestFinishedFromCacheCount(0), requestFinishedPipelinedCount(0),
+ requestFinishedSecureCount(0)
{
connect(this, SIGNAL(authenticationRequired(QNetworkReply*, QAuthenticator*)),
SLOT(authenticationRequired(QNetworkReply*,QAuthenticator*)));
connect(this, SIGNAL(proxyAuthenticationRequired(const QNetworkProxy&, QAuthenticator*)),
SLOT(proxyAuthenticationRequired(const QNetworkProxy&, QAuthenticator*)));
+ connect(this, SIGNAL(finished(QNetworkReply *)),
+ SLOT(requestFinished(QNetworkReply *)));
#ifndef QT_NO_OPENSSL
connect(this, SIGNAL(sslErrors(QNetworkReply*, const QList<QSslError>&)),
SLOT(sslErrors(QNetworkReply*, const QList<QSslError>&)));
@@ -79,6 +84,38 @@ NetworkAccessManager::NetworkAccessManager(QObject *parent)
setCache(diskCache);
}
+QNetworkReply* NetworkAccessManager::createRequest(Operation op, const QNetworkRequest & req, QIODevice * outgoingData)
+{
+ QNetworkRequest request = req; // copy so we can modify
+ // this is a temporary hack until we properly use the pipelining flags from QtWebkit
+ // pipeline everything! :)
+ request.setAttribute(QNetworkRequest::HttpPipeliningAllowedAttribute, true);
+ return QNetworkAccessManager::createRequest(op, request, outgoingData);
+}
+
+void NetworkAccessManager::requestFinished(QNetworkReply *reply)
+{
+ requestFinishedCount++;
+
+ if (reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool() == true)
+ requestFinishedFromCacheCount++;
+
+ if (reply->attribute(QNetworkRequest::HttpPipeliningWasUsedAttribute).toBool() == true)
+ requestFinishedPipelinedCount++;
+
+ if (reply->attribute(QNetworkRequest::ConnectionEncryptedAttribute).toBool() == true)
+ requestFinishedSecureCount++;
+
+ if (requestFinishedCount % 10)
+ return;
+
+ double pctCached = (double(requestFinishedFromCacheCount) * 100.0/ double(requestFinishedCount));
+ double pctPipelined = (double(requestFinishedPipelinedCount) * 100.0/ double(requestFinishedCount));
+ double pctSecure = (double(requestFinishedSecureCount) * 100.0/ double(requestFinishedCount));
+ qDebug("STATS [%lli requests total] [%3.2f%% from cache] [%3.2f%% pipelined] [%3.2f%% SSL/TLS]", requestFinishedCount, pctCached, pctPipelined, pctSecure);
+
+}
+
void NetworkAccessManager::loadSettings()
{
QSettings settings;
diff --git a/demos/browser/networkaccessmanager.h b/demos/browser/networkaccessmanager.h
index 58757f3..636aa22 100644
--- a/demos/browser/networkaccessmanager.h
+++ b/demos/browser/networkaccessmanager.h
@@ -43,6 +43,7 @@
#define NETWORKACCESSMANAGER_H
#include <QtNetwork/QNetworkAccessManager>
+#include <QtNetwork/QNetworkRequest>
class NetworkAccessManager : public QNetworkAccessManager
{
@@ -51,11 +52,18 @@ class NetworkAccessManager : public QNetworkAccessManager
public:
NetworkAccessManager(QObject *parent = 0);
+ virtual QNetworkReply* createRequest ( Operation op, const QNetworkRequest & req, QIODevice * outgoingData = 0 );
+
private:
QList<QString> sslTrustedHostList;
+ qint64 requestFinishedCount;
+ qint64 requestFinishedFromCacheCount;
+ qint64 requestFinishedPipelinedCount;
+ qint64 requestFinishedSecureCount;
public slots:
void loadSettings();
+ void requestFinished(QNetworkReply *reply);
private slots:
void authenticationRequired(QNetworkReply *reply, QAuthenticator *auth);
diff --git a/demos/browser/searchlineedit.cpp b/demos/browser/searchlineedit.cpp
index f7cb878..9662590 100644
--- a/demos/browser/searchlineedit.cpp
+++ b/demos/browser/searchlineedit.cpp
@@ -50,7 +50,9 @@
ClearButton::ClearButton(QWidget *parent)
: QAbstractButton(parent)
{
+#ifndef QT_NO_CURSOR
setCursor(Qt::ArrowCursor);
+#endif // QT_NO_CURSOR
setToolTip(tr("Clear"));
setVisible(false);
setFocusPolicy(Qt::NoFocus);
@@ -103,7 +105,9 @@ SearchButton::SearchButton(QWidget *parent)
m_menu(0)
{
setObjectName(QLatin1String("SearchButton"));
+#ifndef QT_NO_CURSOR
setCursor(Qt::ArrowCursor);
+#endif //QT_NO_CURSOR
setFocusPolicy(Qt::NoFocus);
}
diff --git a/demos/browser/webview.cpp b/demos/browser/webview.cpp
index 32299bc..7b5a42a 100644
--- a/demos/browser/webview.cpp
+++ b/demos/browser/webview.cpp
@@ -54,7 +54,9 @@
#include <QtWebKit/QWebHitTestResult>
+#ifndef QT_NO_UITOOLS
#include <QtUiTools/QUiLoader>
+#endif //QT_NO_UITOOLS
#include <QtCore/QDebug>
#include <QtCore/QBuffer>
diff --git a/demos/browser/xbel.cpp b/demos/browser/xbel.cpp
index 2449d3c..06ceda3 100644
--- a/demos/browser/xbel.cpp
+++ b/demos/browser/xbel.cpp
@@ -133,16 +133,13 @@ BookmarkNode *XbelReader::read(QIODevice *device)
{
BookmarkNode *root = new BookmarkNode(BookmarkNode::Root);
setDevice(device);
- while (!atEnd()) {
- readNext();
- if (isStartElement()) {
- QString version = attributes().value(QLatin1String("version")).toString();
- if (name() == QLatin1String("xbel")
- && (version.isEmpty() || version == QLatin1String("1.0"))) {
- readXBEL(root);
- } else {
- raiseError(QObject::tr("The file is not an XBEL version 1.0 file."));
- }
+ if (readNextStartElement()) {
+ QString version = attributes().value(QLatin1String("version")).toString();
+ if (name() == QLatin1String("xbel")
+ && (version.isEmpty() || version == QLatin1String("1.0"))) {
+ readXBEL(root);
+ } else {
+ raiseError(QObject::tr("The file is not an XBEL version 1.0 file."));
}
}
return root;
@@ -152,21 +149,15 @@ void XbelReader::readXBEL(BookmarkNode *parent)
{
Q_ASSERT(isStartElement() && name() == QLatin1String("xbel"));
- while (!atEnd()) {
- readNext();
- if (isEndElement())
- break;
-
- if (isStartElement()) {
- if (name() == QLatin1String("folder"))
- readFolder(parent);
- else if (name() == QLatin1String("bookmark"))
- readBookmarkNode(parent);
- else if (name() == QLatin1String("separator"))
- readSeparator(parent);
- else
- skipUnknownElement();
- }
+ while (readNextStartElement()) {
+ if (name() == QLatin1String("folder"))
+ readFolder(parent);
+ else if (name() == QLatin1String("bookmark"))
+ readBookmarkNode(parent);
+ else if (name() == QLatin1String("separator"))
+ readSeparator(parent);
+ else
+ skipCurrentElement();
}
}
@@ -177,26 +168,19 @@ void XbelReader::readFolder(BookmarkNode *parent)
BookmarkNode *folder = new BookmarkNode(BookmarkNode::Folder, parent);
folder->expanded = (attributes().value(QLatin1String("folded")) == QLatin1String("no"));
- while (!atEnd()) {
- readNext();
-
- if (isEndElement())
- break;
-
- if (isStartElement()) {
- if (name() == QLatin1String("title"))
- readTitle(folder);
- else if (name() == QLatin1String("desc"))
- readDescription(folder);
- else if (name() == QLatin1String("folder"))
- readFolder(folder);
- else if (name() == QLatin1String("bookmark"))
- readBookmarkNode(folder);
- else if (name() == QLatin1String("separator"))
- readSeparator(folder);
- else
- skipUnknownElement();
- }
+ while (readNextStartElement()) {
+ if (name() == QLatin1String("title"))
+ readTitle(folder);
+ else if (name() == QLatin1String("desc"))
+ readDescription(folder);
+ else if (name() == QLatin1String("folder"))
+ readFolder(folder);
+ else if (name() == QLatin1String("bookmark"))
+ readBookmarkNode(folder);
+ else if (name() == QLatin1String("separator"))
+ readSeparator(folder);
+ else
+ skipCurrentElement();
}
}
@@ -224,39 +208,18 @@ void XbelReader::readBookmarkNode(BookmarkNode *parent)
Q_ASSERT(isStartElement() && name() == QLatin1String("bookmark"));
BookmarkNode *bookmark = new BookmarkNode(BookmarkNode::Bookmark, parent);
bookmark->url = attributes().value(QLatin1String("href")).toString();
- while (!atEnd()) {
- readNext();
- if (isEndElement())
- break;
-
- if (isStartElement()) {
- if (name() == QLatin1String("title"))
- readTitle(bookmark);
- else if (name() == QLatin1String("desc"))
- readDescription(bookmark);
- else
- skipUnknownElement();
- }
+ while (readNextStartElement()) {
+ if (name() == QLatin1String("title"))
+ readTitle(bookmark);
+ else if (name() == QLatin1String("desc"))
+ readDescription(bookmark);
+ else
+ skipCurrentElement();
}
if (bookmark->title.isEmpty())
bookmark->title = QObject::tr("Unknown title");
}
-void XbelReader::skipUnknownElement()
-{
- Q_ASSERT(isStartElement());
-
- while (!atEnd()) {
- readNext();
-
- if (isEndElement())
- break;
-
- if (isStartElement())
- skipUnknownElement();
- }
-}
-
XbelWriter::XbelWriter()
{
diff --git a/demos/browser/xbel.h b/demos/browser/xbel.h
index ece5505..6b2e2b2 100644
--- a/demos/browser/xbel.h
+++ b/demos/browser/xbel.h
@@ -87,7 +87,6 @@ public:
BookmarkNode *read(QIODevice *device);
private:
- void skipUnknownElement();
void readXBEL(BookmarkNode *parent);
void readTitle(BookmarkNode *parent);
void readDescription(BookmarkNode *parent);
diff --git a/demos/chip/chip.cpp b/demos/chip/chip.cpp
index 7940156..903af25 100644
--- a/demos/chip/chip.cpp
+++ b/demos/chip/chip.cpp
@@ -74,8 +74,9 @@ void Chip::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWid
if (option->state & QStyle::State_MouseOver)
fillColor = fillColor.light(125);
- if (option->levelOfDetail < 0.2) {
- if (option->levelOfDetail < 0.125) {
+ const qreal lod = option->levelOfDetailFromTransform(painter->worldTransform());
+ if (lod < 0.2) {
+ if (lod < 0.125) {
painter->fillRect(QRectF(0, 0, 110, 70), fillColor);
return;
}
@@ -100,7 +101,7 @@ void Chip::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWid
painter->drawRect(QRect(14, 14, 79, 39));
painter->setBrush(b);
- if (option->levelOfDetail >= 1) {
+ if (lod >= 1) {
painter->setPen(QPen(Qt::gray, 1));
painter->drawLine(15, 54, 94, 54);
painter->drawLine(94, 53, 94, 15);
@@ -108,7 +109,7 @@ void Chip::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWid
}
// Draw text
- if (option->levelOfDetail >= 2) {
+ if (lod >= 2) {
QFont font("Times", 10);
font.setStyleStrategy(QFont::ForceOutline);
painter->setFont(font);
@@ -122,17 +123,17 @@ void Chip::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWid
// Draw lines
QVarLengthArray<QLineF, 36> lines;
- if (option->levelOfDetail >= 0.5) {
- for (int i = 0; i <= 10; i += (option->levelOfDetail > 0.5 ? 1 : 2)) {
+ if (lod >= 0.5) {
+ for (int i = 0; i <= 10; i += (lod > 0.5 ? 1 : 2)) {
lines.append(QLineF(18 + 7 * i, 13, 18 + 7 * i, 5));
lines.append(QLineF(18 + 7 * i, 54, 18 + 7 * i, 62));
}
- for (int i = 0; i <= 6; i += (option->levelOfDetail > 0.5 ? 1 : 2)) {
+ for (int i = 0; i <= 6; i += (lod > 0.5 ? 1 : 2)) {
lines.append(QLineF(5, 18 + i * 5, 13, 18 + i * 5));
lines.append(QLineF(94, 18 + i * 5, 102, 18 + i * 5));
}
}
- if (option->levelOfDetail >= 0.4) {
+ if (lod >= 0.4) {
const QLineF lineData[] = {
QLineF(25, 35, 35, 35),
QLineF(35, 30, 35, 40),
diff --git a/demos/chip/chip.pro b/demos/chip/chip.pro
index 53fa23b..4339f82 100644
--- a/demos/chip/chip.pro
+++ b/demos/chip/chip.pro
@@ -17,3 +17,4 @@ sources.files = $$SOURCES $$HEADERS $$RESOURCES *.png *.pro *.html *.doc images
sources.path = $$[QT_INSTALL_DEMOS]/chip
INSTALLS += target sources
+symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
diff --git a/demos/composition/composition.pro b/demos/composition/composition.pro
index d5c4a60..c820a8b 100644
--- a/demos/composition/composition.pro
+++ b/demos/composition/composition.pro
@@ -17,6 +17,8 @@ sources.files = $$SOURCES $$HEADERS $$RESOURCES *.png *.jpg *.pro *.html
sources.path = $$[QT_INSTALL_DEMOS]/composition
INSTALLS += target sources
+symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
+
win32-msvc* {
QMAKE_CXXFLAGS += /Zm500
QMAKE_CFLAGS += /Zm500
diff --git a/demos/deform/deform.pro b/demos/deform/deform.pro
index db8484d..4cce195 100644
--- a/demos/deform/deform.pro
+++ b/demos/deform/deform.pro
@@ -17,3 +17,8 @@ target.path = $$[QT_INSTALL_DEMOS]/deform
sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.html
sources.path = $$[QT_INSTALL_DEMOS]/deform
INSTALLS += target sources
+
+symbian {
+ include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
+ TARGET.UID3 = 0xA000A63D
+}
diff --git a/demos/deform/pathdeform.cpp b/demos/deform/pathdeform.cpp
index beee7ff..e391225 100644
--- a/demos/deform/pathdeform.cpp
+++ b/demos/deform/pathdeform.cpp
@@ -53,7 +53,6 @@
#include <QDesktopWidget>
#include <qmath.h>
-
PathDeformControls::PathDeformControls(QWidget *parent, PathDeformRenderer* renderer, bool smallScreen)
: QWidget(parent)
{
@@ -241,6 +240,7 @@ void PathDeformControls::layoutForSmallScreen()
QRect screen_size = QApplication::desktop()->screenGeometry();
radiusSlider->setValue(qMin(screen_size.width(), screen_size.height())/5);
+
m_renderer->setText(tr("Qt"));
}
diff --git a/demos/demos.pro b/demos/demos.pro
index 6084550..c4b8872 100644
--- a/demos/demos.pro
+++ b/demos/demos.pro
@@ -1,26 +1,32 @@
TEMPLATE = subdirs
SUBDIRS = \
- demos_shared \
- demos_deform \
- demos_gradients \
- demos_pathstroke \
- demos_affine \
- demos_composition \
- demos_books \
- demos_interview \
- demos_mainwindow \
- demos_spreadsheet \
- demos_textedit \
- demos_chip \
- demos_embeddeddialogs \
- demos_undo
+ demos_shared \
+ demos_deform \
+ demos_gradients \
+ demos_pathstroke \
+ demos_affine \
+ demos_composition \
+ demos_books \
+ demos_interview \
+ demos_mainwindow \
+ demos_spreadsheet \
+ demos_textedit \
+ demos_chip \
+ demos_embeddeddialogs \
+ demos_undo \
+ demos_sub-attaq
+
+symbian: SUBDIRS = \
+ demos_shared \
+ demos_deform \
+ demos_pathstroke
contains(QT_CONFIG, opengl):!contains(QT_CONFIG, opengles1):!contains(QT_CONFIG, opengles1cl):!contains(QT_CONFIG, opengles2):{
SUBDIRS += demos_boxes
}
mac*: SUBDIRS += demos_macmainwindow
-wince*|embedded: SUBDIRS += embedded
+wince*|symbian|embedded: SUBDIRS += embedded
!contains(QT_EDITION, Console):!cross_compile:!embedded:!wince*:SUBDIRS += demos_arthurplugin
@@ -38,6 +44,8 @@ sources.files = README *.pro
sources.path = $$[QT_INSTALL_DEMOS]
INSTALLS += sources
+symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
+
demos_chip.subdir = chip
demos_embeddeddialogs.subdir = embeddeddialogs
demos_shared.subdir = shared
@@ -61,6 +69,7 @@ demos_mediaplayer.subdir = mediaplayer
demos_browser.subdir = browser
demos_boxes.subdir = boxes
+demos_sub-attaq.subdir = sub-attaq
#CONFIG += ordered
!ordered {
diff --git a/demos/embedded/anomaly/README.TXT b/demos/embedded/anomaly/README.TXT
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/demos/embedded/anomaly/README.TXT
diff --git a/demos/embedded/anomaly/anomaly.pro b/demos/embedded/anomaly/anomaly.pro
new file mode 100644
index 0000000..8fb1265
--- /dev/null
+++ b/demos/embedded/anomaly/anomaly.pro
@@ -0,0 +1,31 @@
+QT += network \
+ webkit
+HEADERS += src/BrowserWindow.h \
+ src/BrowserView.h \
+ src/TitleBar.h \
+ src/HomeView.h \
+ src/AddressBar.h \
+ src/BookmarksView.h \
+ src/flickcharm.h \
+ src/ZoomStrip.h \
+ src/ControlStrip.h
+SOURCES += src/Main.cpp \
+ src/BrowserWindow.cpp \
+ src/BrowserView.cpp \
+ src/TitleBar.cpp \
+ src/HomeView.cpp \
+ src/AddressBar.cpp \
+ src/BookmarksView.cpp \
+ src/flickcharm.cpp \
+ src/ZoomStrip.cpp \
+ src/ControlStrip.cpp
+RESOURCES += src/anomaly.qrc
+
+symbian {
+ include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
+ HEADERS += $$QT_SOURCE_TREE/examples/network/ftp/sym_iap_util.h
+ LIBS += -lesock -lconnmon
+ TARGET.CAPABILITY = NetworkServices
+ TARGET.EPOCHEAPSIZE = 0x20000 0x2000000
+ TARGET.UID3 = 0xA000CF71
+}
diff --git a/demos/embedded/anomaly/src/AddressBar.cpp b/demos/embedded/anomaly/src/AddressBar.cpp
new file mode 100644
index 0000000..bb6292f
--- /dev/null
+++ b/demos/embedded/anomaly/src/AddressBar.cpp
@@ -0,0 +1,109 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demos of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "AddressBar.h"
+
+#include <QtCore>
+#include <QtGui>
+
+class LineEdit: public QLineEdit
+{
+public:
+ LineEdit(QWidget *parent = 0): QLineEdit(parent) {}
+
+ void paintEvent(QPaintEvent *event) {
+ QLineEdit::paintEvent(event);
+ if (text().isEmpty()) {
+ QPainter p(this);
+ int flags = Qt::AlignLeft | Qt::AlignVCenter;
+ p.setPen(palette().color(QPalette::Disabled, QPalette::Text));
+ p.drawText(rect().adjusted(10, 0, 0, 0), flags, "Enter address or search terms");
+ p.end();
+ }
+ }
+};
+
+AddressBar::AddressBar(QWidget *parent)
+ : QWidget(parent)
+{
+ m_lineEdit = new LineEdit(parent);
+ connect(m_lineEdit, SIGNAL(returnPressed()), SLOT(processAddress()));
+ m_toolButton = new QToolButton(parent);
+ m_toolButton->setText("Go");
+ connect(m_toolButton, SIGNAL(clicked()), SLOT(processAddress()));
+}
+
+QSize AddressBar::sizeHint() const
+{
+ return m_lineEdit->sizeHint();
+}
+
+void AddressBar::processAddress()
+{
+ if (!m_lineEdit->text().isEmpty())
+ emit addressEntered(m_lineEdit->text());
+}
+
+void AddressBar::resizeEvent(QResizeEvent *event)
+{
+ int x, y, w, h;
+
+ m_toolButton->adjustSize();
+ x = width() - m_toolButton->width();
+ y = 0;
+ w = m_toolButton->width();
+ h = height() - 1;
+ m_toolButton->setGeometry(x, y, w, h);
+ m_toolButton->show();
+
+ x = 0;
+ y = 0;
+ w = width() - m_toolButton->width();
+ h = height() - 1;
+ m_lineEdit->setGeometry(x, y, w, h);
+ m_lineEdit->show();
+}
+
+void AddressBar::focusInEvent(QFocusEvent *event)
+{
+ m_lineEdit->setFocus();
+ QWidget::focusInEvent(event);
+}
diff --git a/demos/embedded/anomaly/src/AddressBar.h b/demos/embedded/anomaly/src/AddressBar.h
new file mode 100644
index 0000000..6322531
--- /dev/null
+++ b/demos/embedded/anomaly/src/AddressBar.h
@@ -0,0 +1,73 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demos of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef ADDRESSBAR_H
+#define ADDRESSBAR_H
+
+#include <QWidget>
+
+class QLineEdit;
+class QToolButton;
+
+class AddressBar : public QWidget
+{
+ Q_OBJECT
+
+public:
+ AddressBar(QWidget *parent = 0);
+ QSize sizeHint() const;
+
+protected:
+ void resizeEvent(QResizeEvent *event);
+ void focusInEvent(QFocusEvent *event);
+
+signals:
+ void addressEntered(const QString &address);
+
+private slots:
+ void processAddress();
+
+private:
+ QLineEdit *m_lineEdit;
+ QToolButton *m_toolButton;
+};
+
+#endif // ADDRESSBAR_H
diff --git a/demos/embedded/anomaly/src/BookmarksView.cpp b/demos/embedded/anomaly/src/BookmarksView.cpp
new file mode 100644
index 0000000..11593fd
--- /dev/null
+++ b/demos/embedded/anomaly/src/BookmarksView.cpp
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demos of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "BookmarksView.h"
+
+#include <QtGui>
+
+BookmarksView::BookmarksView(QWidget *parent)
+ : QWidget(parent)
+{
+ QListWidget *m_iconView = new QListWidget(this);
+ connect(m_iconView, SIGNAL(itemActivated(QListWidgetItem*)), SLOT(activate(QListWidgetItem*)));
+
+ QVBoxLayout *layout = new QVBoxLayout(this);
+ setLayout(layout);
+ layout->addWidget(m_iconView);
+
+ m_iconView->addItem("www.google.com");
+ m_iconView->addItem("qt.nokia.com/doc/4.5");
+ m_iconView->addItem("news.bbc.co.uk/text_only.stm");
+ m_iconView->addItem("mobile.wikipedia.org");
+ m_iconView->addItem("qt.nokia.com");
+ m_iconView->addItem("en.wikipedia.org");
+
+ setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+}
+
+void BookmarksView::activate(QListWidgetItem *item)
+{
+ QUrl url = item->text().prepend("http://");
+ emit urlSelected(url);
+}
diff --git a/demos/embedded/anomaly/src/BookmarksView.h b/demos/embedded/anomaly/src/BookmarksView.h
new file mode 100644
index 0000000..9cbfad9
--- /dev/null
+++ b/demos/embedded/anomaly/src/BookmarksView.h
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demos of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef BOOKMARKSVIEW_H
+#define BOOKMARKSVIEW_H
+
+#include <QWidget>
+
+class QListWidgetItem;
+class QUrl;
+
+class BookmarksView : public QWidget
+{
+ Q_OBJECT
+
+public:
+ BookmarksView(QWidget *parent = 0);
+
+signals:
+ void urlSelected(const QUrl &url);
+
+private slots:
+ void activate(QListWidgetItem *item);
+};
+
+#endif // BOOKMARKSVIEW_H
diff --git a/demos/embedded/anomaly/src/BrowserView.cpp b/demos/embedded/anomaly/src/BrowserView.cpp
new file mode 100644
index 0000000..398694f
--- /dev/null
+++ b/demos/embedded/anomaly/src/BrowserView.cpp
@@ -0,0 +1,185 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demos of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "BrowserView.h"
+
+#include <QtGui>
+#include <QtNetwork>
+#include <QtWebKit>
+
+#include "ControlStrip.h"
+#include "TitleBar.h"
+#include "flickcharm.h"
+#include "ZoomStrip.h"
+
+#if defined (Q_OS_SYMBIAN)
+#include "sym_iap_util.h"
+#endif
+
+BrowserView::BrowserView(QWidget *parent)
+ : QWidget(parent)
+ , m_titleBar(0)
+ , m_webView(0)
+ , m_progress(0)
+ , m_currentZoom(100)
+{
+ m_titleBar = new TitleBar(this);
+ m_webView = new QWebView(this);
+ m_zoomStrip = new ZoomStrip(this);
+ m_controlStrip = new ControlStrip(this);
+
+ m_zoomLevels << 30 << 50 << 67 << 80 << 90;
+ m_zoomLevels << 100;
+ m_zoomLevels << 110 << 120 << 133 << 150 << 170 << 200 << 240 << 300;
+
+ QTimer::singleShot(0, this, SLOT(initialize()));
+}
+
+void BrowserView::initialize()
+{
+ connect(m_zoomStrip, SIGNAL(zoomInClicked()), SLOT(zoomIn()));
+ connect(m_zoomStrip, SIGNAL(zoomOutClicked()), SLOT(zoomOut()));
+
+ connect(m_controlStrip, SIGNAL(menuClicked()), SIGNAL(menuButtonClicked()));
+ connect(m_controlStrip, SIGNAL(backClicked()), m_webView, SLOT(back()));
+ connect(m_controlStrip, SIGNAL(forwardClicked()), m_webView, SLOT(forward()));
+
+ QPalette pal = m_webView->palette();
+ pal.setBrush(QPalette::Base, Qt::white);
+ m_webView->setPalette(pal);
+
+ FlickCharm *flickCharm = new FlickCharm(this);
+ flickCharm->activateOn(m_webView);
+
+ m_webView->setZoomFactor(static_cast<qreal>(m_currentZoom)/100.0);
+ connect(m_webView, SIGNAL(loadStarted()), SLOT(start()));
+ connect(m_webView, SIGNAL(loadProgress(int)), SLOT(setProgress(int)));
+ connect(m_webView, SIGNAL(loadFinished(bool)), SLOT(finish(bool)));
+ connect(m_webView, SIGNAL(urlChanged(QUrl)), SLOT(updateTitleBar()));
+
+ m_webView->setHtml("Will try to load page soon!");
+ m_webView->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+ m_webView->setFocus();
+#ifdef Q_OS_SYMBIAN
+ QTimer::singleShot(0, this, SLOT(setDefaultIap()));
+#endif
+}
+
+void BrowserView::start()
+{
+ m_progress = 0;
+ updateTitleBar();
+ //m_titleBar->setText(m_webView->url().toString());
+}
+
+void BrowserView::setProgress(int percent)
+{
+ m_progress = percent;
+ updateTitleBar();
+ //m_titleBar->setText(QString("Loading %1%").arg(percent));
+}
+
+void BrowserView::updateTitleBar()
+{
+ QUrl url = m_webView->url();
+ m_titleBar->setHost(url.host());
+ m_titleBar->setTitle(m_webView->title());
+ m_titleBar->setProgress(m_progress);
+}
+
+void BrowserView::finish(bool ok)
+{
+ m_progress = 0;
+ updateTitleBar();
+
+ // TODO: handle error
+ if (!ok) {
+ //m_titleBar->setText("Loading failed.");
+ }
+}
+
+void BrowserView::zoomIn()
+{
+ int i = m_zoomLevels.indexOf(m_currentZoom);
+ Q_ASSERT(i >= 0);
+ if (i < m_zoomLevels.count() - 1)
+ m_currentZoom = m_zoomLevels[i + 1];
+
+ m_webView->setZoomFactor(static_cast<qreal>(m_currentZoom)/100.0);
+}
+
+void BrowserView::zoomOut()
+{
+ int i = m_zoomLevels.indexOf(m_currentZoom);
+ Q_ASSERT(i >= 0);
+ if (i > 0)
+ m_currentZoom = m_zoomLevels[i - 1];
+
+ m_webView->setZoomFactor(static_cast<qreal>(m_currentZoom)/100.0);
+}
+
+void BrowserView::resizeEvent(QResizeEvent *event)
+{
+ QWidget::resizeEvent(event);
+
+ int h1 = m_titleBar->sizeHint().height();
+ int h2 = m_controlStrip->sizeHint().height();
+
+ m_titleBar->setGeometry(0, 0, width(), h1);
+ m_controlStrip->setGeometry(0, height() - h2, width(), h2);
+ m_webView->setGeometry(0, h1, width(), height() - h1);
+
+ int zw = m_zoomStrip->sizeHint().width();
+ int zh = m_zoomStrip->sizeHint().height();
+ m_zoomStrip->move(width() - zw, (height() - zh) / 2);
+}
+#ifdef Q_OS_SYMBIAN
+void BrowserView::setDefaultIap()
+{
+ qt_SetDefaultIap();
+ m_webView->load(QUrl("http://news.bbc.co.uk/text_only.stm"));
+}
+#endif
+
+void BrowserView::navigate(const QUrl &url)
+{
+ m_webView->load(url);
+}
diff --git a/demos/embedded/anomaly/src/BrowserView.h b/demos/embedded/anomaly/src/BrowserView.h
new file mode 100644
index 0000000..0d388a6
--- /dev/null
+++ b/demos/embedded/anomaly/src/BrowserView.h
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demos of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef BROWSERVIEW_H
+#define BROWSERVIEW_H
+
+#include <QWidget>
+#include <QVector>
+
+class QUrl;
+class QWebView;
+class TitleBar;
+class ControlStrip;
+class ZoomStrip;
+
+class BrowserView : public QWidget
+{
+ Q_OBJECT
+
+public:
+ BrowserView(QWidget *parent = 0);
+
+public slots:
+ void navigate(const QUrl &url);
+ void zoomIn();
+ void zoomOut();
+#ifdef Q_OS_SYMBIAN
+ void setDefaultIap();
+#endif
+
+private slots:
+ void initialize();
+ void start();
+ void setProgress(int percent);
+ void finish(bool);
+ void updateTitleBar();
+
+signals:
+ void menuButtonClicked();
+
+protected:
+ void resizeEvent(QResizeEvent *event);
+
+private:
+ TitleBar *m_titleBar;
+ QWebView *m_webView;
+ ZoomStrip *m_zoomStrip;
+ ControlStrip *m_controlStrip;
+ int m_progress;
+ int m_currentZoom;
+ QVector<int> m_zoomLevels;
+};
+
+#endif // BROWSERVIEW_H
diff --git a/demos/embedded/anomaly/src/BrowserWindow.cpp b/demos/embedded/anomaly/src/BrowserWindow.cpp
new file mode 100644
index 0000000..6a2a518
--- /dev/null
+++ b/demos/embedded/anomaly/src/BrowserWindow.cpp
@@ -0,0 +1,187 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demos of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "BrowserWindow.h"
+
+#include <QtCore>
+#include <QtGui>
+
+#include "BrowserView.h"
+#include "HomeView.h"
+
+BrowserWindow::BrowserWindow()
+ : QWidget()
+ , m_homeView(0)
+ , m_browserView(0)
+{
+ m_timeLine = new QTimeLine(300, this);
+ m_timeLine->setCurveShape(QTimeLine::EaseInOutCurve);
+ QTimer::singleShot(0, this, SLOT(initialize()));
+}
+
+void BrowserWindow::initialize()
+{
+ m_homeView = new HomeView(this);
+ m_browserView = new BrowserView(this);
+
+ m_homeView->hide();
+ m_homeView->resize(size());
+ m_homeView->move(0, 0);
+
+ m_browserView->hide();
+ m_browserView->resize(size());
+ m_browserView->move(0, 0);
+
+ connect(m_homeView, SIGNAL(addressEntered(QString)), SLOT(gotoAddress(QString)));
+ connect(m_homeView, SIGNAL(urlActivated(QUrl)), SLOT(navigate(QUrl)));
+
+ connect(m_browserView, SIGNAL(menuButtonClicked()), SLOT(showHomeView()));
+
+ m_homeView->setVisible(false);
+ m_browserView->setVisible(false);
+ slide(0);
+
+ connect(m_timeLine, SIGNAL(frameChanged(int)), SLOT(slide(int)));
+}
+
+
+// from Demo Browser
+QUrl guessUrlFromString(const QString &string)
+{
+ QString urlStr = string.trimmed();
+ QRegExp test(QLatin1String("^[a-zA-Z]+\\:.*"));
+
+ // Check if it looks like a qualified URL. Try parsing it and see.
+ bool hasSchema = test.exactMatch(urlStr);
+ if (hasSchema) {
+ QUrl url = QUrl::fromEncoded(urlStr.toUtf8(), QUrl::TolerantMode);
+ if (url.isValid())
+ return url;
+ }
+
+ // Might be a file.
+ if (QFile::exists(urlStr)) {
+ QFileInfo info(urlStr);
+ return QUrl::fromLocalFile(info.absoluteFilePath());
+ }
+
+ // Might be a shorturl - try to detect the schema.
+ if (!hasSchema) {
+ int dotIndex = urlStr.indexOf(QLatin1Char('.'));
+ if (dotIndex != -1) {
+ QString prefix = urlStr.left(dotIndex).toLower();
+ QString schema = (prefix == QString("ftp")) ? prefix.toLatin1() : QString("http");
+ QString location = schema + "://" + urlStr;
+ QUrl url = QUrl::fromEncoded(location.toUtf8(), QUrl::TolerantMode);
+ if (url.isValid())
+ return url;
+ }
+ }
+
+ // Fall back to QUrl's own tolerant parser.
+ QUrl url = QUrl::fromEncoded(string.toUtf8(), QUrl::TolerantMode);
+
+ // finally for cases where the user just types in a hostname add http
+ if (url.scheme().isEmpty())
+ url = QUrl::fromEncoded("http://" + string.toUtf8(), QUrl::TolerantMode);
+ return url;
+}
+
+void BrowserWindow::gotoAddress(const QString &address)
+{
+ m_browserView->navigate(guessUrlFromString(address));
+ showBrowserView();
+}
+
+void BrowserWindow::navigate(const QUrl &url)
+{
+ m_browserView->navigate(url);
+ showBrowserView();
+}
+
+void BrowserWindow::slide(int pos)
+{
+ m_browserView->move(pos, 0);
+ m_homeView->move(pos - width(), 0);
+ m_browserView->show();
+ m_homeView->show();
+}
+
+void BrowserWindow::showHomeView()
+{
+ if (m_timeLine->state() != QTimeLine::NotRunning)
+ return;
+
+ m_timeLine->setFrameRange(0, width());
+ m_timeLine->start();
+ m_homeView->setFocus();
+}
+
+void BrowserWindow::showBrowserView()
+{
+ if (m_timeLine->state() != QTimeLine::NotRunning)
+ return;
+
+ m_timeLine->setFrameRange(width(), 0);
+ m_timeLine->start();
+ m_browserView->setFocus();
+}
+
+void BrowserWindow::keyReleaseEvent(QKeyEvent *event)
+{
+ QWidget::keyReleaseEvent(event);
+
+ if (event->key() == Qt::Key_F3) {
+ if (m_homeView->isVisible())
+ showBrowserView();
+ else
+ showHomeView();
+ }
+}
+
+void BrowserWindow::resizeEvent(QResizeEvent *event)
+{
+ if (m_homeView)
+ m_homeView->resize(size());
+
+ if (m_browserView)
+ m_browserView->resize(size());
+}
diff --git a/demos/embedded/anomaly/src/BrowserWindow.h b/demos/embedded/anomaly/src/BrowserWindow.h
new file mode 100644
index 0000000..51660ba
--- /dev/null
+++ b/demos/embedded/anomaly/src/BrowserWindow.h
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demos of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef BROWSERWINDOW_H
+#define BROWSERWINDOW_H
+
+#include <QWidget>
+class QTimeLine;
+class QUrl;
+
+class BrowserView;
+class HomeView;
+
+class BrowserWindow : public QWidget
+{
+ Q_OBJECT
+
+public:
+ BrowserWindow();
+
+private slots:
+ void initialize();
+ void navigate(const QUrl &url);
+ void gotoAddress(const QString &address);
+
+public slots:
+ void showBrowserView();
+ void showHomeView();
+ void slide(int);
+
+protected:
+ void keyReleaseEvent(QKeyEvent *event);
+ void resizeEvent(QResizeEvent *event);
+
+private:
+ HomeView *m_homeView;
+ BrowserView *m_browserView;
+ QTimeLine *m_timeLine;
+};
+
+#endif // BROWSERWINDOW_H
diff --git a/demos/embedded/anomaly/src/ControlStrip.cpp b/demos/embedded/anomaly/src/ControlStrip.cpp
new file mode 100644
index 0000000..564f1f2
--- /dev/null
+++ b/demos/embedded/anomaly/src/ControlStrip.cpp
@@ -0,0 +1,101 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demos of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "ControlStrip.h"
+
+#include <QtCore>
+#include <QtGui>
+
+ControlStrip::ControlStrip(QWidget *parent)
+ : QWidget(parent)
+{
+ menuPixmap.load(":/images/edit-find.png");
+ backPixmap.load(":/images/go-previous.png");
+ forwardPixmap.load(":/images/go-next.png");
+}
+
+QSize ControlStrip::sizeHint() const
+{
+ return minimumSizeHint();
+}
+
+QSize ControlStrip::minimumSizeHint() const
+{
+ return QSize(320, 48);
+}
+
+void ControlStrip::mousePressEvent(QMouseEvent *event)
+{
+ int h = height();
+ int x = event->pos().x();
+
+ if (x < h) {
+ emit menuClicked();
+ event->accept();
+ return;
+ }
+
+ if (x > width() - h) {
+ emit forwardClicked();
+ event->accept();
+ return;
+ }
+
+ if ((x < width() - 2 * h) && (x > width() - 3 * h)) {
+ emit backClicked();
+ event->accept();
+ return;
+ }
+}
+
+void ControlStrip::paintEvent(QPaintEvent *event)
+{
+ int h = height();
+ int s = (h - menuPixmap.height()) / 2;
+
+ QPainter p(this);
+ p.fillRect(event->rect(), QColor(32, 32, 32, 192));
+ p.setCompositionMode(QPainter::CompositionMode_SourceOver);
+ p.drawPixmap(s, s, menuPixmap);
+ p.drawPixmap(width() - 3 * h + s, s, backPixmap);
+ p.drawPixmap(width() - h + s, s, forwardPixmap);
+ p.end();
+}
diff --git a/demos/embedded/anomaly/src/ControlStrip.h b/demos/embedded/anomaly/src/ControlStrip.h
new file mode 100644
index 0000000..0788bb9
--- /dev/null
+++ b/demos/embedded/anomaly/src/ControlStrip.h
@@ -0,0 +1,72 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demos of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef CONTROLSTRIP_H
+#define CONTROLSTRIP_H
+
+#include <QWidget>
+
+class ControlStrip : public QWidget
+{
+ Q_OBJECT
+
+public:
+ ControlStrip(QWidget *parent = 0);
+
+ QSize sizeHint() const;
+ QSize minimumSizeHint() const;
+
+signals:
+ void menuClicked();
+ void backClicked();
+ void forwardClicked();
+
+protected:
+ void paintEvent(QPaintEvent *event);
+ void mousePressEvent(QMouseEvent *event);
+
+private:
+ QPixmap menuPixmap;
+ QPixmap backPixmap;
+ QPixmap forwardPixmap;
+};
+
+#endif // CONTROLSTRIP_H
diff --git a/demos/embedded/anomaly/src/HomeView.cpp b/demos/embedded/anomaly/src/HomeView.cpp
new file mode 100644
index 0000000..18de6ef
--- /dev/null
+++ b/demos/embedded/anomaly/src/HomeView.cpp
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demos of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "HomeView.h"
+
+#include <QtCore>
+#include <QtGui>
+
+#include "AddressBar.h"
+#include "BookmarksView.h"
+
+HomeView::HomeView(QWidget *parent)
+ : QWidget(parent)
+ , m_addressBar(0)
+{
+ m_addressBar = new AddressBar(parent);
+ connect(m_addressBar, SIGNAL(addressEntered(QString)), SLOT(gotoAddress(QString)));
+
+ m_bookmarks = new BookmarksView(parent);
+ connect(m_bookmarks, SIGNAL(urlSelected(QUrl)), SIGNAL(urlActivated(QUrl)));
+
+ QVBoxLayout *layout = new QVBoxLayout(this);
+ layout->setMargin(4);
+ layout->setSpacing(4);
+ layout->addWidget(m_addressBar);
+ layout->addWidget(m_bookmarks);
+}
+
+void HomeView::gotoAddress(const QString &address)
+{
+ emit addressEntered(address);
+}
+
+void HomeView::focusInEvent(QFocusEvent *event)
+{
+ m_addressBar->setFocus();
+ QWidget::focusInEvent(event);
+}
diff --git a/demos/embedded/anomaly/src/HomeView.h b/demos/embedded/anomaly/src/HomeView.h
new file mode 100644
index 0000000..92889fb
--- /dev/null
+++ b/demos/embedded/anomaly/src/HomeView.h
@@ -0,0 +1,74 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demos of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef HOMEVIEW_H
+#define HOMEVIEW_H
+
+#include <QWidget>
+
+class QUrl;
+
+class AddressBar;
+class BookmarksView;
+
+class HomeView : public QWidget
+{
+ Q_OBJECT
+
+public:
+ HomeView(QWidget *parent);
+
+signals:
+ void urlActivated(const QUrl &url);
+ void addressEntered(const QString &address);
+
+private slots:
+ void gotoAddress(const QString &address);
+
+protected:
+ void focusInEvent(QFocusEvent *event);
+
+private:
+ AddressBar *m_addressBar;
+ BookmarksView *m_bookmarks;
+};
+
+#endif // HOMEVIEW_H
diff --git a/demos/embedded/anomaly/src/Main.cpp b/demos/embedded/anomaly/src/Main.cpp
new file mode 100644
index 0000000..16c3676
--- /dev/null
+++ b/demos/embedded/anomaly/src/Main.cpp
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demos of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtCore>
+#include <QtGui>
+#include <QtWebKit>
+
+#include "BrowserWindow.h"
+
+int main(int argc, char *argv[])
+{
+#if !defined(Q_WS_S60)
+ QApplication::setGraphicsSystem("raster");
+#endif
+
+ QApplication app(argc, argv);
+
+ app.setApplicationName("Anomaly");
+ app.setApplicationVersion("0.0.0");
+
+ BrowserWindow window;
+#ifdef Q_OS_SYMBIAN
+ window.showFullScreen();
+ QWebSettings::globalSettings()->setObjectCacheCapacities(128*1024, 1024*1024, 1024*1024);
+ QWebSettings::globalSettings()->setMaximumPagesInCache(3);
+#else
+ window.resize(360, 640);
+ window.show();
+ app.setStyle("windows");
+#endif
+
+ return app.exec();
+}
diff --git a/demos/embedded/anomaly/src/TitleBar.cpp b/demos/embedded/anomaly/src/TitleBar.cpp
new file mode 100644
index 0000000..31e9264
--- /dev/null
+++ b/demos/embedded/anomaly/src/TitleBar.cpp
@@ -0,0 +1,124 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demos of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "TitleBar.h"
+
+#include <QtCore>
+#include <QtGui>
+
+TitleBar::TitleBar(QWidget *parent)
+ : QWidget(parent)
+ , m_progress(0)
+{
+ setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum);
+}
+
+void TitleBar::setHost(const QString &host)
+{
+ m_host = host;
+ update();
+}
+
+void TitleBar::setTitle(const QString &title)
+{
+ m_title = title;
+ update();
+}
+
+void TitleBar::setProgress(int percent)
+{
+ m_progress = percent;
+ update();
+}
+
+QSize TitleBar::sizeHint() const
+{
+ return minimumSizeHint();
+}
+
+QSize TitleBar::minimumSizeHint() const
+{
+ QFontMetrics fm = fontMetrics();
+ return QSize(100, fm.height());
+}
+
+void TitleBar::paintEvent(QPaintEvent *event)
+{
+ QString title = m_host;
+ if (!m_title.isEmpty())
+ title.append(": ").append(m_title);
+
+ QPalette pal = palette();
+ QPainter p(this);
+ p.fillRect(event->rect(), pal.color(QPalette::Highlight));
+
+ if (m_progress > 0) {
+
+ QRect box = rect();
+ box.setLeft(16);
+ box.setWidth(width() - box.left() - 110);
+
+ p.setPen(pal.color(QPalette::HighlightedText));
+ p.setOpacity(0.8);
+ p.drawText(box, Qt::AlignLeft + Qt::AlignVCenter, title);
+
+ int x = width() - 100 - 5;
+ int y = 1;
+ int h = height() - 4;
+
+ p.setOpacity(1.0);
+ p.setBrush(Qt::NoBrush);
+ p.setPen(pal.color(QPalette::HighlightedText));
+ p.drawRect(x, y, 100, h);
+ p.setPen(Qt::NoPen);
+ p.setBrush(pal.color(QPalette::HighlightedText));
+ p.drawRect(x, y, m_progress, h);
+ } else {
+
+ QRect box = rect();
+ box.setLeft(16);
+ box.setWidth(width() - box.left() - 5);
+ p.setPen(pal.color(QPalette::HighlightedText));
+ p.drawText(box, Qt::AlignLeft + Qt::AlignVCenter, title);
+ }
+
+ p.end();
+}
diff --git a/demos/embedded/anomaly/src/TitleBar.h b/demos/embedded/anomaly/src/TitleBar.h
new file mode 100644
index 0000000..7d9524f
--- /dev/null
+++ b/demos/embedded/anomaly/src/TitleBar.h
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demos of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef TITLEBAR_H
+#define TITLEBAR_H
+
+#include <QWidget>
+
+class TitleBar : public QWidget
+{
+ Q_OBJECT
+
+public:
+ TitleBar(QWidget *parent = 0);
+
+ void setHost(const QString &host);
+ void setTitle(const QString &title);
+ void setProgress(int percent);
+
+ QSize sizeHint() const;
+ QSize minimumSizeHint() const;
+
+protected:
+ void paintEvent(QPaintEvent *event);
+
+private:
+ QString m_host;
+ QString m_title;
+ int m_progress;
+};
+
+#endif // TITLEBAR_H
diff --git a/demos/embedded/anomaly/src/ZoomStrip.cpp b/demos/embedded/anomaly/src/ZoomStrip.cpp
new file mode 100644
index 0000000..ce3acd0
--- /dev/null
+++ b/demos/embedded/anomaly/src/ZoomStrip.cpp
@@ -0,0 +1,82 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demos of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "ZoomStrip.h"
+
+#include <QtCore>
+#include <QtGui>
+
+ZoomStrip::ZoomStrip(QWidget *parent)
+ : QWidget(parent)
+{
+ zoomInPixmap.load(":/images/list-add.png");
+ zoomOutPixmap.load(":/images/list-remove.png");
+}
+
+QSize ZoomStrip::sizeHint() const
+{
+ return minimumSizeHint();
+}
+
+QSize ZoomStrip::minimumSizeHint() const
+{
+ return QSize(48, 96);
+}
+
+void ZoomStrip::mousePressEvent(QMouseEvent *event)
+{
+ if (event->pos().y() < height() / 2)
+ emit zoomInClicked();
+ else
+ emit zoomOutClicked();
+}
+
+void ZoomStrip::paintEvent(QPaintEvent *event)
+{
+ int w = width();
+ int s = (w - zoomInPixmap.width()) / 2;
+
+ QPainter p(this);
+ p.fillRect(event->rect(), QColor(128, 128, 128, 128));
+ p.drawPixmap(s, s, zoomInPixmap);
+ p.drawPixmap(s, s + w, zoomOutPixmap);
+ p.end();
+}
diff --git a/demos/embedded/anomaly/src/ZoomStrip.h b/demos/embedded/anomaly/src/ZoomStrip.h
new file mode 100644
index 0000000..dda09cf
--- /dev/null
+++ b/demos/embedded/anomaly/src/ZoomStrip.h
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demos of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef ZOOMSTRIP_H
+#define ZOOMSTRIP_H
+
+#include <QWidget>
+
+class ZoomStrip : public QWidget
+{
+ Q_OBJECT
+
+public:
+ ZoomStrip(QWidget *parent = 0);
+
+ QSize sizeHint() const;
+ QSize minimumSizeHint() const;
+
+signals:
+ void zoomInClicked();
+ void zoomOutClicked();
+
+protected:
+ void paintEvent(QPaintEvent *event);
+ void mousePressEvent(QMouseEvent *event);
+
+private:
+ QPixmap zoomInPixmap;
+ QPixmap zoomOutPixmap;
+};
+
+#endif // ZOOMSTRIP_H
diff --git a/demos/embedded/anomaly/src/anomaly.qrc b/demos/embedded/anomaly/src/anomaly.qrc
new file mode 100644
index 0000000..601a34e
--- /dev/null
+++ b/demos/embedded/anomaly/src/anomaly.qrc
@@ -0,0 +1,9 @@
+<RCC>
+ <qresource prefix="/" >
+ <file>images/go-next.png</file>
+ <file>images/go-previous.png</file>
+ <file>images/edit-find.png</file>
+ <file>images/list-add.png</file>
+ <file>images/list-remove.png</file>
+ </qresource>
+</RCC>
diff --git a/demos/embedded/anomaly/src/flickcharm.cpp b/demos/embedded/anomaly/src/flickcharm.cpp
new file mode 100644
index 0000000..8f137b0
--- /dev/null
+++ b/demos/embedded/anomaly/src/flickcharm.cpp
@@ -0,0 +1,327 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demos of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "flickcharm.h"
+
+#include <QAbstractScrollArea>
+#include <QApplication>
+#include <QBasicTimer>
+#include <QEvent>
+#include <QHash>
+#include <QList>
+#include <QMouseEvent>
+#include <QScrollBar>
+#include <QWebFrame>
+#include <QWebView>
+
+#include <QDebug>
+
+struct FlickData {
+ typedef enum { Steady, Pressed, ManualScroll, AutoScroll, Stop } State;
+ State state;
+ QWidget *widget;
+ QPoint pressPos;
+ QPoint offset;
+ QPoint dragPos;
+ QPoint speed;
+ QList<QEvent*> ignored;
+};
+
+class FlickCharmPrivate
+{
+public:
+ QHash<QWidget*, FlickData*> flickData;
+ QBasicTimer ticker;
+};
+
+FlickCharm::FlickCharm(QObject *parent): QObject(parent)
+{
+ d = new FlickCharmPrivate;
+}
+
+FlickCharm::~FlickCharm()
+{
+ delete d;
+}
+
+void FlickCharm::activateOn(QWidget *widget)
+{
+ QAbstractScrollArea *scrollArea = dynamic_cast<QAbstractScrollArea*>(widget);
+ if (scrollArea) {
+ scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+
+ QWidget *viewport = scrollArea->viewport();
+
+ viewport->installEventFilter(this);
+ scrollArea->installEventFilter(this);
+
+ d->flickData.remove(viewport);
+ d->flickData[viewport] = new FlickData;
+ d->flickData[viewport]->widget = widget;
+ d->flickData[viewport]->state = FlickData::Steady;
+
+ return;
+ }
+
+ QWebView *webView = dynamic_cast<QWebView*>(widget);
+ if (webView) {
+ QWebFrame *frame = webView->page()->mainFrame();
+ frame->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff);
+ frame->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAlwaysOff);
+
+ webView->installEventFilter(this);
+
+ d->flickData.remove(webView);
+ d->flickData[webView] = new FlickData;
+ d->flickData[webView]->widget = webView;
+ d->flickData[webView]->state = FlickData::Steady;
+
+ return;
+ }
+
+ qWarning() << "FlickCharm only works on QAbstractScrollArea (and derived classes)";
+ qWarning() << "or QWebView (and derived classes)";
+}
+
+void FlickCharm::deactivateFrom(QWidget *widget)
+{
+ QAbstractScrollArea *scrollArea = dynamic_cast<QAbstractScrollArea*>(widget);
+ if (scrollArea) {
+ QWidget *viewport = scrollArea->viewport();
+
+ viewport->removeEventFilter(this);
+ scrollArea->removeEventFilter(this);
+
+ delete d->flickData[viewport];
+ d->flickData.remove(viewport);
+
+ return;
+ }
+
+ QWebView *webView = dynamic_cast<QWebView*>(widget);
+ if (webView) {
+ webView->removeEventFilter(this);
+
+ delete d->flickData[webView];
+ d->flickData.remove(webView);
+
+ return;
+ }
+}
+
+static QPoint scrollOffset(QWidget *widget)
+{
+ int x = 0, y = 0;
+
+ QAbstractScrollArea *scrollArea = dynamic_cast<QAbstractScrollArea*>(widget);
+ if (scrollArea) {
+ x = scrollArea->horizontalScrollBar()->value();
+ y = scrollArea->verticalScrollBar()->value();
+ }
+
+ QWebView *webView = dynamic_cast<QWebView*>(widget);
+ if (webView) {
+ QWebFrame *frame = webView->page()->mainFrame();
+ x = frame->evaluateJavaScript("window.scrollX").toInt();
+ y = frame->evaluateJavaScript("window.scrollY").toInt();
+ }
+
+ return QPoint(x, y);
+}
+
+static void setScrollOffset(QWidget *widget, const QPoint &p)
+{
+ QAbstractScrollArea *scrollArea = dynamic_cast<QAbstractScrollArea*>(widget);
+ if (scrollArea) {
+ scrollArea->horizontalScrollBar()->setValue(p.x());
+ scrollArea->verticalScrollBar()->setValue(p.y());
+ }
+
+ QWebView *webView = dynamic_cast<QWebView*>(widget);
+ QWebFrame *frame = webView ? webView->page()->mainFrame() : 0;
+ if (frame)
+ frame->evaluateJavaScript(QString("window.scrollTo(%1,%2);").arg(p.x()).arg(p.y()));
+}
+
+static QPoint deaccelerate(const QPoint &speed, int a = 1, int max = 64)
+{
+ int x = qBound(-max, speed.x(), max);
+ int y = qBound(-max, speed.y(), max);
+ x = (x == 0) ? x : (x > 0) ? qMax(0, x - a) : qMin(0, x + a);
+ y = (y == 0) ? y : (y > 0) ? qMax(0, y - a) : qMin(0, y + a);
+ return QPoint(x, y);
+}
+
+bool FlickCharm::eventFilter(QObject *object, QEvent *event)
+{
+ if (!object->isWidgetType())
+ return false;
+
+ QEvent::Type type = event->type();
+ if (type != QEvent::MouseButtonPress &&
+ type != QEvent::MouseButtonRelease &&
+ type != QEvent::MouseMove)
+ return false;
+
+ QMouseEvent *mouseEvent = dynamic_cast<QMouseEvent*>(event);
+ if (!mouseEvent || mouseEvent->modifiers() != Qt::NoModifier)
+ return false;
+
+ QWidget *viewport = dynamic_cast<QWidget*>(object);
+ FlickData *data = d->flickData.value(viewport);
+ if (!viewport || !data || data->ignored.removeAll(event))
+ return false;
+
+ bool consumed = false;
+ switch (data->state) {
+
+ case FlickData::Steady:
+ if (mouseEvent->type() == QEvent::MouseButtonPress)
+ if (mouseEvent->buttons() == Qt::LeftButton) {
+ consumed = true;
+ data->state = FlickData::Pressed;
+ data->pressPos = mouseEvent->pos();
+ data->offset = scrollOffset(data->widget);
+ }
+ break;
+
+ case FlickData::Pressed:
+ if (mouseEvent->type() == QEvent::MouseButtonRelease) {
+ consumed = true;
+ data->state = FlickData::Steady;
+
+ QMouseEvent *event1 = new QMouseEvent(QEvent::MouseButtonPress,
+ data->pressPos, Qt::LeftButton,
+ Qt::LeftButton, Qt::NoModifier);
+ QMouseEvent *event2 = new QMouseEvent(*mouseEvent);
+
+ data->ignored << event1;
+ data->ignored << event2;
+ QApplication::postEvent(object, event1);
+ QApplication::postEvent(object, event2);
+ }
+ if (mouseEvent->type() == QEvent::MouseMove) {
+ consumed = true;
+ data->state = FlickData::ManualScroll;
+ data->dragPos = QCursor::pos();
+ if (!d->ticker.isActive())
+ d->ticker.start(20, this);
+ }
+ break;
+
+ case FlickData::ManualScroll:
+ if (mouseEvent->type() == QEvent::MouseMove) {
+ consumed = true;
+ QPoint delta = mouseEvent->pos() - data->pressPos;
+ setScrollOffset(data->widget, data->offset - delta);
+ }
+ if (mouseEvent->type() == QEvent::MouseButtonRelease) {
+ consumed = true;
+ data->state = FlickData::AutoScroll;
+ }
+ break;
+
+ case FlickData::AutoScroll:
+ if (mouseEvent->type() == QEvent::MouseButtonPress) {
+ consumed = true;
+ data->state = FlickData::Stop;
+ data->speed = QPoint(0, 0);
+ data->pressPos = mouseEvent->pos();
+ data->offset = scrollOffset(data->widget);
+ }
+ if (mouseEvent->type() == QEvent::MouseButtonRelease) {
+ consumed = true;
+ data->state = FlickData::Steady;
+ data->speed = QPoint(0, 0);
+ }
+ break;
+
+ case FlickData::Stop:
+ if (mouseEvent->type() == QEvent::MouseButtonRelease) {
+ consumed = true;
+ data->state = FlickData::Steady;
+ }
+ if (mouseEvent->type() == QEvent::MouseMove) {
+ consumed = true;
+ data->state = FlickData::ManualScroll;
+ data->dragPos = QCursor::pos();
+ if (!d->ticker.isActive())
+ d->ticker.start(20, this);
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ return consumed;
+}
+
+void FlickCharm::timerEvent(QTimerEvent *event)
+{
+ int count = 0;
+ QHashIterator<QWidget*, FlickData*> item(d->flickData);
+ while (item.hasNext()) {
+ item.next();
+ FlickData *data = item.value();
+
+ if (data->state == FlickData::ManualScroll) {
+ count++;
+ data->speed = QCursor::pos() - data->dragPos;
+ data->dragPos = QCursor::pos();
+ }
+
+ if (data->state == FlickData::AutoScroll) {
+ count++;
+ data->speed = deaccelerate(data->speed);
+ QPoint p = scrollOffset(data->widget);
+ setScrollOffset(data->widget, p - data->speed);
+ if (data->speed == QPoint(0, 0))
+ data->state = FlickData::Steady;
+ }
+ }
+
+ if (!count)
+ d->ticker.stop();
+
+ QObject::timerEvent(event);
+}
diff --git a/demos/embedded/anomaly/src/flickcharm.h b/demos/embedded/anomaly/src/flickcharm.h
new file mode 100644
index 0000000..971b517
--- /dev/null
+++ b/demos/embedded/anomaly/src/flickcharm.h
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demos of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef FLICKCHARM_H
+#define FLICKCHARM_H
+
+#include <QObject>
+
+class FlickCharmPrivate;
+class QWidget;
+
+class FlickCharm: public QObject
+{
+ Q_OBJECT
+public:
+ FlickCharm(QObject *parent = 0);
+ ~FlickCharm();
+ void activateOn(QWidget *widget);
+ void deactivateFrom(QWidget *widget);
+ bool eventFilter(QObject *object, QEvent *event);
+
+protected:
+ void timerEvent(QTimerEvent *event);
+
+private:
+ FlickCharmPrivate *d;
+};
+
+#endif // FLICKCHARM_H
diff --git a/demos/embedded/anomaly/src/images/edit-find.png b/demos/embedded/anomaly/src/images/edit-find.png
new file mode 100644
index 0000000..5594785
--- /dev/null
+++ b/demos/embedded/anomaly/src/images/edit-find.png
Binary files differ
diff --git a/demos/embedded/anomaly/src/images/go-next.png b/demos/embedded/anomaly/src/images/go-next.png
new file mode 100644
index 0000000..a68e2db
--- /dev/null
+++ b/demos/embedded/anomaly/src/images/go-next.png
Binary files differ
diff --git a/demos/embedded/anomaly/src/images/go-previous.png b/demos/embedded/anomaly/src/images/go-previous.png
new file mode 100644
index 0000000..c37bc04
--- /dev/null
+++ b/demos/embedded/anomaly/src/images/go-previous.png
Binary files differ
diff --git a/demos/embedded/anomaly/src/images/list-add.png b/demos/embedded/anomaly/src/images/list-add.png
new file mode 100644
index 0000000..2acdd8f
--- /dev/null
+++ b/demos/embedded/anomaly/src/images/list-add.png
Binary files differ
diff --git a/demos/embedded/anomaly/src/images/list-remove.png b/demos/embedded/anomaly/src/images/list-remove.png
new file mode 100644
index 0000000..c5524f7
--- /dev/null
+++ b/demos/embedded/anomaly/src/images/list-remove.png
Binary files differ
diff --git a/demos/embedded/desktopservices/contenttab.cpp b/demos/embedded/desktopservices/contenttab.cpp
new file mode 100644
index 0000000..d1b7a02
--- /dev/null
+++ b/demos/embedded/desktopservices/contenttab.cpp
@@ -0,0 +1,154 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+// EXTERNAL INCLUDES
+#include <QKeyEvent>
+#include <QMessageBox>
+#include <QListWidget>
+#include <QVBoxLayout>
+#include <QFileInfoList>
+#include <QListWidgetItem>
+
+// INTERNAL INCLUDES
+
+// CLASS HEADER
+#include "contenttab.h"
+
+
+// CONSTRUCTORS & DESTRUCTORS
+ContentTab::ContentTab(QWidget *parent) :
+ QListWidget(parent)
+{
+ setDragEnabled(false);
+ setIconSize(QSize(45, 45));
+}
+
+ContentTab::~ContentTab()
+{
+}
+
+// NEW PUBLIC METHODS
+void ContentTab::init(const QDesktopServices::StandardLocation &location,
+ const QString &filter,
+ const QString &icon)
+{
+ setContentDir(location);
+ QStringList filterList;
+ filterList = filter.split(";");
+ m_ContentDir.setNameFilters(filterList);
+ setIcon(icon);
+
+ connect(this, SIGNAL(itemClicked(QListWidgetItem *)),
+ this, SLOT(openItem(QListWidgetItem *)));
+
+ populateListWidget();
+}
+
+// NEW PROTECTED METHODS
+void ContentTab::setContentDir(const QDesktopServices::StandardLocation &location)
+{
+ m_ContentDir.setPath(QDesktopServices::storageLocation(location));
+}
+
+void ContentTab::setIcon(const QString &icon)
+{
+ m_Icon = QIcon(icon);
+}
+
+void ContentTab::populateListWidget()
+{
+ QFileInfoList fileList = m_ContentDir.entryInfoList(QDir::Files, QDir::Time);
+ foreach(QFileInfo item, fileList) {
+ new QListWidgetItem(m_Icon, itemName(item), this);
+ }
+}
+
+QString ContentTab::itemName(const QFileInfo &item)
+{
+ return QString(item.baseName() + "." + item.completeSuffix());
+}
+
+QUrl ContentTab::itemUrl(QListWidgetItem *item)
+{
+ return QUrl("file:///" + m_ContentDir.absolutePath() + "/" + item->text());
+}
+
+void ContentTab::keyPressEvent(QKeyEvent *event)
+{
+ switch (event->key()) {
+ case Qt::Key_Up:
+ if (currentRow() == 0) {
+ setCurrentRow(count() - 1);
+ } else {
+ setCurrentRow(currentRow() - 1);
+ }
+ break;
+ case Qt::Key_Down:
+ if (currentRow() == (count() - 1)) {
+ setCurrentRow(0);
+ } else {
+ setCurrentRow(currentRow() + 1);
+ }
+ break;
+ case Qt::Key_Select:
+ openItem(currentItem());
+ default:
+ QListWidget::keyPressEvent(event);
+ break;
+ }
+}
+
+void ContentTab::handleErrorInOpen(QListWidgetItem *item)
+{
+ Q_UNUSED(item);
+ QMessageBox::warning(this, tr("Operation Failed"), tr("Unkown error!"), QMessageBox::Close);
+}
+
+// NEW SLOTS
+void ContentTab::openItem(QListWidgetItem *item)
+{
+ bool ret = QDesktopServices::openUrl(itemUrl(item));
+ if (!ret)
+ handleErrorInOpen(item);
+}
+
+
+// End of File
diff --git a/demos/embedded/desktopservices/contenttab.h b/demos/embedded/desktopservices/contenttab.h
new file mode 100644
index 0000000..1840827
--- /dev/null
+++ b/demos/embedded/desktopservices/contenttab.h
@@ -0,0 +1,101 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef CONTENTTAB_H_
+#define CONTENTTAB_H_
+
+// EXTERNAL INCLUDES
+#include <QDir>
+#include <QUrl>
+#include <QIcon>
+#include <QFileInfo>
+#include <QListWidget>
+#include <QDesktopServices>
+
+// INTERNAL INCLUDES
+
+// FORWARD DECLARATIONS
+QT_BEGIN_NAMESPACE
+class QListWidgetItem;
+QT_END_NAMESPACE
+
+// CLASS DECLARATION
+
+/**
+* ContentTab class.
+*
+* This class implements general purpose tab for media files.
+*/
+class ContentTab : public QListWidget
+{
+ Q_OBJECT
+
+public: // Constructors & Destructors
+ ContentTab(QWidget *parent);
+ virtual ~ContentTab();
+
+public: // New Methods
+ virtual void init(const QDesktopServices::StandardLocation &location,
+ const QString &filter,
+ const QString &icon);
+
+protected: // New Methods
+ virtual void setContentDir(const QDesktopServices::StandardLocation &location);
+ virtual void setIcon(const QString &icon);
+ virtual void populateListWidget();
+ virtual QString itemName(const QFileInfo &item);
+ virtual QUrl itemUrl(QListWidgetItem *item);
+ virtual void handleErrorInOpen(QListWidgetItem *item);
+protected:
+ void keyPressEvent(QKeyEvent *event);
+
+public slots: // New Slots
+ virtual void openItem(QListWidgetItem *item);
+
+protected: // Owned variables
+ QDir m_ContentDir;
+ QIcon m_Icon;
+};
+
+
+#endif // CONTENTTAB_H_
+
+// End of File
diff --git a/demos/embedded/desktopservices/data/Explosion.wav b/demos/embedded/desktopservices/data/Explosion.wav
new file mode 100644
index 0000000..7b140b1
--- /dev/null
+++ b/demos/embedded/desktopservices/data/Explosion.wav
Binary files differ
diff --git a/demos/embedded/desktopservices/data/designer.png b/demos/embedded/desktopservices/data/designer.png
new file mode 100644
index 0000000..0988fce
--- /dev/null
+++ b/demos/embedded/desktopservices/data/designer.png
Binary files differ
diff --git a/demos/embedded/desktopservices/data/monkey_on_64x64.png b/demos/embedded/desktopservices/data/monkey_on_64x64.png
new file mode 100644
index 0000000..990f604
--- /dev/null
+++ b/demos/embedded/desktopservices/data/monkey_on_64x64.png
Binary files differ
diff --git a/demos/embedded/desktopservices/data/sax.mp3 b/demos/embedded/desktopservices/data/sax.mp3
new file mode 100644
index 0000000..0a078b1
--- /dev/null
+++ b/demos/embedded/desktopservices/data/sax.mp3
Binary files differ
diff --git a/demos/embedded/desktopservices/desktopservices.pro b/demos/embedded/desktopservices/desktopservices.pro
new file mode 100644
index 0000000..81fe16d
--- /dev/null
+++ b/demos/embedded/desktopservices/desktopservices.pro
@@ -0,0 +1,22 @@
+TEMPLATE = app
+TARGET =
+INCLUDEPATH += .
+
+HEADERS += desktopwidget.h contenttab.h linktab.h
+SOURCES += desktopwidget.cpp contenttab.cpp linktab.cpp main.cpp
+
+RESOURCES += desktopservices.qrc
+
+music.sources = data/*.mp3 data/*.wav
+music.path = /data/sounds/
+
+image.sources = data/*.png
+image.path = /data/images/
+
+DEPLOYMENT += music image
+
+symbian {
+ include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
+ TARGET.UID3 = 0xA000C611
+ ICON = ./resources/heart.svg
+}
diff --git a/demos/embedded/desktopservices/desktopservices.qrc b/demos/embedded/desktopservices/desktopservices.qrc
new file mode 100644
index 0000000..410175f
--- /dev/null
+++ b/demos/embedded/desktopservices/desktopservices.qrc
@@ -0,0 +1,8 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource prefix="/">
+ <file>resources/music.png</file>
+ <file>resources/photo.png</file>
+ <file>resources/browser.png</file>
+ <file>resources/message.png</file>
+</qresource>
+</RCC>
diff --git a/demos/embedded/desktopservices/desktopwidget.cpp b/demos/embedded/desktopservices/desktopwidget.cpp
new file mode 100644
index 0000000..015e8f3
--- /dev/null
+++ b/demos/embedded/desktopservices/desktopwidget.cpp
@@ -0,0 +1,90 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+// EXTERNAL INCLUDES
+#include <QTabWidget>
+#include <QVBoxLayout>
+#include <QDesktopServices>
+
+// INTERNAL INCLUDES
+#include "linktab.h"
+#include "contenttab.h"
+
+// CLASS HEADER
+#include "desktopwidget.h"
+
+// CONSTRUCTORS & DESTRUCTORS
+DesktopWidget::DesktopWidget(QWidget *parent) : QWidget(parent)
+
+{
+ QTabWidget *tabWidget = new QTabWidget(this);
+
+ // Images
+ ContentTab* imageTab = new ContentTab(tabWidget);
+ imageTab->init(QDesktopServices::PicturesLocation,
+ "*.png;*.jpg;*.jpeg;*.bmp;*.gif",
+ ":/resources/photo.png");
+ tabWidget->addTab(imageTab, tr("Images"));
+
+ // Music
+ ContentTab* musicTab = new ContentTab(tabWidget);
+ musicTab->init(QDesktopServices::MusicLocation,
+ "*.wav;*.mp3;*.mp4",
+ ":/resources/music.png");
+ tabWidget->addTab(musicTab, tr("Music"));
+
+ // Links
+ LinkTab* othersTab = new LinkTab(tabWidget);;
+ // Given icon file will be overriden by LinkTab
+ othersTab->init(QDesktopServices::PicturesLocation, "", "");
+ tabWidget->addTab(othersTab, tr("Links"));
+
+ // Layout
+ QVBoxLayout *layout = new QVBoxLayout;
+ layout->addWidget(tabWidget);
+ setLayout(layout);
+}
+
+DesktopWidget::~DesktopWidget()
+{
+}
+
+// End of file
diff --git a/demos/embedded/desktopservices/desktopwidget.h b/demos/embedded/desktopservices/desktopwidget.h
new file mode 100644
index 0000000..960127a
--- /dev/null
+++ b/demos/embedded/desktopservices/desktopwidget.h
@@ -0,0 +1,73 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef DESKTOPWIDGET_H_
+#define DESKTOPWIDGET_H_
+
+// EXTERNAL INCLUDES
+#include <QWidget>
+
+// INTERNAL INCLUDES
+
+// FORWARD DECLARATIONS
+QT_BEGIN_NAMESPACE
+class QTabWidget;
+QT_END_NAMESPACE
+
+// CLASS DECLARATION
+/**
+* DesktopWidget class.
+*
+* Implements the main top level widget for QDesktopServices demo app.
+*/
+class DesktopWidget : public QWidget
+{
+ Q_OBJECT
+
+public: // Constructors & Destructors
+ DesktopWidget(QWidget *parent);
+ ~DesktopWidget();
+
+};
+
+#endif // DESKTOPWIDGET_H_
+
+// End of file
diff --git a/demos/embedded/desktopservices/linktab.cpp b/demos/embedded/desktopservices/linktab.cpp
new file mode 100644
index 0000000..4ae43f0
--- /dev/null
+++ b/demos/embedded/desktopservices/linktab.cpp
@@ -0,0 +1,88 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+// EXTERNAL INCLUDES
+#include <QUrl>
+#include <QMessageBox>
+#include <QListWidgetItem>
+
+// INTERNAL INCLUDES
+
+// CLASS HEADER
+#include "linktab.h"
+
+LinkTab::LinkTab(QWidget *parent) :
+ ContentTab(parent)
+{
+}
+
+LinkTab::~LinkTab()
+{
+}
+
+void LinkTab::populateListWidget()
+{
+ m_WebItem = new QListWidgetItem(QIcon(":/resources/browser.png"), tr("Launch Browser"), this);
+ m_MailToItem = new QListWidgetItem(QIcon(":/resources/message.png"), tr("New e-mail"), this);
+}
+
+QUrl LinkTab::itemUrl(QListWidgetItem *item)
+{
+ if (m_WebItem == item) {
+ return QUrl(tr("http://qt.nokia.com"));
+ } else if (m_MailToItem == item) {
+ return QUrl(tr("mailto:qts60-feedback@trolltech.com?subject=QtS60 feedback&body=Hello"));
+ } else {
+ // We should never endup here
+ Q_ASSERT(false);
+ return QUrl();
+ }
+}
+void LinkTab::handleErrorInOpen(QListWidgetItem *item)
+{
+ if (m_MailToItem == item) {
+ QMessageBox::warning(this, tr("Operation Failed"), tr("Please check that you have\ne-mail account defined."), QMessageBox::Close);
+ } else {
+ ContentTab::handleErrorInOpen(item);
+ }
+}
+
+// End of file
diff --git a/demos/embedded/desktopservices/linktab.h b/demos/embedded/desktopservices/linktab.h
new file mode 100644
index 0000000..1ddd354
--- /dev/null
+++ b/demos/embedded/desktopservices/linktab.h
@@ -0,0 +1,86 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef LINKTAB_H_
+#define LINKTAB_H_
+
+// EXTERNAL INCLUDES
+
+// INTERNAL INCLUDES
+#include "contenttab.h"
+
+// FORWARD DECLARATIONS
+QT_BEGIN_NAMESPACE
+class QWidget;
+class QListWidgetItem;
+QT_END_NAMESPACE
+
+// CLASS DECLARATION
+
+/**
+* LinkTab class.
+*
+* This class implements tab for opening http and mailto links.
+*/
+class LinkTab : public ContentTab
+{
+ Q_OBJECT
+
+public: // Constructors & Destructors
+ LinkTab(QWidget *parent);
+ ~LinkTab();
+
+protected: // Derived Methods
+ virtual void populateListWidget();
+ virtual QUrl itemUrl(QListWidgetItem *item);
+ virtual void handleErrorInOpen(QListWidgetItem *item);
+
+private: // Used variables
+ QListWidgetItem *m_WebItem;
+ QListWidgetItem *m_MailToItem;
+
+private: // Owned variables
+
+};
+
+#endif // CONTENTTAB_H_
+
+// End of File
diff --git a/demos/embedded/desktopservices/main.cpp b/demos/embedded/desktopservices/main.cpp
new file mode 100644
index 0000000..c200f4b
--- /dev/null
+++ b/demos/embedded/desktopservices/main.cpp
@@ -0,0 +1,56 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QApplication>
+#include "desktopwidget.h"
+
+int main(int argc, char *argv[])
+{
+ Q_INIT_RESOURCE(desktopservices);
+
+ QApplication app(argc, argv);
+ DesktopWidget* myWidget = new DesktopWidget(0);
+ myWidget->showMaximized();
+
+ return app.exec();
+}
+
+// End of file
diff --git a/demos/embedded/desktopservices/resources/browser.png b/demos/embedded/desktopservices/resources/browser.png
new file mode 100644
index 0000000..28561e1
--- /dev/null
+++ b/demos/embedded/desktopservices/resources/browser.png
Binary files differ
diff --git a/demos/embedded/desktopservices/resources/heart.svg b/demos/embedded/desktopservices/resources/heart.svg
new file mode 100644
index 0000000..ba5f050
--- /dev/null
+++ b/demos/embedded/desktopservices/resources/heart.svg
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) --><svg viewBox="100 200 550 500" height="595.27559pt" id="svg1" inkscape:version="0.40+cvs" sodipodi:docbase="C:\Documents and Settings\Jon Phillips\My Documents\projects\clipart-project\submissions" sodipodi:docname="heart-left-highlight.svg" sodipodi:version="0.32" width="595.27559pt" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg">
+<metadata>
+<rdf:RDF xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+<cc:Work rdf:about="">
+<dc:title>Heart Left-Highlight</dc:title>
+<dc:description>This is a normal valentines day heart.</dc:description>
+<dc:subject>
+<rdf:Bag>
+<rdf:li>holiday</rdf:li>
+<rdf:li>valentines</rdf:li>
+<rdf:li></rdf:li>
+<rdf:li>valentine</rdf:li>
+<rdf:li>hash(0x8a091c0)</rdf:li>
+<rdf:li>hash(0x8a0916c)</rdf:li>
+<rdf:li>signs_and_symbols</rdf:li>
+<rdf:li>hash(0x8a091f0)</rdf:li>
+<rdf:li>day</rdf:li>
+</rdf:Bag>
+</dc:subject>
+<dc:publisher>
+<cc:Agent rdf:about="http://www.openclipart.org">
+<dc:title>Jon Phillips</dc:title>
+</cc:Agent>
+</dc:publisher>
+<dc:creator>
+<cc:Agent>
+<dc:title>Jon Phillips</dc:title>
+</cc:Agent>
+</dc:creator>
+<dc:rights>
+<cc:Agent>
+<dc:title>Jon Phillips</dc:title>
+</cc:Agent>
+</dc:rights>
+<dc:date></dc:date>
+<dc:format>image/svg+xml</dc:format>
+<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+<cc:license rdf:resource="http://web.resource.org/cc/PublicDomain"/>
+<dc:language>en</dc:language>
+</cc:Work>
+<cc:License rdf:about="http://web.resource.org/cc/PublicDomain">
+<cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+<cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+<cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+</cc:License>
+</rdf:RDF>
+</metadata>
+<defs id="defs3"/>
+<sodipodi:namedview bordercolor="#666666" borderopacity="1.0" id="base" inkscape:current-layer="layer1" inkscape:cx="549.40674" inkscape:cy="596.00159" inkscape:document-units="px" inkscape:guide-bbox="true" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:window-height="615" inkscape:window-width="866" inkscape:window-x="88" inkscape:window-y="116" inkscape:zoom="0.35000000" pagecolor="#ffffff" showguides="true"/>
+<g id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1">
+<path d="M 263.41570,235.14588 C 197.17570,235.14588 143.41575,288.90587 143.41575,355.14588 C 143.41575,489.90139 279.34890,525.23318 371.97820,658.45392 C 459.55244,526.05056 600.54070,485.59932 600.54070,355.14588 C 600.54070,288.90588 546.78080,235.14587 480.54070,235.14588 C 432.49280,235.14588 391.13910,263.51631 371.97820,304.33338 C 352.81740,263.51630 311.46370,235.14587 263.41570,235.14588 z " id="path7" sodipodi:nodetypes="ccccccc" style="fill:#e60000;fill-opacity:1.0000000;stroke:#000000;stroke-width:18.700001;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"/>
+<path d="M 265.00000,253.59375 C 207.04033,253.59375 160.00000,300.63407 160.00000,358.59375 C 160.00000,476.50415 278.91857,507.43251 359.96875,624.00000 C 366.52868,614.08205 220.00000,478.47309 220.00000,378.59375 C 220.00000,320.63407 267.04033,273.59375 325.00000,273.59375 C 325.50453,273.59375 325.99718,273.64912 326.50000,273.65625 C 309.22436,261.07286 288.00557,253.59374 265.00000,253.59375 z " id="path220" sodipodi:nodetypes="ccccccc" style="fill:#e6e6e6;fill-opacity:0.64556962;stroke:none;stroke-width:18.700001;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"/>
+</g>
+</svg>
diff --git a/demos/embedded/desktopservices/resources/message.png b/demos/embedded/desktopservices/resources/message.png
new file mode 100644
index 0000000..e30052b
--- /dev/null
+++ b/demos/embedded/desktopservices/resources/message.png
Binary files differ
diff --git a/demos/embedded/desktopservices/resources/music.png b/demos/embedded/desktopservices/resources/music.png
new file mode 100644
index 0000000..11a57bb
--- /dev/null
+++ b/demos/embedded/desktopservices/resources/music.png
Binary files differ
diff --git a/demos/embedded/desktopservices/resources/photo.png b/demos/embedded/desktopservices/resources/photo.png
new file mode 100644
index 0000000..5ba15c1
--- /dev/null
+++ b/demos/embedded/desktopservices/resources/photo.png
Binary files differ
diff --git a/demos/embedded/digiflip/digiflip.cpp b/demos/embedded/digiflip/digiflip.cpp
new file mode 100644
index 0000000..b822659
--- /dev/null
+++ b/demos/embedded/digiflip/digiflip.cpp
@@ -0,0 +1,425 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtCore>
+#include <QtGui>
+
+class Digits: public QWidget
+{
+ Q_OBJECT
+
+public:
+
+ enum {
+ Slide,
+ Flip,
+ Rotate
+ };
+
+ Digits(QWidget *parent)
+ : QWidget(parent)
+ , m_number(0)
+ , m_transition(Slide)
+ {
+ setAttribute(Qt::WA_OpaquePaintEvent, true);
+ setAttribute(Qt::WA_NoSystemBackground, true);
+ connect(&m_animator, SIGNAL(frameChanged(int)), SLOT(update()));
+ m_animator.setFrameRange(0, 100);
+ m_animator.setDuration(600);
+ m_animator.setCurveShape(QTimeLine::EaseInOutCurve);
+ }
+
+ void setTransition(int tr) {
+ m_transition = tr;
+ }
+
+ int transition() const {
+ return m_transition;
+ }
+
+ void setNumber(int n) {
+ if (m_number != n) {
+ m_number = qBound(0, n, 99);
+ preparePixmap();
+ update();
+ }
+ }
+
+ void flipTo(int n) {
+ if (m_number != n) {
+ m_number = qBound(0, n, 99);
+ m_lastPixmap = m_pixmap;
+ preparePixmap();
+ m_animator.stop();
+ m_animator.start();
+ }
+ }
+
+protected:
+
+ void drawFrame(QPainter *p, const QRect &rect) {
+ p->setPen(Qt::NoPen);
+ QLinearGradient gradient(rect.topLeft(), rect.bottomLeft());
+ gradient.setColorAt(0.00, QColor(245, 245, 245));
+ gradient.setColorAt(0.49, QColor(192, 192, 192));
+ gradient.setColorAt(0.51, QColor(245, 245, 245));
+ gradient.setColorAt(1.00, QColor(192, 192, 192));
+ p->setBrush(gradient);
+ QRect r = rect;
+ p->drawRoundedRect(r, 15, 15, Qt::RelativeSize);
+ r.adjust(1, 4, -1, -4);
+ p->setPen(QColor(181, 181, 181));
+ p->setBrush(Qt::NoBrush);
+ p->drawRoundedRect(r, 15, 15, Qt::RelativeSize);
+ p->setPen(QColor(159, 159, 159));
+ int y = rect.top() + rect.height() / 2 - 1;
+ p->drawLine(rect.left(), y, rect.right(), y);
+ }
+
+ QPixmap drawDigits(int n, const QRect &rect) {
+
+ int scaleFactor = 2;
+#if defined(Q_OS_SYMBIAN)
+ if (rect.height() > 240)
+ scaleFactor = 1;
+#endif
+
+ QString str = QString::number(n);
+ if (str.length() == 1)
+ str.prepend("0");
+
+ QFont font;
+ font.setFamily("Helvetica");
+ int fontHeight = scaleFactor * 0.55 * rect.height();
+ font.setPixelSize(fontHeight);
+ font.setBold(true);
+
+ QPixmap pixmap(rect.size() * scaleFactor);
+ pixmap.fill(Qt::transparent);
+
+ QLinearGradient gradient(QPoint(0, 0), QPoint(0, pixmap.height()));
+ gradient.setColorAt(0.00, QColor(128, 128, 128));
+ gradient.setColorAt(0.49, QColor(64, 64, 64));
+ gradient.setColorAt(0.51, QColor(128, 128, 128));
+ gradient.setColorAt(1.00, QColor(16, 16, 16));
+
+ QPainter p;
+ p.begin(&pixmap);
+ p.setFont(font);
+ QPen pen;
+ pen.setBrush(QBrush(gradient));
+ p.setPen(pen);
+ p.drawText(pixmap.rect(), Qt::AlignCenter, str);
+ p.end();
+
+ return pixmap.scaledToWidth(width(), Qt::SmoothTransformation);
+ }
+
+ void preparePixmap() {
+ m_pixmap = QPixmap(size());
+ m_pixmap.fill(Qt::transparent);
+ QPainter p;
+ p.begin(&m_pixmap);
+ p.drawPixmap(0, 0, drawDigits(m_number, rect()));
+ p.end();
+ }
+
+ void resizeEvent(QResizeEvent*) {
+ preparePixmap();
+ update();
+ }
+
+ void paintStatic() {
+ QPainter p(this);
+ p.fillRect(rect(), Qt::black);
+
+ int pad = width() / 10;
+ drawFrame(&p, rect().adjusted(pad, pad, -pad, -pad));
+ p.drawPixmap(0, 0, m_pixmap);
+ }
+
+ void paintSlide() {
+ QPainter p(this);
+ p.fillRect(rect(), Qt::black);
+
+ int pad = width() / 10;
+ QRect fr = rect().adjusted(pad, pad, -pad, -pad);
+ drawFrame(&p, fr);
+ p.setClipRect(fr);
+
+ int y = height() * m_animator.currentFrame() / 100;
+ p.drawPixmap(0, y, m_lastPixmap);
+ p.drawPixmap(0, y - height(), m_pixmap);
+ }
+
+ void paintFlip() {
+ QPainter p(this);
+#if !defined(Q_OS_SYMBIAN)
+ p.setRenderHint(QPainter::SmoothPixmapTransform, true);
+ p.setRenderHint(QPainter::Antialiasing, true);
+#endif
+ p.fillRect(rect(), Qt::black);
+
+ int hw = width() / 2;
+ int hh = height() / 2;
+
+ // behind is the new pixmap
+ int pad = width() / 10;
+ QRect fr = rect().adjusted(pad, pad, -pad, -pad);
+ drawFrame(&p, fr);
+ p.drawPixmap(0, 0, m_pixmap);
+
+ int index = m_animator.currentFrame();
+
+ if (index <= 50) {
+
+ // the top part of the old pixmap is flipping
+ int angle = -180 * index / 100;
+ QTransform transform;
+ transform.translate(hw, hh);
+ transform.rotate(angle, Qt::XAxis);
+ p.setTransform(transform);
+ drawFrame(&p, fr.adjusted(-hw, -hh, -hw, -hh));
+ p.drawPixmap(-hw, -hh, m_lastPixmap);
+
+ // the bottom part is still the old pixmap
+ p.resetTransform();
+ p.setClipRect(0, hh, width(), hh);
+ drawFrame(&p, fr);
+ p.drawPixmap(0, 0, m_lastPixmap);
+ } else {
+
+ p.setClipRect(0, hh, width(), hh);
+
+ // the bottom part is still the old pixmap
+ drawFrame(&p, fr);
+ p.drawPixmap(0, 0, m_lastPixmap);
+
+ // the bottom part of the new pixmap is flipping
+ int angle = 180 - 180 * m_animator.currentFrame() / 100;
+ QTransform transform;
+ transform.translate(hw, hh);
+ transform.rotate(angle, Qt::XAxis);
+ p.setTransform(transform);
+ drawFrame(&p, fr.adjusted(-hw, -hh, -hw, -hh));
+ p.drawPixmap(-hw, -hh, m_pixmap);
+
+ }
+
+ }
+
+ void paintRotate() {
+ QPainter p(this);
+
+ int pad = width() / 10;
+ QRect fr = rect().adjusted(pad, pad, -pad, -pad);
+ drawFrame(&p, fr);
+ p.setClipRect(fr);
+
+ int angle1 = -180 * m_animator.currentFrame() / 100;
+ int angle2 = 180 - 180 * m_animator.currentFrame() / 100;
+ int angle = (m_animator.currentFrame() <= 50) ? angle1 : angle2;
+ QPixmap pix = (m_animator.currentFrame() <= 50) ? m_lastPixmap : m_pixmap;
+
+ QTransform transform;
+ transform.translate(width() / 2, height() / 2);
+ transform.rotate(angle, Qt::XAxis);
+
+ p.setTransform(transform);
+ p.setRenderHint(QPainter::SmoothPixmapTransform, true);
+ p.drawPixmap(-width() / 2, -height() / 2, pix);
+ }
+
+ void paintEvent(QPaintEvent *event) {
+ Q_UNUSED(event);
+ if (m_animator.state() == QTimeLine::Running) {
+ if (m_transition == Slide)
+ paintSlide();
+ if (m_transition == Flip)
+ paintFlip();
+ if (m_transition == Rotate)
+ paintRotate();
+ } else {
+ paintStatic();
+ }
+ }
+
+private:
+ int m_number;
+ int m_transition;
+ QPixmap m_pixmap;
+ QPixmap m_lastPixmap;
+ QTimeLine m_animator;
+};
+
+class DigiFlip : public QMainWindow
+{
+ Q_OBJECT
+
+public:
+ DigiFlip(QWidget *parent = 0)
+ : QMainWindow(parent)
+ {
+ m_hour = new Digits(this);
+ m_hour->show();
+ m_minute = new Digits(this);
+ m_minute->show();
+
+ QPalette pal = palette();
+ pal.setColor(QPalette::Window, Qt::black);
+ setPalette(pal);
+
+ m_ticker.start(1000, this);
+ QTime t = QTime::currentTime();
+ m_hour->setNumber(t.hour());
+ m_minute->setNumber(t.minute());
+ updateTime();
+
+ QAction *slideAction = new QAction("&Slide", this);
+ QAction *flipAction = new QAction("&Flip", this);
+ QAction *rotateAction = new QAction("&Rotate", this);
+ connect(slideAction, SIGNAL(triggered()), SLOT(chooseSlide()));
+ connect(flipAction, SIGNAL(triggered()), SLOT(chooseFlip()));
+ connect(rotateAction, SIGNAL(triggered()), SLOT(chooseRotate()));
+#if defined(Q_OS_SYMBIAN)
+ menuBar()->addAction(slideAction);
+ menuBar()->addAction(flipAction);
+ menuBar()->addAction(rotateAction);
+#else
+ addAction(slideAction);
+ addAction(flipAction);
+ addAction(rotateAction);
+ setContextMenuPolicy(Qt::ActionsContextMenu);
+#endif
+ }
+
+ void updateTime() {
+ QTime t = QTime::currentTime();
+ m_hour->flipTo(t.hour());
+ m_minute->flipTo(t.minute());
+ QString str = t.toString("hh:mm:ss");
+ str.prepend(": ");
+ if (m_hour->transition() == Digits::Slide)
+ str.prepend("Slide");
+ if (m_hour->transition() == Digits::Flip)
+ str.prepend("Flip");
+ if (m_hour->transition() == Digits::Rotate)
+ str.prepend("Rotate");
+ setWindowTitle(str);
+ }
+
+ void switchTransition(int delta) {
+ int i = (m_hour->transition() + delta + 3) % 3;
+ m_hour->setTransition(i);
+ m_minute->setTransition(i);
+ updateTime();
+ }
+
+protected:
+ void resizeEvent(QResizeEvent*) {
+ int digitsWidth = width() / 2;
+ int digitsHeight = digitsWidth * 1.2;
+
+ int y = (height() - digitsHeight) / 3;
+
+ m_hour->resize(digitsWidth, digitsHeight);
+ m_hour->move(0, y);
+
+ m_minute->resize(digitsWidth, digitsHeight);
+ m_minute->move(width() / 2, y);
+ }
+
+ void timerEvent(QTimerEvent*) {
+ updateTime();
+ }
+
+ void keyPressEvent(QKeyEvent *event) {
+ if (event->key() == Qt::Key_Right) {
+ switchTransition(1);
+ event->accept();
+ }
+ if (event->key() == Qt::Key_Left) {
+ switchTransition(-1);
+ event->accept();
+ }
+ }
+
+private slots:
+ void chooseSlide() {
+ m_hour->setTransition(0);
+ m_minute->setTransition(0);
+ updateTime();
+ }
+
+ void chooseFlip() {
+ m_hour->setTransition(1);
+ m_minute->setTransition(1);
+ updateTime();
+ }
+
+ void chooseRotate() {
+ m_hour->setTransition(2);
+ m_minute->setTransition(2);
+ updateTime();
+ }
+
+private:
+ QBasicTimer m_ticker;
+ Digits *m_hour;
+ Digits *m_minute;
+};
+
+#include "digiflip.moc"
+
+int main(int argc, char *argv[])
+{
+ QApplication app(argc, argv);
+
+ DigiFlip time;
+#if defined(Q_OS_SYMBIAN)
+ time.showMaximized();
+#else
+ time.resize(320, 240);
+ time.show();
+#endif
+
+ return app.exec();
+}
diff --git a/demos/embedded/digiflip/digiflip.pro b/demos/embedded/digiflip/digiflip.pro
new file mode 100644
index 0000000..6654088
--- /dev/null
+++ b/demos/embedded/digiflip/digiflip.pro
@@ -0,0 +1 @@
+SOURCES = digiflip.cpp
diff --git a/demos/embedded/embedded.pro b/demos/embedded/embedded.pro
index 7428b9f..3d814f7 100644
--- a/demos/embedded/embedded.pro
+++ b/demos/embedded/embedded.pro
@@ -1,9 +1,22 @@
TEMPLATE = subdirs
-SUBDIRS = styledemo
+SUBDIRS = styledemo raycasting flickable digiflip
contains(QT_CONFIG, svg) {
SUBDIRS += embeddedsvgviewer \
- fluidlauncher
+ desktopservices
+ !vxworks:!qnx:SUBDIRS += fluidlauncher
+}
+
+contains(QT_CONFIG, network) {
+ SUBDIRS += lightmaps
+ SUBDIRS += flightinfo
+ contains(QT_CONFIG, svg) {
+ SUBDIRS += weatherinfo
+ }
+}
+
+contains(QT_CONFIG, webkit) {
+ SUBDIRS += anomaly
}
# install
@@ -11,3 +24,4 @@ sources.files = README *.pro
sources.path = $$[QT_INSTALL_DEMOS]/embedded
INSTALLS += sources
+symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
diff --git a/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.cpp b/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.cpp
index 949dc9f..9ca3530 100644
--- a/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.cpp
+++ b/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.cpp
@@ -143,7 +143,7 @@ void EmbeddedSvgViewer::updateImageScale()
}
-void EmbeddedSvgViewer::resizeEvent ( QResizeEvent * event )
+void EmbeddedSvgViewer::resizeEvent ( QResizeEvent * /* event */ )
{
qreal origZoom = m_zoomLevel;
diff --git a/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.pro b/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.pro
index 505e607..9401871 100644
--- a/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.pro
+++ b/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.pro
@@ -9,8 +9,13 @@ RESOURCES += embeddedsvgviewer.qrc
target.path = $$[QT_INSTALL_DEMOS]/embedded/embeddedsvgviewer
sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.html *.svg files
sources.path = $$[QT_INSTALL_DEMOS]/embedded/embeddedsvgviewer
-INSTALLS += target sources
+INSTALLS += target sources
-wince*: {
+wince* {
DEPLOYMENT_PLUGIN += qsvg
}
+
+symbian {
+ include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
+ TARGET.UID3 = 0xA000A640
+}
diff --git a/demos/embedded/flickable/flickable.cpp b/demos/embedded/flickable/flickable.cpp
new file mode 100644
index 0000000..8fbefe6
--- /dev/null
+++ b/demos/embedded/flickable/flickable.cpp
@@ -0,0 +1,284 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "flickable.h"
+
+#include <QtCore>
+#include <QtGui>
+
+class FlickableTicker: QObject
+{
+public:
+ FlickableTicker(Flickable *scroller) {
+ m_scroller = scroller;
+ }
+
+ void start(int interval) {
+ if (!m_timer.isActive())
+ m_timer.start(interval, this);
+ }
+
+ void stop() {
+ m_timer.stop();
+ }
+
+protected:
+ void timerEvent(QTimerEvent *event) {
+ Q_UNUSED(event);
+ m_scroller->tick();
+ }
+
+private:
+ Flickable *m_scroller;
+ QBasicTimer m_timer;
+};
+
+class FlickablePrivate
+{
+public:
+ typedef enum {
+ Steady,
+ Pressed,
+ ManualScroll,
+ AutoScroll,
+ Stop
+ } State;
+
+ State state;
+ int threshold;
+ QPoint pressPos;
+ QPoint offset;
+ QPoint delta;
+ QPoint speed;
+ FlickableTicker *ticker;
+ QTime timeStamp;
+ QWidget *target;
+ QList<QEvent*> ignoreList;
+};
+
+Flickable::Flickable()
+{
+ d = new FlickablePrivate;
+ d->state = FlickablePrivate::Steady;
+ d->threshold = 10;
+ d->ticker = new FlickableTicker(this);
+ d->timeStamp = QTime::currentTime();
+ d->target = 0;
+}
+
+Flickable::~Flickable()
+{
+ delete d;
+}
+
+void Flickable::setThreshold(int th)
+{
+ if (th >= 0)
+ d->threshold = th;
+}
+
+int Flickable::threshold() const
+{
+ return d->threshold;
+}
+
+void Flickable::setAcceptMouseClick(QWidget *target)
+{
+ d->target = target;
+}
+
+static QPoint deaccelerate(const QPoint &speed, int a = 1, int max = 64)
+{
+ int x = qBound(-max, speed.x(), max);
+ int y = qBound(-max, speed.y(), max);
+ x = (x == 0) ? x : (x > 0) ? qMax(0, x - a) : qMin(0, x + a);
+ y = (y == 0) ? y : (y > 0) ? qMax(0, y - a) : qMin(0, y + a);
+ return QPoint(x, y);
+}
+
+void Flickable::handleMousePress(QMouseEvent *event)
+{
+ event->ignore();
+
+ if (event->button() != Qt::LeftButton)
+ return;
+
+ if (d->ignoreList.removeAll(event))
+ return;
+
+ switch (d->state) {
+
+ case FlickablePrivate::Steady:
+ event->accept();
+ d->state = FlickablePrivate::Pressed;
+ d->pressPos = event->pos();
+ break;
+
+ case FlickablePrivate::AutoScroll:
+ event->accept();
+ d->state = FlickablePrivate::Stop;
+ d->speed = QPoint(0, 0);
+ d->pressPos = event->pos();
+ d->offset = scrollOffset();
+ d->ticker->stop();
+ break;
+
+ default:
+ break;
+ }
+}
+
+void Flickable::handleMouseRelease(QMouseEvent *event)
+{
+ event->ignore();
+
+ if (event->button() != Qt::LeftButton)
+ return;
+
+ if (d->ignoreList.removeAll(event))
+ return;
+
+ QPoint delta;
+
+ switch (d->state) {
+
+ case FlickablePrivate::Pressed:
+ event->accept();
+ d->state = FlickablePrivate::Steady;
+ if (d->target) {
+ QMouseEvent *event1 = new QMouseEvent(QEvent::MouseButtonPress,
+ d->pressPos, Qt::LeftButton,
+ Qt::LeftButton, Qt::NoModifier);
+ QMouseEvent *event2 = new QMouseEvent(*event);
+ d->ignoreList << event1;
+ d->ignoreList << event2;
+ QApplication::postEvent(d->target, event1);
+ QApplication::postEvent(d->target, event2);
+ }
+ break;
+
+ case FlickablePrivate::ManualScroll:
+ event->accept();
+ delta = event->pos() - d->pressPos;
+ if (d->timeStamp.elapsed() > 100) {
+ d->timeStamp = QTime::currentTime();
+ d->speed = delta - d->delta;
+ d->delta = delta;
+ }
+ d->offset = scrollOffset();
+ d->pressPos = event->pos();
+ if (d->speed == QPoint(0, 0)) {
+ d->state = FlickablePrivate::Steady;
+ } else {
+ d->speed /= 4;
+ d->state = FlickablePrivate::AutoScroll;
+ d->ticker->start(20);
+ }
+ break;
+
+ case FlickablePrivate::Stop:
+ event->accept();
+ d->state = FlickablePrivate::Steady;
+ d->offset = scrollOffset();
+ break;
+
+ default:
+ break;
+ }
+}
+
+void Flickable::handleMouseMove(QMouseEvent *event)
+{
+ event->ignore();
+
+ if (!(event->buttons() & Qt::LeftButton))
+ return;
+
+ if (d->ignoreList.removeAll(event))
+ return;
+
+ QPoint delta;
+
+ switch (d->state) {
+
+ case FlickablePrivate::Pressed:
+ case FlickablePrivate::Stop:
+ delta = event->pos() - d->pressPos;
+ if (delta.x() > d->threshold || delta.x() < -d->threshold ||
+ delta.y() > d->threshold || delta.y() < -d->threshold) {
+ d->timeStamp = QTime::currentTime();
+ d->state = FlickablePrivate::ManualScroll;
+ d->delta = QPoint(0, 0);
+ d->pressPos = event->pos();
+ event->accept();
+ }
+ break;
+
+ case FlickablePrivate::ManualScroll:
+ event->accept();
+ delta = event->pos() - d->pressPos;
+ setScrollOffset(d->offset - delta);
+ if (d->timeStamp.elapsed() > 100) {
+ d->timeStamp = QTime::currentTime();
+ d->speed = delta - d->delta;
+ d->delta = delta;
+ }
+ break;
+
+ default:
+ break;
+ }
+}
+
+void Flickable::tick()
+{
+ if (d->state == FlickablePrivate:: AutoScroll) {
+ d->speed = deaccelerate(d->speed);
+ setScrollOffset(d->offset - d->speed);
+ d->offset = scrollOffset();
+ if (d->speed == QPoint(0, 0)) {
+ d->state = FlickablePrivate::Steady;
+ d->ticker->stop();
+ }
+ } else {
+ d->ticker->stop();
+ }
+}
diff --git a/demos/embedded/flickable/flickable.h b/demos/embedded/flickable/flickable.h
new file mode 100644
index 0000000..26497db
--- /dev/null
+++ b/demos/embedded/flickable/flickable.h
@@ -0,0 +1,80 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef FLICKABLE_H
+#define FLICKABLE_H
+
+class QMouseEvent;
+class QPoint;
+class QWidget;
+
+class FlickableTicker;
+class FlickablePrivate;
+
+class Flickable
+{
+public:
+
+ Flickable();
+ virtual ~Flickable();
+
+ void setThreshold(int threshold);
+ int threshold() const;
+
+ void setAcceptMouseClick(QWidget *target);
+
+ void handleMousePress(QMouseEvent *event);
+ void handleMouseMove(QMouseEvent *event);
+ void handleMouseRelease(QMouseEvent *event);
+
+protected:
+ virtual QPoint scrollOffset() const = 0;
+ virtual void setScrollOffset(const QPoint &offset) = 0;
+
+private:
+ void tick();
+
+private:
+ FlickablePrivate *d;
+ friend class FlickableTicker;
+};
+
+#endif // FLICKABLE_H
diff --git a/demos/embedded/flickable/flickable.pro b/demos/embedded/flickable/flickable.pro
new file mode 100644
index 0000000..3c021dd
--- /dev/null
+++ b/demos/embedded/flickable/flickable.pro
@@ -0,0 +1,2 @@
+SOURCES = flickable.cpp main.cpp
+HEADERS = flickable.h
diff --git a/demos/embedded/flickable/main.cpp b/demos/embedded/flickable/main.cpp
new file mode 100644
index 0000000..cc024d9
--- /dev/null
+++ b/demos/embedded/flickable/main.cpp
@@ -0,0 +1,233 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtCore>
+#include <QtGui>
+
+#include "flickable.h"
+
+// Returns a list of two-word color names
+static QStringList colorPairs(int max)
+{
+ // capitalize the first letter
+ QStringList colors = QColor::colorNames();
+ colors.removeAll("transparent");
+ int num = colors.count();
+ for (int c = 0; c < num; ++c)
+ colors[c] = colors[c][0].toUpper() + colors[c].mid(1);
+
+ // combine two colors, e.g. "lime skyblue"
+ QStringList combinedColors;
+ for (int i = 0; i < num; ++i)
+ for (int j = 0; j < num; ++j)
+ combinedColors << QString("%1 %2").arg(colors[i]).arg(colors[j]);
+
+ // randomize it
+ colors.clear();
+ while (combinedColors.count()) {
+ int i = qrand() % combinedColors.count();
+ colors << combinedColors[i];
+ combinedColors.removeAt(i);
+ if (colors.count() == max)
+ break;
+ }
+
+ return colors;
+}
+
+class ColorList : public QWidget, public Flickable
+{
+ Q_OBJECT
+
+public:
+ ColorList(QWidget *parent = 0)
+ : QWidget(parent) {
+ m_offset = 0;
+ m_height = QFontMetrics(font()).height() + 5;
+ m_highlight = -1;
+ m_selected = -1;
+
+ QStringList colors = colorPairs(999);
+ for (int i = 0; i < colors.count(); ++i) {
+ QString c = colors[i];
+ QString str;
+ str.sprintf("%4d", i + 1);
+ m_colorNames << (str + " " + c);
+
+ QStringList duet = c.split(' ');
+ m_firstColor << duet[0];
+ m_secondColor << duet[1];
+ }
+
+ setAttribute(Qt::WA_OpaquePaintEvent, true);
+ setAttribute(Qt::WA_NoSystemBackground, true);
+
+ setMouseTracking(true);
+ Flickable::setAcceptMouseClick(this);
+ }
+
+protected:
+ // reimplement from Flickable
+ virtual QPoint scrollOffset() const {
+ return QPoint(0, m_offset);
+ }
+
+ // reimplement from Flickable
+ virtual void setScrollOffset(const QPoint &offset) {
+ int yy = offset.y();
+ if (yy != m_offset) {
+ m_offset = qBound(0, yy, m_height * m_colorNames.count() - height());
+ update();
+ }
+ }
+
+protected:
+ void paintEvent(QPaintEvent *event) {
+ QPainter p(this);
+ p.fillRect(event->rect(), Qt::white);
+ int start = m_offset / m_height;
+ int y = start * m_height - m_offset;
+ if (m_offset <= 0) {
+ start = 0;
+ y = -m_offset;
+ }
+ int end = start + height() / m_height + 1;
+ if (end > m_colorNames.count() - 1)
+ end = m_colorNames.count() - 1;
+ for (int i = start; i <= end; ++i, y += m_height) {
+
+ p.setBrush(Qt::NoBrush);
+ p.setPen(Qt::black);
+ if (i == m_highlight) {
+ p.fillRect(0, y, width(), m_height, QColor(0, 64, 128));
+ p.setPen(Qt::white);
+ }
+ if (i == m_selected) {
+ p.fillRect(0, y, width(), m_height, QColor(0, 128, 240));
+ p.setPen(Qt::white);
+ }
+
+ p.drawText(m_height + 2, y, width(), m_height, Qt::AlignVCenter, m_colorNames[i]);
+
+ p.setPen(Qt::NoPen);
+ p.setBrush(m_firstColor[i]);
+ p.drawRect(1, y + 1, m_height - 2, m_height - 2);
+ p.setBrush(m_secondColor[i]);
+ p.drawRect(5, y + 5, m_height - 11, m_height - 11);
+ }
+ p.end();
+ }
+
+ void keyReleaseEvent(QKeyEvent *event) {
+ if (event->key() == Qt::Key_Down) {
+ m_offset += 20;
+ event->accept();
+ update();
+ return;
+ }
+ if (event->key() == Qt::Key_Up) {
+ m_offset -= 20;
+ event->accept();
+ update();
+ return;
+ }
+ }
+
+ void mousePressEvent(QMouseEvent *event) {
+ Flickable::handleMousePress(event);
+ if (event->isAccepted())
+ return;
+
+ if (event->button() == Qt::LeftButton) {
+ int y = event->pos().y() + m_offset;
+ int i = y / m_height;
+ if (i != m_highlight) {
+ m_highlight = i;
+ m_selected = -1;
+ update();
+ }
+ event->accept();
+ }
+ }
+
+ void mouseMoveEvent(QMouseEvent *event) {
+ Flickable::handleMouseMove(event);
+ }
+
+ void mouseReleaseEvent(QMouseEvent *event) {
+ Flickable::handleMouseRelease(event);
+ if (event->isAccepted())
+ return;
+
+ if (event->button() == Qt::LeftButton) {
+ m_selected = m_highlight;
+ event->accept();
+ update();
+ }
+ }
+
+private:
+ int m_offset;
+ int m_height;
+ int m_highlight;
+ int m_selected;
+ QStringList m_colorNames;
+ QList<QColor> m_firstColor;
+ QList<QColor> m_secondColor;
+};
+
+#include "main.moc"
+
+int main(int argc, char *argv[])
+{
+ QApplication app(argc, argv);
+
+ ColorList list;
+ list.setWindowTitle("Kinetic Scrolling");
+#ifdef Q_OS_SYMBIAN
+ list.showMaximized();
+#else
+ list.resize(320, 320);
+ list.show();
+#endif
+
+ return app.exec();
+}
diff --git a/demos/embedded/flightinfo/aircraft.png b/demos/embedded/flightinfo/aircraft.png
new file mode 100644
index 0000000..0845cb4
--- /dev/null
+++ b/demos/embedded/flightinfo/aircraft.png
Binary files differ
diff --git a/demos/embedded/flightinfo/flightinfo.cpp b/demos/embedded/flightinfo/flightinfo.cpp
new file mode 100644
index 0000000..de3a9e9
--- /dev/null
+++ b/demos/embedded/flightinfo/flightinfo.cpp
@@ -0,0 +1,415 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtCore>
+#include <QtGui>
+#include <QtNetwork>
+
+#if defined (Q_OS_SYMBIAN)
+#include "sym_iap_util.h"
+#endif
+
+#include "ui_form.h"
+
+#define FLIGHTVIEW_URL "http://mobile.flightview.com/TrackByFlight.aspx"
+#define FLIGHTVIEW_RANDOM "http://mobile.flightview.com/TrackSampleFlight.aspx"
+
+// strips all invalid constructs that might trip QXmlStreamReader
+static QString sanitized(const QString &xml)
+{
+ QString data = xml;
+
+ // anything up to the html tag
+ int i = data.indexOf("<html");
+ if (i > 0)
+ data.remove(0, i - 1);
+
+ // everything inside the head tag
+ i = data.indexOf("<head");
+ if (i > 0)
+ data.remove(i, data.indexOf("</head>") - i + 7);
+
+ // invalid link for JavaScript code
+ while (true) {
+ i = data.indexOf("onclick=\"gotoUrl(");
+ if (i < 0)
+ break;
+ data.remove(i, data.indexOf('\"', i + 9) - i + 1);
+ }
+
+ // all inline frames
+ while (true) {
+ i = data.indexOf("<iframe");
+ if (i < 0)
+ break;
+ data.remove(i, data.indexOf("</iframe>") - i + 8);
+ }
+
+ // entities
+ data.remove("&nbsp;");
+ data.remove("&copy;");
+
+ return data;
+}
+
+class FlightInfo : public QMainWindow
+{
+ Q_OBJECT
+
+private:
+
+ Ui_Form ui;
+ QUrl m_url;
+ QDate m_searchDate;
+ QPixmap m_map;
+
+public:
+
+ FlightInfo(QMainWindow *parent = 0): QMainWindow(parent) {
+
+ QWidget *w = new QWidget(this);
+ ui.setupUi(w);
+ setCentralWidget(w);
+
+ ui.searchBar->hide();
+ ui.infoBox->hide();
+ connect(ui.searchButton, SIGNAL(clicked()), SLOT(startSearch()));
+ connect(ui.flightEdit, SIGNAL(returnPressed()), SLOT(startSearch()));
+
+ setWindowTitle("Flight Info");
+ QTimer::singleShot(0, this, SLOT(delayedInit()));
+
+ // Rendered from the public-domain vectorized aircraft
+ // http://openclipart.org/media/people/Jarno
+ m_map = QPixmap(":/aircraft.png");
+
+ QAction *searchTodayAction = new QAction("Today's Flight", this);
+ QAction *searchYesterdayAction = new QAction("Yesterday's Flight", this);
+ QAction *randomAction = new QAction("Random Flight", this);
+ connect(searchTodayAction, SIGNAL(triggered()), SLOT(today()));
+ connect(searchYesterdayAction, SIGNAL(triggered()), SLOT(yesterday()));
+ connect(randomAction, SIGNAL(triggered()), SLOT(randomFlight()));
+#if defined(Q_OS_SYMBIAN)
+ menuBar()->addAction(searchTodayAction);
+ menuBar()->addAction(searchYesterdayAction);
+ menuBar()->addAction(randomAction);
+#else
+ addAction(searchTodayAction);
+ addAction(searchYesterdayAction);
+ addAction(randomAction);
+ setContextMenuPolicy(Qt::ActionsContextMenu);
+#endif
+ }
+
+private slots:
+ void delayedInit() {
+#if defined(Q_OS_SYMBIAN)
+ qt_SetDefaultIap();
+#endif
+ }
+
+
+ void handleNetworkData(QNetworkReply *networkReply) {
+ if (!networkReply->error()) {
+ // Assume UTF-8 encoded
+ QByteArray data = networkReply->readAll();
+ QString xml = QString::fromUtf8(data);
+ digest(xml);
+ }
+ networkReply->deleteLater();
+ networkReply->manager()->deleteLater();
+ }
+
+ void handleMapData(QNetworkReply *networkReply) {
+ if (!networkReply->error()) {
+ m_map.loadFromData(networkReply->readAll());
+ update();
+ }
+ networkReply->deleteLater();
+ networkReply->manager()->deleteLater();
+ }
+
+ void today() {
+ QDateTime timestamp = QDateTime::currentDateTime();
+ m_searchDate = timestamp.date();
+ searchFlight();
+ }
+
+ void yesterday() {
+ QDateTime timestamp = QDateTime::currentDateTime();
+ timestamp = timestamp.addDays(-1);
+ m_searchDate = timestamp.date();
+ searchFlight();
+ }
+
+ void searchFlight() {
+ ui.searchBar->show();
+ ui.infoBox->hide();
+ ui.flightStatus->hide();
+ ui.flightName->setText("Enter flight number");
+ m_map = QPixmap();
+ update();
+ }
+
+ void startSearch() {
+ ui.searchBar->hide();
+ QString flight = ui.flightEdit->text().simplified();
+ if (!flight.isEmpty())
+ request(flight, m_searchDate);
+ }
+
+ void randomFlight() {
+ request(QString(), QDate::currentDate());
+ }
+
+public slots:
+
+ void request(const QString &flightCode, const QDate &date) {
+
+ setWindowTitle("Loading...");
+
+ QString code = flightCode.simplified();
+ QString airlineCode = code.left(2).toUpper();
+ QString flightNumber = code.mid(2, code.length());
+
+ ui.flightName->setText("Searching for " + code);
+
+ m_url = QUrl(FLIGHTVIEW_URL);
+ m_url.addEncodedQueryItem("view", "detail");
+ m_url.addEncodedQueryItem("al", QUrl::toPercentEncoding(airlineCode));
+ m_url.addEncodedQueryItem("fn", QUrl::toPercentEncoding(flightNumber));
+ m_url.addEncodedQueryItem("dpdat", QUrl::toPercentEncoding(date.toString("yyyyMMdd")));
+
+ if (code.isEmpty()) {
+ // random flight as sample
+ m_url = QUrl(FLIGHTVIEW_RANDOM);
+ ui.flightName->setText("Getting a random flight...");
+ }
+
+ QNetworkAccessManager *manager = new QNetworkAccessManager(this);
+ connect(manager, SIGNAL(finished(QNetworkReply*)),
+ this, SLOT(handleNetworkData(QNetworkReply*)));
+ manager->get(QNetworkRequest(m_url));
+ }
+
+
+private:
+
+ void digest(const QString &content) {
+
+ setWindowTitle("Flight Info");
+ QString data = sanitized(content);
+
+ // do we only get the flight list?
+ // we grab the first leg in the flight list
+ // then fetch another URL for the real flight info
+ int i = data.indexOf("a href=\"?view=detail");
+ if (i > 0) {
+ QString href = data.mid(i, data.indexOf('\"', i + 8) - i + 1);
+ QRegExp regex("dpap=([A-Za-z0-9]+)");
+ regex.indexIn(href);
+ QString airport = regex.cap(1);
+ m_url.addEncodedQueryItem("dpap", QUrl::toPercentEncoding(airport));
+ QNetworkAccessManager *manager = new QNetworkAccessManager(this);
+ connect(manager, SIGNAL(finished(QNetworkReply*)),
+ this, SLOT(handleNetworkData(QNetworkReply*)));
+ manager->get(QNetworkRequest(m_url));
+ return;
+ }
+
+ QXmlStreamReader xml(data);
+ bool inFlightName = false;
+ bool inFlightStatus = false;
+ bool inFlightMap = false;
+ bool inFieldName = false;
+ bool inFieldValue = false;
+
+ QString flightName;
+ QString flightStatus;
+ QStringList fieldNames;
+ QStringList fieldValues;
+
+ while (!xml.atEnd()) {
+ xml.readNext();
+
+ if (xml.tokenType() == QXmlStreamReader::StartElement) {
+ QStringRef className = xml.attributes().value("class");
+ inFlightName |= xml.name() == "h1";
+ inFlightStatus |= className == "FlightDetailHeaderStatus";
+ inFlightMap |= className == "flightMap";
+ if (xml.name() == "td" && !className.isEmpty()) {
+ QString cn = className.toString();
+ if (cn.contains("fieldTitle")) {
+ inFieldName = true;
+ fieldNames += QString();
+ fieldValues += QString();
+ }
+ if (cn.contains("fieldValue"))
+ inFieldValue = true;
+ }
+ if (xml.name() == "img" && inFlightMap) {
+ QString src = xml.attributes().value("src").toString();
+ src.prepend("http://mobile.flightview.com");
+ QUrl url = QUrl::fromPercentEncoding(src.toAscii());
+ QNetworkAccessManager *manager = new QNetworkAccessManager(this);
+ connect(manager, SIGNAL(finished(QNetworkReply*)),
+ this, SLOT(handleMapData(QNetworkReply*)));
+ manager->get(QNetworkRequest(url));
+ }
+ }
+
+ if (xml.tokenType() == QXmlStreamReader::EndElement) {
+ inFlightName &= xml.name() != "h1";
+ inFlightStatus &= xml.name() != "div";
+ inFlightMap &= xml.name() != "div";
+ inFieldName &= xml.name() != "td";
+ inFieldValue &= xml.name() != "td";
+ }
+
+ if (xml.tokenType() == QXmlStreamReader::Characters) {
+ if (inFlightName)
+ flightName += xml.text();
+ if (inFlightStatus)
+ flightStatus += xml.text();
+ if (inFieldName)
+ fieldNames.last() += xml.text();
+ if (inFieldValue)
+ fieldValues.last() += xml.text();
+ }
+ }
+
+ if (fieldNames.isEmpty()) {
+ QString code = ui.flightEdit->text().simplified().left(10);
+ QString msg = QString("Flight %1 is not found").arg(code);
+ ui.flightName->setText(msg);
+ return;
+ }
+
+ ui.flightName->setText(flightName);
+ flightStatus.remove("Status: ");
+ ui.flightStatus->setText(flightStatus);
+ ui.flightStatus->show();
+
+ QStringList whiteList;
+ whiteList << "Departure";
+ whiteList << "Arrival";
+ whiteList << "Scheduled";
+ whiteList << "Takeoff";
+ whiteList << "Estimated";
+ whiteList << "Term-Gate";
+
+ QString text;
+ text = QString("<table width=%1>").arg(width() - 25);
+ for (int i = 0; i < fieldNames.count(); i++) {
+ QString fn = fieldNames[i].simplified();
+ if (fn.endsWith(':'))
+ fn = fn.left(fn.length() - 1);
+ if (!whiteList.contains(fn))
+ continue;
+
+ QString fv = fieldValues[i].simplified();
+ bool special = false;
+ special |= fn.startsWith("Departure");
+ special |= fn.startsWith("Arrival");
+ text += "<tr>";
+ if (special) {
+ text += "<td align=center colspan=2>";
+ text += "<b><font size=+1>" + fv + "</font></b>";
+ text += "</td>";
+ } else {
+ text += "<td align=right>";
+ text += fn;
+ text += " : ";
+ text += "&nbsp;";
+ text += "</td>";
+ text += "<td>";
+ text += fv;
+ text += "</td>";
+ }
+ text += "</tr>";
+ }
+ text += "</table>";
+ ui.detailedInfo->setText(text);
+ ui.infoBox->show();
+ }
+
+ void resizeEvent(QResizeEvent *event) {
+ Q_UNUSED(event);
+ ui.detailedInfo->setMaximumWidth(width() - 25);
+ }
+
+ void paintEvent(QPaintEvent *event) {
+ QMainWindow::paintEvent(event);
+ QPainter p(this);
+ p.fillRect(rect(), QColor(131, 171, 210));
+ if (!m_map.isNull()) {
+ int x = (width() - m_map.width()) / 2;
+ int space = ui.infoBox->pos().y();
+ if (!ui.infoBox->isVisible())
+ space = height();
+ int top = ui.titleBox->height();
+ int y = qMax(top, (space - m_map.height()) / 2);
+ p.drawPixmap(x, y, m_map);
+ }
+ p.end();
+ }
+
+};
+
+
+#include "flightinfo.moc"
+
+int main(int argc, char **argv)
+{
+ Q_INIT_RESOURCE(flightinfo);
+
+ QApplication app(argc, argv);
+
+ FlightInfo w;
+#if defined(Q_OS_SYMBIAN)
+ w.showMaximized();
+#else
+ w.resize(360, 504);
+ w.show();
+#endif
+
+ return app.exec();
+}
diff --git a/demos/embedded/flightinfo/flightinfo.pro b/demos/embedded/flightinfo/flightinfo.pro
new file mode 100644
index 0000000..5edb175
--- /dev/null
+++ b/demos/embedded/flightinfo/flightinfo.pro
@@ -0,0 +1,12 @@
+TEMPLATE = app
+TARGET = flightinfo
+SOURCES = flightinfo.cpp
+FORMS += form.ui
+RESOURCES = flightinfo.qrc
+QT += network
+
+symbian {
+ HEADERS += $$QT_SOURCE_TREE/examples/network/ftp/sym_iap_util.h
+ LIBS += -lesock -lconnmon
+ TARGET.CAPABILITY = NetworkServices
+}
diff --git a/demos/embedded/flightinfo/flightinfo.qrc b/demos/embedded/flightinfo/flightinfo.qrc
new file mode 100644
index 0000000..babea7e
--- /dev/null
+++ b/demos/embedded/flightinfo/flightinfo.qrc
@@ -0,0 +1,5 @@
+<RCC>
+ <qresource prefix="/" >
+ <file>aircraft.png</file>
+ </qresource>
+</RCC>
diff --git a/demos/embedded/flightinfo/form.ui b/demos/embedded/flightinfo/form.ui
new file mode 100644
index 0000000..3a24c75
--- /dev/null
+++ b/demos/embedded/flightinfo/form.ui
@@ -0,0 +1,226 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Form</class>
+ <widget class="QWidget" name="Form">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>220</width>
+ <height>171</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Form</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QFrame" name="titleBox">
+ <property name="styleSheet">
+ <string>QFrame {
+background-color: #45629a;
+}
+
+QLabel {
+color: white;
+}</string>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::NoFrame</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Raised</enum>
+ </property>
+ <property name="lineWidth">
+ <number>0</number>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <property name="margin">
+ <number>4</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="flightName">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Powered by FlightView</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="flightStatus">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="font">
+ <font>
+ <weight>75</weight>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="styleSheet">
+ <string>background-color: white;
+color: #45629a;</string>
+ </property>
+ <property name="lineWidth">
+ <number>0</number>
+ </property>
+ <property name="text">
+ <string>Ready</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ <property name="margin">
+ <number>4</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QFrame" name="searchBar">
+ <property name="frameShape">
+ <enum>QFrame::NoFrame</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Raised</enum>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <property name="margin">
+ <number>5</number>
+ </property>
+ <item>
+ <widget class="QLineEdit" name="flightEdit">
+ <property name="styleSheet">
+ <string>color: black;
+border: 1px solid black;
+background: white;
+selection-background-color: lightgray;</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="searchButton">
+ <property name="styleSheet">
+ <string>color: rgb(255, 255, 255);
+background-color: rgb(85, 85, 255);
+padding: 2px;
+border: 2px solid rgb(0, 0, 127);</string>
+ </property>
+ <property name="text">
+ <string>Search</string>
+ </property>
+ <property name="toolButtonStyle">
+ <enum>Qt::ToolButtonTextBesideIcon</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>58</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QFrame" name="infoBox">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="MinimumExpanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="styleSheet">
+ <string>QFrame { border: 2px solid white;
+border-radius: 10px;
+margin: 5px;
+background-color: rgba(69, 98, 154, 192); }</string>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::NoFrame</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Raised</enum>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <property name="margin">
+ <number>5</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="detailedInfo">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="MinimumExpanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="styleSheet">
+ <string>color: white;
+border: none;
+background-color: none;</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="textFormat">
+ <enum>Qt::RichText</enum>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ <property name="textInteractionFlags">
+ <set>Qt::NoTextInteraction</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/demos/embedded/fluidlauncher/config_s60/config.xml b/demos/embedded/fluidlauncher/config_s60/config.xml
new file mode 100644
index 0000000..192a2e3
--- /dev/null
+++ b/demos/embedded/fluidlauncher/config_s60/config.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<demolauncher>
+ <demos>
+ <example filename="embeddedsvgviewer" name="SVG Viewer" image="screenshots/embeddedsvgviewer_s60.png" args="/data/images/qt/demos/embeddedsvgviewer/shapes.svg"/>
+ <example filename="styledemo" name="Stylesheets" image="screenshots/styledemo_s60.png"/>
+ <example filename="deform" name="Vector Deformation" image="screenshots/deform.png" args="-small-screen"/>
+ <example filename="pathstroke" name="Path Stroking" image="screenshots/pathstroke.png" args="-small-screen"/>
+ <example filename="wiggly" name="Wiggly Text" image="screenshots/wiggly_s60.png" args="-small-screen"/>
+ <example filename="ftp" name="Ftp Client" image="screenshots/ftp_s60.png"/>
+ <example filename="context2d" name="Context2d" image="screenshots/context2d_s60.png"/>
+ <example filename="saxbookmarks" name="SaxBookmarks" image="screenshots/saxbookmarks_s60.png"/>
+ <example filename="desktopservices" name="Desktop Services" image="screenshots/desktopservices_s60.png"/>
+ <example filename="fridgemagnets" name="Fridge Magnets" image="screenshots/fridgemagnets_s60.png" args="-small-screen"/>
+ <example filename="drilldown" name="Drilldown" image="screenshots/drilldown_s60.png"/>
+ <example filename="softkeys" name="Softkeys" image="screenshots/softkeys_s60.png"/>
+ <example filename="anomaly" name="Anomaly Browser" image="screenshots/anomaly_s60.png"/>
+ <example filename="raycasting" name="Ray casting" image="screenshots/raycasting.png"/>
+ <example filename="lightmaps" name="OpenStreetMap" image="screenshots/lightmaps.png"/>
+ <example filename="flightinfo" name="Flight Info" image="screenshots/flightinfo_s60.png"/>
+ <example filename="weatherinfo" name="Weather Info" image="screenshots/weatherinfo.png"/>
+ <example filename="flickable" name="Kinetic Scrolling" image="screenshots/flickable.png"/>
+ <example filename="digiflip" name="Flipping Clock" image="screenshots/digiflip.png"/>
+ </demos>
+ <slideshow timeout="60000" interval="10000">
+ <imagedir dir="slides"/>
+ </slideshow>
+</demolauncher>
diff --git a/demos/embedded/fluidlauncher/fluidlauncher.cpp b/demos/embedded/fluidlauncher/fluidlauncher.cpp
index f8bd008..3655f27 100644
--- a/demos/embedded/fluidlauncher/fluidlauncher.cpp
+++ b/demos/embedded/fluidlauncher/fluidlauncher.cpp
@@ -39,12 +39,14 @@
**
****************************************************************************/
-#include <QtXml>
+#include <QXmlStreamReader>
#include "fluidlauncher.h"
#define DEFAULT_INPUT_TIMEOUT 10000
+#define SIZING_FACTOR_HEIGHT 6/10
+#define SIZING_FACTOR_WIDTH 6/10
FluidLauncher::FluidLauncher(QStringList* args)
{
@@ -62,7 +64,11 @@ FluidLauncher::FluidLauncher(QStringList* args)
inputTimer->setSingleShot(true);
inputTimer->setInterval(DEFAULT_INPUT_TIMEOUT);
- pictureFlowWidget->setSlideSize(QSize( (screen_size.width()*2)/5, (screen_size.height()*2)/5 ));
+ const int h = screen_size.height() * SIZING_FACTOR_HEIGHT;
+ const int w = screen_size.width() * SIZING_FACTOR_WIDTH;
+ const int hh = qMin(h, w);
+ const int ww = hh / 3 * 2;
+ pictureFlowWidget->setSlideSize(QSize(ww, hh));
bool success;
int configIndex = args->indexOf("-config");
@@ -100,61 +106,97 @@ bool FluidLauncher::loadConfig(QString configPath)
slideShowWidget->clearImages();
- QDomDocument xmlDoc;
- xmlDoc.setContent(&xmlFile, true);
+ xmlFile.open(QIODevice::ReadOnly);
+ QXmlStreamReader reader(&xmlFile);
+ while (!reader.atEnd()) {
+ reader.readNext();
- QDomElement rootElement = xmlDoc.documentElement();
-
- // Process the demos node:
- QDomNodeList demoNodes = rootElement.firstChildElement("demos").elementsByTagName("example");
- for (int i=0; i<demoNodes.size(); i++) {
- QDomElement element = demoNodes.item(i).toElement();
-
- if (element.hasAttribute("filename")) {
- DemoApplication* newDemo = new DemoApplication(
- element.attribute("filename"),
- element.attribute("name", "Unamed Demo"),
- element.attribute("image"),
- element.attribute("args").split(" "));
- demoList.append(newDemo);
+ if (reader.isStartElement()) {
+ if (reader.name() == "demos")
+ parseDemos(reader);
+ else if(reader.name() == "slideshow")
+ parseSlideshow(reader);
}
}
+ if (reader.hasError()) {
+ qDebug() << QString("Error parsing %1 on line %2 column %3: \n%4")
+ .arg(configPath)
+ .arg(reader.lineNumber())
+ .arg(reader.columnNumber())
+ .arg(reader.errorString());
+ }
- // Process the slideshow node:
- QDomElement slideshowElement = rootElement.firstChildElement("slideshow");
+ // Append an exit Item
+ DemoApplication* exitItem = new DemoApplication(QString(), QLatin1String("Exit Embedded Demo"), QString(), QStringList());
+ demoList.append(exitItem);
- if (slideshowElement.hasAttribute("timeout")) {
- bool valid;
- int timeout = slideshowElement.attribute("timeout").toInt(&valid);
- if (valid)
- inputTimer->setInterval(timeout);
- }
+ return true;
+}
- if (slideshowElement.hasAttribute("interval")) {
- bool valid;
- int interval = slideshowElement.attribute("interval").toInt(&valid);
- if (valid)
- slideShowWidget->setSlideInterval(interval);
+
+void FluidLauncher::parseDemos(QXmlStreamReader& reader)
+{
+ while (!reader.atEnd()) {
+ reader.readNext();
+ if (reader.isStartElement() && reader.name() == "example") {
+ QXmlStreamAttributes attrs = reader.attributes();
+ QStringRef filename = attrs.value("filename");
+ if (!filename.isEmpty()) {
+ QStringRef name = attrs.value("name");
+ QStringRef image = attrs.value("image");
+ QStringRef args = attrs.value("args");
+
+ DemoApplication* newDemo = new DemoApplication(
+ filename.toString(),
+ name.isEmpty() ? "Unamed Demo" : name.toString(),
+ image.toString(),
+ args.toString().split(" "));
+ demoList.append(newDemo);
+ }
+ } else if(reader.isEndElement() && reader.name() == "demos") {
+ return;
+ }
}
+}
- for (QDomNode node=slideshowElement.firstChild(); !node.isNull(); node=node.nextSibling()) {
- QDomElement element = node.toElement();
+void FluidLauncher::parseSlideshow(QXmlStreamReader& reader)
+{
+ QXmlStreamAttributes attrs = reader.attributes();
+
+ QStringRef timeout = attrs.value("timeout");
+ bool valid;
+ if (!timeout.isEmpty()) {
+ int t = timeout.toString().toInt(&valid);
+ if (valid)
+ inputTimer->setInterval(t);
+ }
- if (element.tagName() == "imagedir")
- slideShowWidget->addImageDir(element.attribute("dir"));
- else if (element.tagName() == "image")
- slideShowWidget->addImage(element.attribute("image"));
+ QStringRef interval = attrs.value("interval");
+ if (!interval.isEmpty()) {
+ int i = interval.toString().toInt(&valid);
+ if (valid)
+ slideShowWidget->setSlideInterval(i);
}
- // Append an exit Item
- DemoApplication* exitItem = new DemoApplication(QString(), QLatin1String("Exit Embedded Demo"), QString(), QStringList());
- demoList.append(exitItem);
+ while (!reader.atEnd()) {
+ reader.readNext();
+ if (reader.isStartElement()) {
+ QXmlStreamAttributes attrs = reader.attributes();
+ if (reader.name() == "imagedir") {
+ QStringRef dir = attrs.value("dir");
+ slideShowWidget->addImageDir(dir.toString());
+ } else if(reader.name() == "image") {
+ QStringRef image = attrs.value("image");
+ slideShowWidget->addImage(image.toString());
+ }
+ } else if(reader.isEndElement() && reader.name() == "slideshow") {
+ return;
+ }
+ }
- return true;
}
-
void FluidLauncher::populatePictureFlow()
{
pictureFlowWidget->setSlideCount(demoList.count());
diff --git a/demos/embedded/fluidlauncher/fluidlauncher.h b/demos/embedded/fluidlauncher/fluidlauncher.h
index cf6bd3a..a280a2e 100644
--- a/demos/embedded/fluidlauncher/fluidlauncher.h
+++ b/demos/embedded/fluidlauncher/fluidlauncher.h
@@ -44,6 +44,7 @@
#include <QtGui>
#include <QTimer>
+#include <QStringRef>
#include "pictureflow.h"
#include "slideshow.h"
@@ -73,7 +74,8 @@ private:
bool loadConfig(QString configPath);
void populatePictureFlow();
void switchToSlideshow();
-
+ void parseDemos(QXmlStreamReader& reader);
+ void parseSlideshow(QXmlStreamReader& reader);
};
diff --git a/demos/embedded/fluidlauncher/fluidlauncher.pro b/demos/embedded/fluidlauncher/fluidlauncher.pro
index 76d12ad..522ccf3 100644
--- a/demos/embedded/fluidlauncher/fluidlauncher.pro
+++ b/demos/embedded/fluidlauncher/fluidlauncher.pro
@@ -1,8 +1,7 @@
TEMPLATE = app
-TARGET =
+TARGET =
DEPENDPATH += .
INCLUDEPATH += .
-QT += xml
# Input
HEADERS += \
@@ -40,7 +39,8 @@ wince*{
$$QT_BUILD_TREE/demos/pathstroke/$${BUILD_DIR}/pathstroke.exe \
$$QT_BUILD_TREE/examples/graphicsview/elasticnodes/$${BUILD_DIR}/elasticnodes.exe \
$$QT_BUILD_TREE/examples/widgets/wiggly/$${BUILD_DIR}/wiggly.exe \
- $$QT_BUILD_TREE/examples/painting/concentriccircles/$${BUILD_DIR}/concentriccircles.exe
+ $$QT_BUILD_TREE/examples/painting/concentriccircles/$${BUILD_DIR}/concentriccircles.exe \
+ $$QT_BUILD_TREE/examples/draganddrop/$${BUILD_DIR}/fridgemagnets.exe
executables.path = .
@@ -54,3 +54,92 @@ wince*{
DEPLOYMENT_PLUGIN += qgif qjpeg qmng qsvg
}
+
+symbian {
+ load(data_caging_paths)
+
+ TARGET.UID3 = 0xA000A641
+
+ executables.sources = \
+ embeddedsvgviewer.exe \
+ styledemo.exe \
+ deform.exe \
+ pathstroke.exe \
+ wiggly.exe \
+ ftp.exe \
+ saxbookmarks.exe \
+ desktopservices.exe \
+ fridgemagnets.exe \
+ drilldown.exe \
+ softkeys.exe
+
+ contains(QT_CONFIG, webkit): executables.sources += anomaly.exe
+ contains(QT_CONFIG, script): executables.sources += context2d.exe
+
+ executables.path = /sys/bin
+
+ reg_resource.sources = \
+ $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/embeddedsvgviewer_reg.rsc \
+ $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/styledemo_reg.rsc \
+ $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/deform_reg.rsc \
+ $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/pathstroke_reg.rsc \
+ $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/wiggly_reg.rsc \
+ $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/ftp_reg.rsc\
+ $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/saxbookmarks_reg.rsc \
+ $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/desktopservices_reg.rsc \
+ $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/fridgemagnets_reg.rsc \
+ $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/drilldown_reg.rsc \
+ $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/softkeys_reg.rsc
+
+ contains(QT_CONFIG, webkit): reg_resource.sources += $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/anomaly_reg.rsc
+ contains(QT_CONFIG, script): reg_resource.sources += $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/context2d_reg.rsc
+
+ reg_resource.path = $$REG_RESOURCE_IMPORT_DIR
+
+ resource.sources = \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/embeddedsvgviewer.rsc \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/styledemo.rsc \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/deform.rsc \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/pathstroke.rsc \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/wiggly.rsc \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/ftp.rsc\
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/saxbookmarks.rsc \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/desktopservices.rsc \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/fridgemagnets.rsc \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/drilldown.rsc \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/softkeys.rsc
+ contains(QT_CONFIG, webkit): resource.sources += $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/anomaly.rsc
+ contains(QT_CONFIG, script): resource.sources += $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/context2d.rsc
+
+ resource.path = $$APP_RESOURCE_DIR
+
+ mifs.sources = \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/0xA000C611.mif
+ mifs.path = $$APP_RESOURCE_DIR
+
+ files.sources = $$PWD/screenshots $$PWD/slides
+ files.path = .
+
+ config.sources = $$PWD/config_s60/config.xml
+ config.path = .
+
+ viewerimages.sources = $$PWD/../embeddedsvgviewer/shapes.svg
+ viewerimages.path = /data/images/qt/demos/embeddedsvgviewer
+
+ desktopservices_music.sources = \
+ $$PWD/../desktopservices/data/*.mp3 \
+ $$PWD/../desktopservices/data/*.wav
+ desktopservices_music.path = /data/sounds
+
+ desktopservices_images.sources = $$PWD/../desktopservices/data/*.png
+ desktopservices_images.path = /data/images
+
+ saxbookmarks.sources = $$PWD/../../../examples/xml/saxbookmarks/frank.xbel
+ saxbookmarks.sources += $$PWD/../../../examples/xml/saxbookmarks/jennifer.xbel
+ saxbookmarks.path = /data/qt/saxbookmarks
+
+ DEPLOYMENT += config files executables viewerimages saxbookmarks reg_resource resource \
+ mifs desktopservices_music desktopservices_images
+
+ TARGET.EPOCHEAPSIZE = 100000 20000000
+}
diff --git a/demos/embedded/fluidlauncher/pictureflow.cpp b/demos/embedded/fluidlauncher/pictureflow.cpp
index 16e58a0..9eeaa26 100644
--- a/demos/embedded/fluidlauncher/pictureflow.cpp
+++ b/demos/embedded/fluidlauncher/pictureflow.cpp
@@ -3,6 +3,10 @@
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
** Contact: Nokia Corporation (qt-info@nokia.com)
**
+** This file is part of the QtGui module of the Qt Toolkit.
+**
+** This is a version of the Pictureflow animated image show widget modified by Nokia.
+**
** This file is part of the ActiveQt framework of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
@@ -82,6 +86,14 @@
#include <QDebug>
+static const int captionFontSize =
+#ifdef Q_WS_S60
+ 8;
+#else
+ 14;
+#endif
+
+
// uncomment this to enable bilinear filtering for texture mapping
// gives much better rendering, at the cost of memory space
// #define PICTUREFLOW_BILINEAR_FILTER
@@ -134,134 +146,134 @@ inline PFreal floatToFixed(float val)
// warning: regenerate the table if IANGLE_MAX and PFREAL_SHIFT are changed!
static const PFreal sinTable[IANGLE_MAX] = {
- 3, 9, 15, 21, 28, 34, 40, 47,
- 53, 59, 65, 72, 78, 84, 90, 97,
- 103, 109, 115, 122, 128, 134, 140, 147,
- 153, 159, 165, 171, 178, 184, 190, 196,
- 202, 209, 215, 221, 227, 233, 239, 245,
- 251, 257, 264, 270, 276, 282, 288, 294,
- 300, 306, 312, 318, 324, 330, 336, 342,
- 347, 353, 359, 365, 371, 377, 383, 388,
- 394, 400, 406, 412, 417, 423, 429, 434,
- 440, 446, 451, 457, 463, 468, 474, 479,
- 485, 491, 496, 501, 507, 512, 518, 523,
- 529, 534, 539, 545, 550, 555, 561, 566,
- 571, 576, 581, 587, 592, 597, 602, 607,
- 612, 617, 622, 627, 632, 637, 642, 647,
- 652, 656, 661, 666, 671, 675, 680, 685,
- 690, 694, 699, 703, 708, 712, 717, 721,
- 726, 730, 735, 739, 743, 748, 752, 756,
- 760, 765, 769, 773, 777, 781, 785, 789,
- 793, 797, 801, 805, 809, 813, 816, 820,
- 824, 828, 831, 835, 839, 842, 846, 849,
- 853, 856, 860, 863, 866, 870, 873, 876,
- 879, 883, 886, 889, 892, 895, 898, 901,
- 904, 907, 910, 913, 916, 918, 921, 924,
- 927, 929, 932, 934, 937, 939, 942, 944,
- 947, 949, 951, 954, 956, 958, 960, 963,
- 965, 967, 969, 971, 973, 975, 977, 978,
- 980, 982, 984, 986, 987, 989, 990, 992,
- 994, 995, 997, 998, 999, 1001, 1002, 1003,
- 1004, 1006, 1007, 1008, 1009, 1010, 1011, 1012,
- 1013, 1014, 1015, 1015, 1016, 1017, 1018, 1018,
- 1019, 1019, 1020, 1020, 1021, 1021, 1022, 1022,
- 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
- 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1022,
- 1022, 1022, 1021, 1021, 1020, 1020, 1019, 1019,
- 1018, 1018, 1017, 1016, 1015, 1015, 1014, 1013,
- 1012, 1011, 1010, 1009, 1008, 1007, 1006, 1004,
- 1003, 1002, 1001, 999, 998, 997, 995, 994,
- 992, 990, 989, 987, 986, 984, 982, 980,
- 978, 977, 975, 973, 971, 969, 967, 965,
- 963, 960, 958, 956, 954, 951, 949, 947,
- 944, 942, 939, 937, 934, 932, 929, 927,
- 924, 921, 918, 916, 913, 910, 907, 904,
- 901, 898, 895, 892, 889, 886, 883, 879,
- 876, 873, 870, 866, 863, 860, 856, 853,
- 849, 846, 842, 839, 835, 831, 828, 824,
- 820, 816, 813, 809, 805, 801, 797, 793,
- 789, 785, 781, 777, 773, 769, 765, 760,
- 756, 752, 748, 743, 739, 735, 730, 726,
- 721, 717, 712, 708, 703, 699, 694, 690,
- 685, 680, 675, 671, 666, 661, 656, 652,
- 647, 642, 637, 632, 627, 622, 617, 612,
- 607, 602, 597, 592, 587, 581, 576, 571,
- 566, 561, 555, 550, 545, 539, 534, 529,
- 523, 518, 512, 507, 501, 496, 491, 485,
- 479, 474, 468, 463, 457, 451, 446, 440,
- 434, 429, 423, 417, 412, 406, 400, 394,
- 388, 383, 377, 371, 365, 359, 353, 347,
- 342, 336, 330, 324, 318, 312, 306, 300,
- 294, 288, 282, 276, 270, 264, 257, 251,
- 245, 239, 233, 227, 221, 215, 209, 202,
- 196, 190, 184, 178, 171, 165, 159, 153,
- 147, 140, 134, 128, 122, 115, 109, 103,
- 97, 90, 84, 78, 72, 65, 59, 53,
- 47, 40, 34, 28, 21, 15, 9, 3,
- -4, -10, -16, -22, -29, -35, -41, -48,
- -54, -60, -66, -73, -79, -85, -91, -98,
- -104, -110, -116, -123, -129, -135, -141, -148,
- -154, -160, -166, -172, -179, -185, -191, -197,
- -203, -210, -216, -222, -228, -234, -240, -246,
- -252, -258, -265, -271, -277, -283, -289, -295,
- -301, -307, -313, -319, -325, -331, -337, -343,
- -348, -354, -360, -366, -372, -378, -384, -389,
- -395, -401, -407, -413, -418, -424, -430, -435,
- -441, -447, -452, -458, -464, -469, -475, -480,
- -486, -492, -497, -502, -508, -513, -519, -524,
- -530, -535, -540, -546, -551, -556, -562, -567,
- -572, -577, -582, -588, -593, -598, -603, -608,
- -613, -618, -623, -628, -633, -638, -643, -648,
- -653, -657, -662, -667, -672, -676, -681, -686,
- -691, -695, -700, -704, -709, -713, -718, -722,
- -727, -731, -736, -740, -744, -749, -753, -757,
- -761, -766, -770, -774, -778, -782, -786, -790,
- -794, -798, -802, -806, -810, -814, -817, -821,
- -825, -829, -832, -836, -840, -843, -847, -850,
- -854, -857, -861, -864, -867, -871, -874, -877,
- -880, -884, -887, -890, -893, -896, -899, -902,
- -905, -908, -911, -914, -917, -919, -922, -925,
- -928, -930, -933, -935, -938, -940, -943, -945,
- -948, -950, -952, -955, -957, -959, -961, -964,
- -966, -968, -970, -972, -974, -976, -978, -979,
- -981, -983, -985, -987, -988, -990, -991, -993,
- -995, -996, -998, -999, -1000, -1002, -1003, -1004,
- -1005, -1007, -1008, -1009, -1010, -1011, -1012, -1013,
- -1014, -1015, -1016, -1016, -1017, -1018, -1019, -1019,
- -1020, -1020, -1021, -1021, -1022, -1022, -1023, -1023,
- -1023, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
- -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1023,
- -1023, -1023, -1022, -1022, -1021, -1021, -1020, -1020,
- -1019, -1019, -1018, -1017, -1016, -1016, -1015, -1014,
- -1013, -1012, -1011, -1010, -1009, -1008, -1007, -1005,
- -1004, -1003, -1002, -1000, -999, -998, -996, -995,
- -993, -991, -990, -988, -987, -985, -983, -981,
- -979, -978, -976, -974, -972, -970, -968, -966,
- -964, -961, -959, -957, -955, -952, -950, -948,
- -945, -943, -940, -938, -935, -933, -930, -928,
- -925, -922, -919, -917, -914, -911, -908, -905,
- -902, -899, -896, -893, -890, -887, -884, -880,
- -877, -874, -871, -867, -864, -861, -857, -854,
- -850, -847, -843, -840, -836, -832, -829, -825,
- -821, -817, -814, -810, -806, -802, -798, -794,
- -790, -786, -782, -778, -774, -770, -766, -761,
- -757, -753, -749, -744, -740, -736, -731, -727,
- -722, -718, -713, -709, -704, -700, -695, -691,
- -686, -681, -676, -672, -667, -662, -657, -653,
- -648, -643, -638, -633, -628, -623, -618, -613,
- -608, -603, -598, -593, -588, -582, -577, -572,
- -567, -562, -556, -551, -546, -540, -535, -530,
- -524, -519, -513, -508, -502, -497, -492, -486,
- -480, -475, -469, -464, -458, -452, -447, -441,
- -435, -430, -424, -418, -413, -407, -401, -395,
- -389, -384, -378, -372, -366, -360, -354, -348,
- -343, -337, -331, -325, -319, -313, -307, -301,
- -295, -289, -283, -277, -271, -265, -258, -252,
- -246, -240, -234, -228, -222, -216, -210, -203,
- -197, -191, -185, -179, -172, -166, -160, -154,
- -148, -141, -135, -129, -123, -116, -110, -104,
- -98, -91, -85, -79, -73, -66, -60, -54,
- -48, -41, -35, -29, -22, -16, -10, -4
+ 3, 9, 15, 21, 28, 34, 40, 47,
+ 53, 59, 65, 72, 78, 84, 90, 97,
+ 103, 109, 115, 122, 128, 134, 140, 147,
+ 153, 159, 165, 171, 178, 184, 190, 196,
+ 202, 209, 215, 221, 227, 233, 239, 245,
+ 251, 257, 264, 270, 276, 282, 288, 294,
+ 300, 306, 312, 318, 324, 330, 336, 342,
+ 347, 353, 359, 365, 371, 377, 383, 388,
+ 394, 400, 406, 412, 417, 423, 429, 434,
+ 440, 446, 451, 457, 463, 468, 474, 479,
+ 485, 491, 496, 501, 507, 512, 518, 523,
+ 529, 534, 539, 545, 550, 555, 561, 566,
+ 571, 576, 581, 587, 592, 597, 602, 607,
+ 612, 617, 622, 627, 632, 637, 642, 647,
+ 652, 656, 661, 666, 671, 675, 680, 685,
+ 690, 694, 699, 703, 708, 712, 717, 721,
+ 726, 730, 735, 739, 743, 748, 752, 756,
+ 760, 765, 769, 773, 777, 781, 785, 789,
+ 793, 797, 801, 805, 809, 813, 816, 820,
+ 824, 828, 831, 835, 839, 842, 846, 849,
+ 853, 856, 860, 863, 866, 870, 873, 876,
+ 879, 883, 886, 889, 892, 895, 898, 901,
+ 904, 907, 910, 913, 916, 918, 921, 924,
+ 927, 929, 932, 934, 937, 939, 942, 944,
+ 947, 949, 951, 954, 956, 958, 960, 963,
+ 965, 967, 969, 971, 973, 975, 977, 978,
+ 980, 982, 984, 986, 987, 989, 990, 992,
+ 994, 995, 997, 998, 999, 1001, 1002, 1003,
+ 1004, 1006, 1007, 1008, 1009, 1010, 1011, 1012,
+ 1013, 1014, 1015, 1015, 1016, 1017, 1018, 1018,
+ 1019, 1019, 1020, 1020, 1021, 1021, 1022, 1022,
+ 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
+ 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1022,
+ 1022, 1022, 1021, 1021, 1020, 1020, 1019, 1019,
+ 1018, 1018, 1017, 1016, 1015, 1015, 1014, 1013,
+ 1012, 1011, 1010, 1009, 1008, 1007, 1006, 1004,
+ 1003, 1002, 1001, 999, 998, 997, 995, 994,
+ 992, 990, 989, 987, 986, 984, 982, 980,
+ 978, 977, 975, 973, 971, 969, 967, 965,
+ 963, 960, 958, 956, 954, 951, 949, 947,
+ 944, 942, 939, 937, 934, 932, 929, 927,
+ 924, 921, 918, 916, 913, 910, 907, 904,
+ 901, 898, 895, 892, 889, 886, 883, 879,
+ 876, 873, 870, 866, 863, 860, 856, 853,
+ 849, 846, 842, 839, 835, 831, 828, 824,
+ 820, 816, 813, 809, 805, 801, 797, 793,
+ 789, 785, 781, 777, 773, 769, 765, 760,
+ 756, 752, 748, 743, 739, 735, 730, 726,
+ 721, 717, 712, 708, 703, 699, 694, 690,
+ 685, 680, 675, 671, 666, 661, 656, 652,
+ 647, 642, 637, 632, 627, 622, 617, 612,
+ 607, 602, 597, 592, 587, 581, 576, 571,
+ 566, 561, 555, 550, 545, 539, 534, 529,
+ 523, 518, 512, 507, 501, 496, 491, 485,
+ 479, 474, 468, 463, 457, 451, 446, 440,
+ 434, 429, 423, 417, 412, 406, 400, 394,
+ 388, 383, 377, 371, 365, 359, 353, 347,
+ 342, 336, 330, 324, 318, 312, 306, 300,
+ 294, 288, 282, 276, 270, 264, 257, 251,
+ 245, 239, 233, 227, 221, 215, 209, 202,
+ 196, 190, 184, 178, 171, 165, 159, 153,
+ 147, 140, 134, 128, 122, 115, 109, 103,
+ 97, 90, 84, 78, 72, 65, 59, 53,
+ 47, 40, 34, 28, 21, 15, 9, 3,
+ -4, -10, -16, -22, -29, -35, -41, -48,
+ -54, -60, -66, -73, -79, -85, -91, -98,
+ -104, -110, -116, -123, -129, -135, -141, -148,
+ -154, -160, -166, -172, -179, -185, -191, -197,
+ -203, -210, -216, -222, -228, -234, -240, -246,
+ -252, -258, -265, -271, -277, -283, -289, -295,
+ -301, -307, -313, -319, -325, -331, -337, -343,
+ -348, -354, -360, -366, -372, -378, -384, -389,
+ -395, -401, -407, -413, -418, -424, -430, -435,
+ -441, -447, -452, -458, -464, -469, -475, -480,
+ -486, -492, -497, -502, -508, -513, -519, -524,
+ -530, -535, -540, -546, -551, -556, -562, -567,
+ -572, -577, -582, -588, -593, -598, -603, -608,
+ -613, -618, -623, -628, -633, -638, -643, -648,
+ -653, -657, -662, -667, -672, -676, -681, -686,
+ -691, -695, -700, -704, -709, -713, -718, -722,
+ -727, -731, -736, -740, -744, -749, -753, -757,
+ -761, -766, -770, -774, -778, -782, -786, -790,
+ -794, -798, -802, -806, -810, -814, -817, -821,
+ -825, -829, -832, -836, -840, -843, -847, -850,
+ -854, -857, -861, -864, -867, -871, -874, -877,
+ -880, -884, -887, -890, -893, -896, -899, -902,
+ -905, -908, -911, -914, -917, -919, -922, -925,
+ -928, -930, -933, -935, -938, -940, -943, -945,
+ -948, -950, -952, -955, -957, -959, -961, -964,
+ -966, -968, -970, -972, -974, -976, -978, -979,
+ -981, -983, -985, -987, -988, -990, -991, -993,
+ -995, -996, -998, -999, -1000, -1002, -1003, -1004,
+ -1005, -1007, -1008, -1009, -1010, -1011, -1012, -1013,
+ -1014, -1015, -1016, -1016, -1017, -1018, -1019, -1019,
+ -1020, -1020, -1021, -1021, -1022, -1022, -1023, -1023,
+ -1023, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
+ -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1023,
+ -1023, -1023, -1022, -1022, -1021, -1021, -1020, -1020,
+ -1019, -1019, -1018, -1017, -1016, -1016, -1015, -1014,
+ -1013, -1012, -1011, -1010, -1009, -1008, -1007, -1005,
+ -1004, -1003, -1002, -1000, -999, -998, -996, -995,
+ -993, -991, -990, -988, -987, -985, -983, -981,
+ -979, -978, -976, -974, -972, -970, -968, -966,
+ -964, -961, -959, -957, -955, -952, -950, -948,
+ -945, -943, -940, -938, -935, -933, -930, -928,
+ -925, -922, -919, -917, -914, -911, -908, -905,
+ -902, -899, -896, -893, -890, -887, -884, -880,
+ -877, -874, -871, -867, -864, -861, -857, -854,
+ -850, -847, -843, -840, -836, -832, -829, -825,
+ -821, -817, -814, -810, -806, -802, -798, -794,
+ -790, -786, -782, -778, -774, -770, -766, -761,
+ -757, -753, -749, -744, -740, -736, -731, -727,
+ -722, -718, -713, -709, -704, -700, -695, -691,
+ -686, -681, -676, -672, -667, -662, -657, -653,
+ -648, -643, -638, -633, -628, -623, -618, -613,
+ -608, -603, -598, -593, -588, -582, -577, -572,
+ -567, -562, -556, -551, -546, -540, -535, -530,
+ -524, -519, -513, -508, -502, -497, -492, -486,
+ -480, -475, -469, -464, -458, -452, -447, -441,
+ -435, -430, -424, -418, -413, -407, -401, -395,
+ -389, -384, -378, -372, -366, -360, -354, -348,
+ -343, -337, -331, -325, -319, -313, -307, -301,
+ -295, -289, -283, -277, -271, -265, -258, -252,
+ -246, -240, -234, -228, -222, -216, -210, -203,
+ -197, -191, -185, -179, -172, -166, -160, -154,
+ -148, -141, -135, -129, -123, -116, -110, -104,
+ -98, -91, -85, -79, -73, -66, -60, -54,
+ -48, -41, -35, -29, -22, -16, -10, -4
};
// this is the program the generate the above table
@@ -304,7 +316,7 @@ inline PFreal fsin(int iangle)
while(iangle < 0)
iangle += IANGLE_MAX;
return sinTable[iangle & IANGLE_MASK];
-}
+}
inline PFreal fcos(int iangle)
{
@@ -420,7 +432,7 @@ PictureFlowPrivate::PictureFlowPrivate(PictureFlow* w)
triggerTimer.setSingleShot(true);
triggerTimer.setInterval(0);
QObject::connect(&triggerTimer, SIGNAL(timeout()), widget, SLOT(render()));
-
+
recalc(200, 200);
resetSlides();
}
@@ -479,7 +491,7 @@ void PictureFlowPrivate::setSlide(int index, const QImage& image)
slideImages[index] = image;
surfaceCache.remove(index);
triggerRender();
- }
+ }
}
int PictureFlowPrivate::getTarget() const
@@ -490,7 +502,7 @@ int PictureFlowPrivate::getTarget() const
int PictureFlowPrivate::currentSlide() const
{
return centerIndex;
-}
+}
void PictureFlowPrivate::setCurrentSlide(int index)
{
@@ -599,7 +611,7 @@ static QImage prepareSurface(QImage img, int w, int h)
int hofs = h / 3;
// offscreen buffer: black is sweet
- QImage result(hs, w, QImage::Format_RGB16);
+ QImage result(hs, w, QImage::Format_RGB16);
result.fill(0);
// transpose the image, this is to speed-up the rendering
@@ -676,7 +688,7 @@ QImage* PictureFlowPrivate::surface(int slideIndex)
}
-// Schedules rendering the slides. Call this function to avoid immediate
+// Schedules rendering the slides. Call this function to avoid immediate
// render and thus cause less flicker.
void PictureFlowPrivate::triggerRender()
{
@@ -704,7 +716,7 @@ void PictureFlowPrivate::render()
QRect rs = renderSlide(leftSlides[index], alpha, 0, c1-1);
if(!rs.isEmpty())
c1 = rs.left();
- }
+ }
for(int index = 0; index < nright-1; index++)
{
int alpha = (index < nright-2) ? 256 : 128;
@@ -716,14 +728,14 @@ void PictureFlowPrivate::render()
QPainter painter;
painter.begin(&buffer);
- QFont font("Arial", 14);
+ QFont font("Arial", captionFontSize);
font.setBold(true);
painter.setFont(font);
painter.setPen(Qt::white);
//painter.setPen(QColor(255,255,255,127));
if (!captions.isEmpty())
- painter.drawText( QRect(0,0, buffer.width(), (buffer.height() - slideSize().height())/2),
+ painter.drawText( QRect(0,0, buffer.width(), (buffer.height() - slideSize().height())/4),
Qt::AlignCenter, captions[centerIndex]);
painter.end();
@@ -746,7 +758,7 @@ void PictureFlowPrivate::render()
c1 = rs.left();
alpha = (step > 0) ? 256-fade/2 : 256;
- }
+ }
for(int index = 0; index < nright; index++)
{
int alpha = (index < nright-2) ? 256 : 128;
@@ -761,26 +773,23 @@ void PictureFlowPrivate::render()
c2 = rs.right();
}
-
-
QPainter painter;
painter.begin(&buffer);
- QFont font("Arial", 14);
+ QFont font("Arial", captionFontSize);
font.setBold(true);
painter.setFont(font);
int leftTextIndex = (step>0) ? centerIndex : centerIndex-1;
painter.setPen(QColor(255,255,255, (255-fade) ));
- painter.drawText( QRect(0,0, buffer.width(), (buffer.height() - slideSize().height())/2),
+ painter.drawText( QRect(0,0, buffer.width(), (buffer.height() - slideSize().height())/4),
Qt::AlignCenter, captions[leftTextIndex]);
painter.setPen(QColor(255,255,255, fade));
- painter.drawText( QRect(0,0, buffer.width(), (buffer.height() - slideSize().height())/2),
+ painter.drawText( QRect(0,0, buffer.width(), (buffer.height() - slideSize().height())/4),
Qt::AlignCenter, captions[leftTextIndex+1]);
-
painter.end();
}
}
@@ -810,8 +819,8 @@ int col1, int col2)
if(!src)
return QRect();
- QRect rect(0, 0, 0, 0);
-
+ QRect rect(0, 0, 0, 0);
+
#ifdef PICTUREFLOW_BILINEAR_FILTER
int sw = src->height() / BILINEAR_STRETCH_HOR;
int sh = src->width() / BILINEAR_STRETCH_VER;
@@ -876,10 +885,10 @@ int col1, int col2)
if(column < 0)
continue;
- rect.setRight(x);
+ rect.setRight(x);
if(!flag)
rect.setLeft(x);
- flag = true;
+ flag = true;
int y1 = h/2;
int y2 = y1+ 1;
@@ -909,7 +918,7 @@ int col1, int col2)
y2++;
pixel1 -= pixelstep;
pixel2 += pixelstep;
- }
+ }
else
while((y1 >= 0) && (y2 < h) && (p1 >= 0))
{
@@ -935,8 +944,8 @@ int col1, int col2)
y2++;
pixel1 -= pixelstep;
pixel2 += pixelstep;
- }
- }
+ }
+ }
rect.setTop(0);
rect.setBottom(h-1);
@@ -1014,7 +1023,7 @@ void PictureFlowPrivate::updateAnimation()
const int max = 2 * 65536;
int fi = slideFrame;
- fi -= (target << 16);
+ fi -= (target << 16);
if(fi < 0)
fi = -fi;
fi = qMin(fi, max);
@@ -1029,7 +1038,7 @@ void PictureFlowPrivate::updateAnimation()
int pos = slideFrame & 0xffff;
int neg = 65536 - pos;
int tick = (step < 0) ? neg : pos;
- PFreal ftick = (tick * PFREAL_ONE) >> 16;
+ PFreal ftick = (tick * PFREAL_ONE) >> 16;
// the leftmost and rightmost slide must fade away
fade = pos / 256;
@@ -1059,7 +1068,7 @@ void PictureFlowPrivate::updateAnimation()
step = 0;
fade = 256;
return;
- }
+ }
for(int i = 0; i < leftSlides.count(); i++)
{
@@ -1090,7 +1099,7 @@ void PictureFlowPrivate::updateAnimation()
leftSlides[0].angle = (pos * itilt) >> 16;
leftSlides[0].cx = -fmul(offsetX, ftick);
leftSlides[0].cy = fmul(offsetY, ftick);
- }
+ }
// must change direction ?
if(target < index) if(step > 0)
@@ -1126,7 +1135,7 @@ PictureFlow::PictureFlow(QWidget* parent): QWidget(parent)
PictureFlow::~PictureFlow()
{
delete d;
-}
+}
int PictureFlow::slideCount() const
{
@@ -1226,7 +1235,7 @@ void PictureFlow::keyPressEvent(QKeyEvent* event)
{
if(event->modifiers() == Qt::ControlModifier)
showSlide(currentSlide()-10);
- else
+ else
showPrevious();
event->accept();
return;
@@ -1242,6 +1251,12 @@ void PictureFlow::keyPressEvent(QKeyEvent* event)
return;
}
+ if (event->key() == Qt::Key_Enter || event->key() == Qt::Key_Select) {
+ emit itemActivated(d->getTarget());
+ event->accept();
+ return;
+ }
+
event->ignore();
}
@@ -1276,7 +1291,7 @@ void PictureFlow::mouseMoveEvent(QMouseEvent* event)
{
speed = ((qAbs(event->pos().x()-d->previousPos.x())*1000) / d->previousPosTimestamp.elapsed())
/ (d->buffer.width() / 10);
-
+
if (speed < SPEED_LOWER_THRESHOLD)
speed = SPEED_LOWER_THRESHOLD;
else if (speed > SPEED_UPPER_LIMIT)
@@ -1284,19 +1299,17 @@ void PictureFlow::mouseMoveEvent(QMouseEvent* event)
else {
speed = SPEED_LOWER_THRESHOLD + (speed / 3);
// qDebug() << "ACCELERATION ENABLED Speed = " << speed << ", Distance = " << distanceMovedSinceLastEvent;
-
}
}
-
// qDebug() << "Speed = " << speed;
// int incr = ((event->pos().x() - d->previousPos.x())/10) * speed;
-
+
// qDebug() << "Incremented by " << incr;
int incr = (distanceMovedSinceLastEvent * speed);
-
+
//qDebug() << "(distanceMovedSinceLastEvent * speed) = " << incr;
if (incr > d->pixelsToMovePerSlide*2) {
@@ -1326,8 +1339,6 @@ void PictureFlow::mouseMoveEvent(QMouseEvent* event)
d->pixelDistanceMoved = 0;
*/
}
-
-
}
d->previousPos = event->pos();
diff --git a/demos/embedded/fluidlauncher/pictureflow.h b/demos/embedded/fluidlauncher/pictureflow.h
index 747f09c..7ae2a88 100644
--- a/demos/embedded/fluidlauncher/pictureflow.h
+++ b/demos/embedded/fluidlauncher/pictureflow.h
@@ -3,7 +3,7 @@
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
** Contact: Nokia Corporation (qt-info@nokia.com)
**
-** This file is part of the ActiveQt framework of the Qt Toolkit.
+** This is a version of the Pictureflow animated image show widget modified by Nokia.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
@@ -35,6 +35,7 @@
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
+**
****************************************************************************/
/*
@@ -71,15 +72,15 @@
class PictureFlowPrivate;
/*!
- Class PictureFlow implements an image show widget with animation effect
- like Apple's CoverFlow (in iTunes and iPod). Images are arranged in form
- of slides, one main slide is shown at the center with few slides on
- the left and right sides of the center slide. When the next or previous
- slide is brought to the front, the whole slides flow to the right or
- the right with smooth animation effect; until the new slide is finally
+ Class PictureFlow implements an image show widget with animation effect
+ like Apple's CoverFlow (in iTunes and iPod). Images are arranged in form
+ of slides, one main slide is shown at the center with few slides on
+ the left and right sides of the center slide. When the next or previous
+ slide is brought to the front, the whole slides flow to the right or
+ the right with smooth animation effect; until the new slide is finally
placed at the center.
- */
+ */
class PictureFlow : public QWidget
{
Q_OBJECT
@@ -92,7 +93,7 @@ Q_OBJECT
public:
/*!
Creates a new PictureFlow widget.
- */
+ */
PictureFlow(QWidget* parent = 0);
/*!
@@ -112,17 +113,17 @@ public:
/*!
Returns the dimension of each slide (in pixels).
- */
+ */
QSize slideSize() const;
/*!
Sets the dimension of each slide (in pixels).
- */
+ */
void setSlideSize(QSize size);
/*!
Sets the zoom factor (in percent).
- */
+ */
void setZoomFactor(int zoom);
/*!
@@ -139,13 +140,13 @@ public:
Returns QImage of specified slide.
This function will be called only whenever necessary, e.g. the 100th slide
will not be retrived when only the first few slides are visible.
- */
+ */
virtual QImage slide(int index) const;
/*!
Sets an image for specified slide. If the slide already exists,
it will be replaced.
- */
+ */
virtual void setSlide(int index, const QImage& image);
virtual void setSlideCaption(int index, QString caption);
@@ -153,20 +154,20 @@ public:
/*!
Sets a pixmap for specified slide. If the slide already exists,
it will be replaced.
- */
+ */
virtual void setSlide(int index, const QPixmap& pixmap);
/*!
Returns the index of slide currently shown in the middle of the viewport.
- */
+ */
int currentSlide() const;
public slots:
/*!
- Sets slide to be shown in the middle of the viewport. No animation
+ Sets slide to be shown in the middle of the viewport. No animation
effect will be produced, unlike using showSlide.
- */
+ */
void setCurrentSlide(int index);
/*!
diff --git a/demos/embedded/fluidlauncher/screenshots/anomaly_s60.png b/demos/embedded/fluidlauncher/screenshots/anomaly_s60.png
new file mode 100644
index 0000000..8d537f4
--- /dev/null
+++ b/demos/embedded/fluidlauncher/screenshots/anomaly_s60.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/screenshots/context2d_s60.png b/demos/embedded/fluidlauncher/screenshots/context2d_s60.png
new file mode 100644
index 0000000..c7225c7
--- /dev/null
+++ b/demos/embedded/fluidlauncher/screenshots/context2d_s60.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/screenshots/desktopservices_s60.png b/demos/embedded/fluidlauncher/screenshots/desktopservices_s60.png
new file mode 100644
index 0000000..a429be3
--- /dev/null
+++ b/demos/embedded/fluidlauncher/screenshots/desktopservices_s60.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/screenshots/digiflip.png b/demos/embedded/fluidlauncher/screenshots/digiflip.png
new file mode 100644
index 0000000..117b61b
--- /dev/null
+++ b/demos/embedded/fluidlauncher/screenshots/digiflip.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/screenshots/drilldown_s60.png b/demos/embedded/fluidlauncher/screenshots/drilldown_s60.png
new file mode 100644
index 0000000..d4fd44f
--- /dev/null
+++ b/demos/embedded/fluidlauncher/screenshots/drilldown_s60.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/screenshots/embeddedsvgviewer_s60.png b/demos/embedded/fluidlauncher/screenshots/embeddedsvgviewer_s60.png
new file mode 100644
index 0000000..74f4ad1
--- /dev/null
+++ b/demos/embedded/fluidlauncher/screenshots/embeddedsvgviewer_s60.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/screenshots/flickable.png b/demos/embedded/fluidlauncher/screenshots/flickable.png
new file mode 100644
index 0000000..7080fc1
--- /dev/null
+++ b/demos/embedded/fluidlauncher/screenshots/flickable.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/screenshots/flightinfo_s60.png b/demos/embedded/fluidlauncher/screenshots/flightinfo_s60.png
new file mode 100644
index 0000000..8a304eb
--- /dev/null
+++ b/demos/embedded/fluidlauncher/screenshots/flightinfo_s60.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/screenshots/fridgemagnets_s60.png b/demos/embedded/fluidlauncher/screenshots/fridgemagnets_s60.png
new file mode 100644
index 0000000..d31875d
--- /dev/null
+++ b/demos/embedded/fluidlauncher/screenshots/fridgemagnets_s60.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/screenshots/ftp_s60.png b/demos/embedded/fluidlauncher/screenshots/ftp_s60.png
new file mode 100644
index 0000000..5858daf
--- /dev/null
+++ b/demos/embedded/fluidlauncher/screenshots/ftp_s60.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/screenshots/lightmaps.png b/demos/embedded/fluidlauncher/screenshots/lightmaps.png
new file mode 100644
index 0000000..7cbe2e4
--- /dev/null
+++ b/demos/embedded/fluidlauncher/screenshots/lightmaps.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/screenshots/raycasting.png b/demos/embedded/fluidlauncher/screenshots/raycasting.png
new file mode 100644
index 0000000..d3c86e9
--- /dev/null
+++ b/demos/embedded/fluidlauncher/screenshots/raycasting.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/screenshots/saxbookmarks_s60.png b/demos/embedded/fluidlauncher/screenshots/saxbookmarks_s60.png
new file mode 100644
index 0000000..54b6321
--- /dev/null
+++ b/demos/embedded/fluidlauncher/screenshots/saxbookmarks_s60.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/screenshots/softkeys_s60.png b/demos/embedded/fluidlauncher/screenshots/softkeys_s60.png
new file mode 100644
index 0000000..df090e2
--- /dev/null
+++ b/demos/embedded/fluidlauncher/screenshots/softkeys_s60.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/screenshots/styledemo_s60.png b/demos/embedded/fluidlauncher/screenshots/styledemo_s60.png
new file mode 100644
index 0000000..57480fb
--- /dev/null
+++ b/demos/embedded/fluidlauncher/screenshots/styledemo_s60.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/screenshots/weatherinfo.png b/demos/embedded/fluidlauncher/screenshots/weatherinfo.png
new file mode 100644
index 0000000..b18608d
--- /dev/null
+++ b/demos/embedded/fluidlauncher/screenshots/weatherinfo.png
Binary files differ
diff --git a/demos/embedded/fluidlauncher/screenshots/wiggly_s60.png b/demos/embedded/fluidlauncher/screenshots/wiggly_s60.png
new file mode 100644
index 0000000..9c4cab3
--- /dev/null
+++ b/demos/embedded/fluidlauncher/screenshots/wiggly_s60.png
Binary files differ
diff --git a/demos/embedded/lightmaps/lightmaps.cpp b/demos/embedded/lightmaps/lightmaps.cpp
new file mode 100644
index 0000000..6ad2020
--- /dev/null
+++ b/demos/embedded/lightmaps/lightmaps.cpp
@@ -0,0 +1,579 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtCore>
+#include <QtGui>
+#include <QtNetwork>
+
+#if defined (Q_OS_SYMBIAN)
+#include "sym_iap_util.h"
+#endif
+
+#include <math.h>
+
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
+
+// how long (milliseconds) the user need to hold (after a tap on the screen)
+// before triggering the magnifying glass feature
+// 701, a prime number, is the sum of 229, 233, 239
+// (all three are also prime numbers, consecutive!)
+#define HOLD_TIME 701
+
+// maximum size of the magnifier
+// Hint: see above to find why I picked this one :)
+#define MAX_MAGNIFIER 229
+
+uint qHash(const QPoint& p)
+{
+ return p.x() * 17 ^ p.y();
+}
+
+// tile size in pixels
+const int tdim = 256;
+
+QPointF tileForCoordinate(qreal lat, qreal lng, int zoom)
+{
+ qreal zn = static_cast<qreal>(1 << zoom);
+ qreal tx = (lng + 180.0) / 360.0;
+ qreal ty = (1.0 - log(tan(lat * M_PI / 180.0) +
+ 1.0 / cos(lat * M_PI / 180.0)) / M_PI) / 2.0;
+ return QPointF(tx * zn, ty * zn);
+}
+
+qreal longitudeFromTile(qreal tx, int zoom)
+{
+ qreal zn = static_cast<qreal>(1 << zoom);
+ qreal lat = tx / zn * 360.0 - 180.0;
+ return lat;
+}
+
+qreal latitudeFromTile(qreal ty, int zoom)
+{
+ qreal zn = static_cast<qreal>(1 << zoom);
+ qreal n = M_PI - 2 * M_PI * ty / zn;
+ qreal lng = 180.0 / M_PI * atan(0.5 * (exp(n) - exp(-n)));
+ return lng;
+}
+
+class SlippyMap: public QObject
+{
+ Q_OBJECT
+
+public:
+ int width;
+ int height;
+ int zoom;
+ qreal latitude;
+ qreal longitude;
+
+ SlippyMap(QObject *parent = 0)
+ : QObject(parent)
+ , width(400)
+ , height(300)
+ , zoom(15)
+ , latitude(59.9138204)
+ , longitude(10.7387413) {
+ m_emptyTile = QPixmap(tdim, tdim);
+ m_emptyTile.fill(Qt::lightGray);
+
+ QNetworkDiskCache *cache = new QNetworkDiskCache;
+ cache->setCacheDirectory(QDesktopServices::storageLocation
+ (QDesktopServices::CacheLocation));
+ m_manager.setCache(cache);
+ connect(&m_manager, SIGNAL(finished(QNetworkReply*)),
+ this, SLOT(handleNetworkData(QNetworkReply*)));
+ }
+
+ void invalidate() {
+ if (width <= 0 || height <= 0)
+ return;
+
+ QPointF ct = tileForCoordinate(latitude, longitude, zoom);
+ qreal tx = ct.x();
+ qreal ty = ct.y();
+
+ // top-left corner of the center tile
+ int xp = width / 2 - (tx - floor(tx)) * tdim;
+ int yp = height / 2 - (ty - floor(ty)) * tdim;
+
+ // first tile vertical and horizontal
+ int xa = (xp + tdim - 1) / tdim;
+ int ya = (yp + tdim - 1) / tdim;
+ int xs = static_cast<int>(tx) - xa;
+ int ys = static_cast<int>(ty) - ya;
+
+ // offset for top-left tile
+ m_offset = QPoint(xp - xa * tdim, yp - ya * tdim);
+
+ // last tile vertical and horizontal
+ int xe = static_cast<int>(tx) + (width - xp - 1) / tdim;
+ int ye = static_cast<int>(ty) + (height - yp - 1) / tdim;
+
+ // build a rect
+ m_tilesRect = QRect(xs, ys, xe - xs + 1, ye - ys + 1);
+
+ if (m_url.isEmpty())
+ download();
+
+ emit updated(QRect(0, 0, width, height));
+ }
+
+ void render(QPainter *p, const QRect &rect) {
+ for (int x = 0; x <= m_tilesRect.width(); ++x)
+ for (int y = 0; y <= m_tilesRect.height(); ++y) {
+ QPoint tp(x + m_tilesRect.left(), y + m_tilesRect.top());
+ QRect box = tileRect(tp);
+ if (rect.intersects(box)) {
+ if (m_tilePixmaps.contains(tp))
+ p->drawPixmap(box, m_tilePixmaps.value(tp));
+ else
+ p->drawPixmap(box, m_emptyTile);
+ }
+ }
+ }
+
+ void pan(const QPoint &delta) {
+ QPointF dx = QPointF(delta) / qreal(tdim);
+ QPointF center = tileForCoordinate(latitude, longitude, zoom) - dx;
+ latitude = latitudeFromTile(center.y(), zoom);
+ longitude = longitudeFromTile(center.x(), zoom);
+ invalidate();
+ }
+
+private slots:
+
+ void handleNetworkData(QNetworkReply *reply) {
+ QImage img;
+ QPoint tp = reply->request().attribute(QNetworkRequest::User).toPoint();
+ QUrl url = reply->url();
+ if (!reply->error())
+ if (!img.load(reply, 0))
+ img = QImage();
+ reply->deleteLater();
+ m_tilePixmaps[tp] = QPixmap::fromImage(img);
+ if (img.isNull())
+ m_tilePixmaps[tp] = m_emptyTile;
+ emit updated(tileRect(tp));
+
+ // purge unused spaces
+ QRect bound = m_tilesRect.adjusted(-2, -2, 2, 2);
+ foreach(QPoint tp, m_tilePixmaps.keys())
+ if (!bound.contains(tp))
+ m_tilePixmaps.remove(tp);
+
+ download();
+ }
+
+ void download() {
+ QPoint grab(0, 0);
+ for (int x = 0; x <= m_tilesRect.width(); ++x)
+ for (int y = 0; y <= m_tilesRect.height(); ++y) {
+ QPoint tp = m_tilesRect.topLeft() + QPoint(x, y);
+ if (!m_tilePixmaps.contains(tp)) {
+ grab = tp;
+ break;
+ }
+ }
+ if (grab == QPoint(0, 0)) {
+ m_url = QUrl();
+ return;
+ }
+
+ QString path = "http://tile.openstreetmap.org/%1/%2/%3.png";
+ m_url = QUrl(path.arg(zoom).arg(grab.x()).arg(grab.y()));
+ QNetworkRequest request;
+ request.setUrl(m_url);
+ request.setRawHeader("User-Agent", "Nokia (Qt) Graphics Dojo 1.0");
+ request.setAttribute(QNetworkRequest::User, QVariant(grab));
+ m_manager.get(request);
+ }
+
+signals:
+ void updated(const QRect &rect);
+
+protected:
+ QRect tileRect(const QPoint &tp) {
+ QPoint t = tp - m_tilesRect.topLeft();
+ int x = t.x() * tdim + m_offset.x();
+ int y = t.y() * tdim + m_offset.y();
+ return QRect(x, y, tdim, tdim);
+ }
+
+private:
+ QPoint m_offset;
+ QRect m_tilesRect;
+ QPixmap m_emptyTile;
+ QHash<QPoint, QPixmap> m_tilePixmaps;
+ QNetworkAccessManager m_manager;
+ QUrl m_url;
+};
+
+class LightMaps: public QWidget
+{
+ Q_OBJECT
+
+public:
+ LightMaps(QWidget *parent = 0)
+ : QWidget(parent)
+ , pressed(false)
+ , snapped(false)
+ , zoomed(false)
+ , invert(false) {
+ m_normalMap = new SlippyMap(this);
+ m_largeMap = new SlippyMap(this);
+ connect(m_normalMap, SIGNAL(updated(QRect)), SLOT(updateMap(QRect)));
+ connect(m_largeMap, SIGNAL(updated(QRect)), SLOT(update()));
+ }
+
+ void setCenter(qreal lat, qreal lng) {
+ m_normalMap->latitude = lat;
+ m_normalMap->longitude = lng;
+ m_normalMap->invalidate();
+ m_largeMap->invalidate();
+ }
+
+public slots:
+ void toggleNightMode() {
+ invert = !invert;
+ update();
+ }
+
+private slots:
+ void updateMap(const QRect &r) {
+ update(r);
+ }
+
+protected:
+
+ void activateZoom() {
+ zoomed = true;
+ tapTimer.stop();
+ m_largeMap->zoom = m_normalMap->zoom + 1;
+ m_largeMap->width = m_normalMap->width * 2;
+ m_largeMap->height = m_normalMap->height * 2;
+ m_largeMap->latitude = m_normalMap->latitude;
+ m_largeMap->longitude = m_normalMap->longitude;
+ m_largeMap->invalidate();
+ update();
+ }
+
+ void resizeEvent(QResizeEvent *) {
+ m_normalMap->width = width();
+ m_normalMap->height = height();
+ m_normalMap->invalidate();
+ m_largeMap->width = m_normalMap->width * 2;
+ m_largeMap->height = m_normalMap->height * 2;
+ m_largeMap->invalidate();
+ }
+
+ void paintEvent(QPaintEvent *event) {
+ QPainter p;
+ p.begin(this);
+ m_normalMap->render(&p, event->rect());
+ p.setPen(Qt::black);
+#if defined(Q_OS_SYMBIAN)
+ QFont font = p.font();
+ font.setPixelSize(13);
+ p.setFont(font);
+#endif
+ p.drawText(rect(), Qt::AlignBottom | Qt::TextWordWrap,
+ "Map data CCBYSA 2009 OpenStreetMap.org contributors");
+ p.end();
+
+ if (zoomed) {
+ int dim = qMin(width(), height());
+ int magnifierSize = qMin(MAX_MAGNIFIER, dim * 2 / 3);
+ int radius = magnifierSize / 2;
+ int ring = radius - 15;
+ QSize box = QSize(magnifierSize, magnifierSize);
+
+ // reupdate our mask
+ if (maskPixmap.size() != box) {
+ maskPixmap = QPixmap(box);
+ maskPixmap.fill(Qt::transparent);
+
+ QRadialGradient g;
+ g.setCenter(radius, radius);
+ g.setFocalPoint(radius, radius);
+ g.setRadius(radius);
+ g.setColorAt(1.0, QColor(255, 255, 255, 0));
+ g.setColorAt(0.5, QColor(128, 128, 128, 255));
+
+ QPainter mask(&maskPixmap);
+ mask.setRenderHint(QPainter::Antialiasing);
+ mask.setCompositionMode(QPainter::CompositionMode_Source);
+ mask.setBrush(g);
+ mask.setPen(Qt::NoPen);
+ mask.drawRect(maskPixmap.rect());
+ mask.setBrush(QColor(Qt::transparent));
+ mask.drawEllipse(g.center(), ring, ring);
+ mask.end();
+ }
+
+ QPoint center = dragPos - QPoint(0, radius);
+ center = center + QPoint(0, radius / 2);
+ QPoint corner = center - QPoint(radius, radius);
+
+ QPoint xy = center * 2 - QPoint(radius, radius);
+
+ // only set the dimension to the magnified portion
+ if (zoomPixmap.size() != box) {
+ zoomPixmap = QPixmap(box);
+ zoomPixmap.fill(Qt::lightGray);
+ }
+ if (true) {
+ QPainter p(&zoomPixmap);
+ p.translate(-xy);
+ m_largeMap->render(&p, QRect(xy, box));
+ p.end();
+ }
+
+ QPainterPath clipPath;
+ clipPath.addEllipse(center, ring, ring);
+
+ QPainter p(this);
+ p.setRenderHint(QPainter::Antialiasing);
+ p.setClipPath(clipPath);
+ p.drawPixmap(corner, zoomPixmap);
+ p.setClipping(false);
+ p.drawPixmap(corner, maskPixmap);
+ p.setPen(Qt::gray);
+ p.drawPath(clipPath);
+ }
+ if (invert) {
+ QPainter p(this);
+ p.setCompositionMode(QPainter::CompositionMode_Difference);
+ p.fillRect(event->rect(), Qt::white);
+ p.end();
+ }
+ }
+
+ void timerEvent(QTimerEvent *) {
+ if (!zoomed)
+ activateZoom();
+ update();
+ }
+
+ void mousePressEvent(QMouseEvent *event) {
+ if (event->buttons() != Qt::LeftButton)
+ return;
+ pressed = snapped = true;
+ pressPos = dragPos = event->pos();
+ tapTimer.stop();
+ tapTimer.start(HOLD_TIME, this);
+ }
+
+ void mouseMoveEvent(QMouseEvent *event) {
+ if (!event->buttons())
+ return;
+ if (!zoomed) {
+ if (!pressed || !snapped) {
+ QPoint delta = event->pos() - pressPos;
+ pressPos = event->pos();
+ m_normalMap->pan(delta);
+ return;
+ } else {
+ const int threshold = 10;
+ QPoint delta = event->pos() - pressPos;
+ if (snapped) {
+ snapped &= delta.x() < threshold;
+ snapped &= delta.y() < threshold;
+ snapped &= delta.x() > -threshold;
+ snapped &= delta.y() > -threshold;
+ }
+ if (!snapped)
+ tapTimer.stop();
+ }
+ } else {
+ dragPos = event->pos();
+ update();
+ }
+ }
+
+ void mouseReleaseEvent(QMouseEvent *) {
+ zoomed = false;
+ update();
+ }
+
+ void keyPressEvent(QKeyEvent *event) {
+ if (!zoomed) {
+ if (event->key() == Qt::Key_Left)
+ m_normalMap->pan(QPoint(20, 0));
+ if (event->key() == Qt::Key_Right)
+ m_normalMap->pan(QPoint(-20, 0));
+ if (event->key() == Qt::Key_Up)
+ m_normalMap->pan(QPoint(0, 20));
+ if (event->key() == Qt::Key_Down)
+ m_normalMap->pan(QPoint(0, -20));
+ if (event->key() == Qt::Key_Z || event->key() == Qt::Key_Select) {
+ dragPos = QPoint(width() / 2, height() / 2);
+ activateZoom();
+ }
+ } else {
+ if (event->key() == Qt::Key_Z || event->key() == Qt::Key_Select) {
+ zoomed = false;
+ update();
+ }
+ QPoint delta(0, 0);
+ if (event->key() == Qt::Key_Left)
+ delta = QPoint(-15, 0);
+ if (event->key() == Qt::Key_Right)
+ delta = QPoint(15, 0);
+ if (event->key() == Qt::Key_Up)
+ delta = QPoint(0, -15);
+ if (event->key() == Qt::Key_Down)
+ delta = QPoint(0, 15);
+ if (delta != QPoint(0, 0)) {
+ dragPos += delta;
+ update();
+ }
+ }
+ }
+
+private:
+ SlippyMap *m_normalMap;
+ SlippyMap *m_largeMap;
+ bool pressed;
+ bool snapped;
+ QPoint pressPos;
+ QPoint dragPos;
+ QBasicTimer tapTimer;
+ bool zoomed;
+ QPixmap zoomPixmap;
+ QPixmap maskPixmap;
+ bool invert;
+};
+
+class MapZoom : public QMainWindow
+{
+ Q_OBJECT
+
+private:
+ LightMaps *map;
+
+public:
+ MapZoom(): QMainWindow(0) {
+ map = new LightMaps(this);
+ setCentralWidget(map);
+ map->setFocus();
+
+ QAction *osloAction = new QAction("&Oslo", this);
+ QAction *berlinAction = new QAction("&Berlin", this);
+ QAction *jakartaAction = new QAction("&Jakarta", this);
+ QAction *nightModeAction = new QAction("Night Mode", this);
+ nightModeAction->setCheckable(true);
+ nightModeAction->setChecked(false);
+ QAction *osmAction = new QAction("About OpenStreetMap", this);
+ connect(osloAction, SIGNAL(triggered()), SLOT(chooseOslo()));
+ connect(berlinAction, SIGNAL(triggered()), SLOT(chooseBerlin()));
+ connect(jakartaAction, SIGNAL(triggered()), SLOT(chooseJakarta()));
+ connect(nightModeAction, SIGNAL(triggered()), map, SLOT(toggleNightMode()));
+ connect(osmAction, SIGNAL(triggered()), SLOT(aboutOsm()));
+
+#if defined(Q_OS_SYMBIAN)
+ menuBar()->addAction(osloAction);
+ menuBar()->addAction(berlinAction);
+ menuBar()->addAction(jakartaAction);
+ menuBar()->addAction(nightModeAction);
+ menuBar()->addAction(osmAction);
+#else
+ QMenu *menu = menuBar()->addMenu("&Options");
+ menu->addAction(osloAction);
+ menu->addAction(berlinAction);
+ menu->addAction(jakartaAction);
+ menu->addSeparator();
+ menu->addAction(nightModeAction);
+ menu->addAction(osmAction);
+#endif
+
+ QTimer::singleShot(0, this, SLOT(delayedInit()));
+ }
+
+private slots:
+
+ void delayedInit() {
+#if defined(Q_OS_SYMBIAN)
+ qt_SetDefaultIap();
+#endif
+ }
+
+ void chooseOslo() {
+ map->setCenter(59.9138204, 10.7387413);
+ }
+
+ void chooseBerlin() {
+ map->setCenter(52.52958999943302, 13.383053541183472);
+ }
+
+ void chooseJakarta() {
+ map->setCenter(-6.211544, 106.845172);
+ }
+
+ void aboutOsm() {
+ QDesktopServices::openUrl(QUrl("http://www.openstreetmap.org"));
+ }
+};
+
+
+#include "lightmaps.moc"
+
+int main(int argc, char **argv)
+{
+#if defined(Q_WS_X11)
+ QApplication::setGraphicsSystem("raster");
+#endif
+
+ QApplication app(argc, argv);
+ app.setApplicationName("LightMaps");
+
+ MapZoom w;
+ w.setWindowTitle("OpenStreetMap");
+#if defined(Q_OS_SYMBIAN)
+ w.showMaximized();
+#else
+ w.resize(600, 450);
+ w.show();
+#endif
+
+ return app.exec();
+}
diff --git a/demos/embedded/lightmaps/lightmaps.pro b/demos/embedded/lightmaps/lightmaps.pro
new file mode 100644
index 0000000..e57d15d
--- /dev/null
+++ b/demos/embedded/lightmaps/lightmaps.pro
@@ -0,0 +1,10 @@
+TEMPLATE = app
+SOURCES = lightmaps.cpp
+QT += network
+
+symbian {
+ HEADERS += $$QT_SOURCE_TREE/examples/network/ftp/sym_iap_util.h
+ LIBS += -lesock -lconnmon
+ TARGET.CAPABILITY = NetworkServices
+ TARGET.EPOCHEAPSIZE = 0x20000 0x2000000
+}
diff --git a/demos/embedded/raycasting/raycasting.cpp b/demos/embedded/raycasting/raycasting.cpp
new file mode 100644
index 0000000..7d61c4f
--- /dev/null
+++ b/demos/embedded/raycasting/raycasting.cpp
@@ -0,0 +1,310 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtCore>
+#include <QtGui>
+
+#include <math.h>
+
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
+
+#define WORLD_SIZE 8
+int world_map[WORLD_SIZE][WORLD_SIZE] = {
+ { 1, 1, 1, 1, 6, 1, 1, 1 },
+ { 1, 0, 0, 1, 0, 0, 0, 7 },
+ { 1, 1, 0, 1, 0, 1, 1, 1 },
+ { 6, 0, 0, 0, 0, 0, 0, 3 },
+ { 1, 8, 8, 0, 8, 0, 8, 1 },
+ { 2, 2, 0, 0, 8, 8, 7, 1 },
+ { 3, 0, 0, 0, 0, 0, 0, 5 },
+ { 2, 2, 2, 2, 7, 4, 4, 4 },
+};
+
+#define TEXTURE_SIZE 64
+#define TEXTURE_BLOCK (TEXTURE_SIZE * TEXTURE_SIZE)
+
+class Raycasting: public QWidget
+{
+public:
+ Raycasting(QWidget *parent = 0)
+ : QWidget(parent)
+ , angle(0.5)
+ , playerPos(1.5, 1.5)
+ , angleDelta(0)
+ , moveDelta(0) {
+
+ // http://www.areyep.com/RIPandMCS-TextureLibrary.html
+ textureImg.load(":/textures.png");
+ textureImg = textureImg.convertToFormat(QImage::Format_ARGB32);
+ Q_ASSERT(textureImg.width() == TEXTURE_SIZE * 2);
+ Q_ASSERT(textureImg.bytesPerLine() == 4 * TEXTURE_SIZE * 2);
+ textureCount = textureImg.height() / TEXTURE_SIZE;
+
+ watch.start();
+ ticker.start(25, this);
+ setAttribute(Qt::WA_OpaquePaintEvent, true);
+ }
+
+ void updatePlayer() {
+ int interval = qBound(20, watch.elapsed(), 250);
+ watch.start();
+ angle += angleDelta * interval / 1000;
+ qreal step = moveDelta * interval / 1000;
+ qreal dx = cos(angle) * step;
+ qreal dy = sin(angle) * step;
+ QPointF pos = playerPos + 3 * QPointF(dx, dy);
+ int xi = static_cast<int>(pos.x());
+ int yi = static_cast<int>(pos.y());
+ if (world_map[yi][xi] == 0)
+ playerPos = playerPos + QPointF(dx, dy);
+ }
+
+ void showFps() {
+ static QTime frameTick;
+ static int totalFrame = 0;
+ if (!(totalFrame & 31)) {
+ int elapsed = frameTick.elapsed();
+ frameTick.start();
+ int fps = 32 * 1000 / (1 + elapsed);
+ setWindowTitle(QString("Raycasting (%1 FPS)").arg(fps));
+ }
+ totalFrame++;
+ }
+
+ void render() {
+
+ // setup the screen surface
+ if (buffer.size() != size())
+ buffer = QImage(size(), QImage::Format_ARGB32);
+ int bufw = buffer.width();
+ int bufh = buffer.height();
+
+ // we intentionally cheat here, to avoid detach
+ const uchar *ptr = buffer.bits();
+ QRgb *start = (QRgb*)(ptr);
+ QRgb stride = buffer.bytesPerLine() / 4;
+ QRgb *finish = start + stride * bufh;
+
+ // prepare the texture pointer
+ const uchar *src = textureImg.bits();
+ const QRgb *texsrc = reinterpret_cast<const QRgb*>(src);
+
+ // cast all rays here
+ qreal sina = sin(angle);
+ qreal cosa = cos(angle);
+ qreal u = cosa - sina;
+ qreal v = sina + cosa;
+ qreal du = 2 * sina / bufw;
+ qreal dv = -2 * cosa / bufw;
+
+ for (int ray = 0; ray < bufw; ++ray, u += du, v += dv) {
+ // everytime this ray advances 'u' units in x direction,
+ // it also advanced 'v' units in y direction
+ qreal uu = (u < 0) ? -u : u;
+ qreal vv = (v < 0) ? -v : v;
+ qreal duu = 1 / uu;
+ qreal dvv = 1 / vv;
+ int stepx = (u < 0) ? -1 : 1;
+ int stepy = (v < 0) ? -1 : 1;
+
+ // the cell in the map that we need to check
+ qreal px = playerPos.x();
+ qreal py = playerPos.y();
+ int mapx = static_cast<int>(px);
+ int mapy = static_cast<int>(py);
+
+ // the position and texture for the hit
+ int texture = 0;
+ qreal hitdist = 0.1;
+ qreal texofs = 0;
+ bool dark = false;
+
+ // first hit at constant x and constant y lines
+ qreal distx = (u > 0) ? (mapx + 1 - px) * duu : (px - mapx) * duu;
+ qreal disty = (v > 0) ? (mapy + 1 - py) * dvv : (py - mapy) * dvv;
+
+ // loop until we hit something
+ while (texture <= 0) {
+ if (distx > disty) {
+ // shorter distance to a hit in constant y line
+ hitdist = disty;
+ disty += dvv;
+ mapy += stepy;
+ texture = world_map[mapy][mapx];
+ if (texture > 0) {
+ dark = true;
+ if (stepy > 0) {
+ qreal ofs = px + u * (mapy - py) / v;
+ texofs = ofs - floor(ofs);
+ } else {
+ qreal ofs = px + u * (mapy + 1 - py) / v;
+ texofs = ofs - floor(ofs);
+ }
+ }
+ } else {
+ // shorter distance to a hit in constant x line
+ hitdist = distx;
+ distx += duu;
+ mapx += stepx;
+ texture = world_map[mapy][mapx];
+ if (texture > 0) {
+ if (stepx > 0) {
+ qreal ofs = py + v * (mapx - px) / u;
+ texofs = ofs - floor(ofs);
+ } else {
+ qreal ofs = py + v * (mapx + 1 - px) / u;
+ texofs = ceil(ofs) - ofs;
+ }
+ }
+ }
+ }
+
+ // get the texture, note that the texture image
+ // has two textures horizontally, "normal" vs "dark"
+ int col = static_cast<int>(texofs * TEXTURE_SIZE);
+ col = qBound(0, col, TEXTURE_SIZE - 1);
+ texture = (texture - 1) % textureCount;
+ const QRgb *tex = texsrc + TEXTURE_BLOCK * texture * 2 +
+ (TEXTURE_SIZE * 2 * col);
+ if (dark)
+ tex += TEXTURE_SIZE;
+
+ // start from the texture center (horizontally)
+ int h = static_cast<int>(bufw / hitdist / 2);
+ int dy = (TEXTURE_SIZE << 12) / h;
+ int p1 = ((TEXTURE_SIZE / 2) << 12) - dy;
+ int p2 = p1 + dy;
+
+ // start from the screen center (vertically)
+ // y1 will go up (decrease), y2 will go down (increase)
+ int y1 = bufh / 2;
+ int y2 = y1 + 1;
+ QRgb *pixel1 = start + y1 * stride + ray;
+ QRgb *pixel2 = pixel1 + stride;
+
+ // map the texture to the sliver
+ while (y1 >= 0 && y2 < bufh && p1 >= 0) {
+ *pixel1 = tex[p1 >> 12];
+ *pixel2 = tex[p2 >> 12];
+ p1 -= dy;
+ p2 += dy;
+ --y1;
+ ++y2;
+ pixel1 -= stride;
+ pixel2 += stride;
+ }
+
+ // ceiling and floor
+ for (; pixel1 > start; pixel1 -= stride)
+ *pixel1 = qRgb(0, 0, 0);
+ for (; pixel2 < finish; pixel2 += stride)
+ *pixel2 = qRgb(96, 96, 96);
+ }
+
+ update();
+ }
+
+protected:
+
+ void timerEvent(QTimerEvent*) {
+ updatePlayer();
+ render();
+ showFps();
+ }
+
+ void paintEvent(QPaintEvent *event) {
+ QPainter p(this);
+ p.drawImage(event->rect(), buffer, event->rect());
+ }
+
+ void keyPressEvent(QKeyEvent *event) {
+ event->accept();
+ if (event->key() == Qt::Key_Left)
+ angleDelta = 1.3 * M_PI;
+ if (event->key() == Qt::Key_Right)
+ angleDelta = -1.3 * M_PI;
+ if (event->key() == Qt::Key_Up)
+ moveDelta = 2.5;
+ if (event->key() == Qt::Key_Down)
+ moveDelta = -2.5;
+ }
+
+ void keyReleaseEvent(QKeyEvent *event) {
+ event->accept();
+ if (event->key() == Qt::Key_Left)
+ angleDelta = (angleDelta > 0) ? 0 : angleDelta;
+ if (event->key() == Qt::Key_Right)
+ angleDelta = (angleDelta < 0) ? 0 : angleDelta;
+ if (event->key() == Qt::Key_Up)
+ moveDelta = (moveDelta > 0) ? 0 : moveDelta;
+ if (event->key() == Qt::Key_Down)
+ moveDelta = (moveDelta < 0) ? 0 : moveDelta;
+ }
+
+private:
+ QTime watch;
+ QBasicTimer ticker;
+ QImage buffer;
+ qreal angle;
+ QPointF playerPos;
+ qreal angleDelta;
+ qreal moveDelta;
+ QImage textureImg;
+ int textureCount;
+};
+
+int main(int argc, char **argv)
+{
+ QApplication app(argc, argv);
+
+ Raycasting w;
+ w.setWindowTitle("Raycasting");
+#if defined(Q_OS_SYMBIAN)
+ w.showMaximized();
+#else
+ w.resize(640, 480);
+ w.show();
+#endif
+
+ return app.exec();
+}
diff --git a/demos/embedded/raycasting/raycasting.pro b/demos/embedded/raycasting/raycasting.pro
new file mode 100644
index 0000000..dae9412
--- /dev/null
+++ b/demos/embedded/raycasting/raycasting.pro
@@ -0,0 +1,3 @@
+TEMPLATE = app
+SOURCES = raycasting.cpp
+RESOURCES += raycasting.qrc
diff --git a/demos/embedded/raycasting/raycasting.qrc b/demos/embedded/raycasting/raycasting.qrc
new file mode 100644
index 0000000..974a060
--- /dev/null
+++ b/demos/embedded/raycasting/raycasting.qrc
@@ -0,0 +1,5 @@
+<RCC>
+ <qresource prefix="/" >
+ <file>textures.png</file>
+ </qresource>
+</RCC>
diff --git a/demos/embedded/raycasting/textures.png b/demos/embedded/raycasting/textures.png
new file mode 100644
index 0000000..839488b
--- /dev/null
+++ b/demos/embedded/raycasting/textures.png
Binary files differ
diff --git a/demos/embedded/styledemo/files/application.qss b/demos/embedded/styledemo/files/application.qss
index a632ad1..432fe6b 100644
--- a/demos/embedded/styledemo/files/application.qss
+++ b/demos/embedded/styledemo/files/application.qss
@@ -6,7 +6,7 @@ QWidget#StyleWidget
QLabel, QAbstractButton
{
- font: 18px bold;
+ font: bold;
color: beige;
}
diff --git a/demos/embedded/styledemo/files/blue.qss b/demos/embedded/styledemo/files/blue.qss
index aa87277..ac8671b 100644
--- a/demos/embedded/styledemo/files/blue.qss
+++ b/demos/embedded/styledemo/files/blue.qss
@@ -5,7 +5,7 @@
QLabel, QAbstractButton
{
- font: 10pt bold;
+ font: bold;
color: yellow;
}
@@ -28,7 +28,6 @@ QAbstractButton
border-style: solid;
border-radius: 5;
padding: 3px;
- qproperty-focusPolicy: NoFocus;
}
QAbstractButton:pressed
diff --git a/demos/embedded/styledemo/files/khaki.qss b/demos/embedded/styledemo/files/khaki.qss
index 9c0f77c..b0d4a0f 100644
--- a/demos/embedded/styledemo/files/khaki.qss
+++ b/demos/embedded/styledemo/files/khaki.qss
@@ -16,7 +16,6 @@ QPushButton, QToolButton {
padding: 3px;
/* min-width: 96px; */
/* min-height: 48px; */
- qproperty-focusPolicy: NoFocus
}
QPushButton:hover, QToolButton:hover {
@@ -30,7 +29,7 @@ QPushButton:pressed, QToolButton:pressed {
}
QLabel, QAbstractButton {
- font: italic 11pt "Times New Roman";
+ font: italic "Times New Roman";
}
QFrame, QLabel#title {
diff --git a/demos/embedded/styledemo/files/transparent.qss b/demos/embedded/styledemo/files/transparent.qss
index e3a9912..b38eb36 100644
--- a/demos/embedded/styledemo/files/transparent.qss
+++ b/demos/embedded/styledemo/files/transparent.qss
@@ -6,7 +6,6 @@ QWidget#StyleWidget
QLabel, QAbstractButton
{
- font: 13pt;
color: beige;
}
diff --git a/demos/embedded/styledemo/styledemo.pro b/demos/embedded/styledemo/styledemo.pro
index ee5e4d6..7107798 100644
--- a/demos/embedded/styledemo/styledemo.pro
+++ b/demos/embedded/styledemo/styledemo.pro
@@ -10,3 +10,8 @@ target.path = $$[QT_INSTALL_DEMOS]/embedded/styledemo
sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.pro *.html
sources.path = $$[QT_INSTALL_DEMOS]/embedded/styledemo
INSTALLS += target sources
+
+symbian {
+ include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
+ TARGET.UID3 = 0xA000A63F
+}
diff --git a/demos/embedded/styledemo/stylewidget.ui b/demos/embedded/styledemo/stylewidget.ui
index 586faea..a084dde 100644
--- a/demos/embedded/styledemo/stylewidget.ui
+++ b/demos/embedded/styledemo/stylewidget.ui
@@ -1,135 +1,139 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
<class>StyleWidget</class>
- <widget class="QWidget" name="StyleWidget" >
- <property name="geometry" >
+ <widget class="QWidget" name="StyleWidget">
+ <property name="geometry">
<rect>
<x>0</x>
<y>0</y>
- <width>339</width>
- <height>230</height>
+ <width>174</width>
+ <height>220</height>
</rect>
</property>
- <property name="windowTitle" >
+ <property name="windowTitle">
<string>Form</string>
</property>
- <layout class="QVBoxLayout" name="verticalLayout" >
- <property name="margin" >
- <number>3</number>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="margin">
+ <number>4</number>
</property>
<item>
- <widget class="QGroupBox" name="groupBox" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Preferred" hsizetype="Expanding" >
+ <widget class="QGroupBox" name="groupBox">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="title" >
+ <property name="title">
<string>Styles</string>
</property>
- <layout class="QHBoxLayout" >
- <property name="spacing" >
- <number>3</number>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <property name="margin">
+ <number>4</number>
</property>
- <property name="margin" >
- <number>3</number>
+ <property name="spacing">
+ <number>4</number>
</property>
- <item>
- <widget class="QPushButton" name="noStyle" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="MinimumExpanding" hsizetype="Minimum" >
+ <item row="0" column="0">
+ <widget class="QPushButton" name="transparentStyle">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="focusPolicy" >
- <enum>Qt::NoFocus</enum>
+ <property name="focusPolicy">
+ <enum>Qt::StrongFocus</enum>
</property>
- <property name="text" >
- <string>No-Style</string>
+ <property name="text">
+ <string>Transp.</string>
</property>
- <property name="checkable" >
+ <property name="checkable">
<bool>true</bool>
</property>
- <property name="checked" >
- <bool>true</bool>
+ <property name="checked">
+ <bool>false</bool>
</property>
- <property name="autoExclusive" >
+ <property name="autoExclusive">
<bool>true</bool>
</property>
</widget>
</item>
- <item>
- <widget class="QPushButton" name="blueStyle" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="MinimumExpanding" hsizetype="Minimum" >
+ <item row="2" column="0">
+ <widget class="QPushButton" name="blueStyle">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="focusPolicy" >
- <enum>Qt::NoFocus</enum>
+ <property name="focusPolicy">
+ <enum>Qt::StrongFocus</enum>
</property>
- <property name="text" >
+ <property name="text">
<string>Blue</string>
</property>
- <property name="checkable" >
+ <property name="checkable">
<bool>true</bool>
</property>
- <property name="checked" >
+ <property name="checked">
<bool>false</bool>
</property>
- <property name="autoExclusive" >
+ <property name="autoExclusive">
<bool>true</bool>
</property>
</widget>
</item>
- <item>
- <widget class="QPushButton" name="khakiStyle" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="MinimumExpanding" hsizetype="Minimum" >
+ <item row="0" column="1">
+ <widget class="QPushButton" name="khakiStyle">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="focusPolicy" >
- <enum>Qt::NoFocus</enum>
+ <property name="focusPolicy">
+ <enum>Qt::StrongFocus</enum>
</property>
- <property name="text" >
+ <property name="text">
<string>Khaki</string>
</property>
- <property name="checkable" >
+ <property name="checkable">
<bool>true</bool>
</property>
- <property name="checked" >
+ <property name="checked">
<bool>false</bool>
</property>
- <property name="autoExclusive" >
+ <property name="autoExclusive">
<bool>true</bool>
</property>
</widget>
</item>
- <item>
- <widget class="QPushButton" name="transparentStyle" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="MinimumExpanding" hsizetype="Minimum" >
+ <item row="2" column="1">
+ <widget class="QPushButton" name="noStyle">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="focusPolicy" >
- <enum>Qt::NoFocus</enum>
+ <property name="focusPolicy">
+ <enum>Qt::StrongFocus</enum>
</property>
- <property name="text" >
- <string>Transparent</string>
+ <property name="text">
+ <string>None</string>
</property>
- <property name="checkable" >
+ <property name="checkable">
<bool>true</bool>
</property>
- <property name="checked" >
- <bool>false</bool>
+ <property name="checked">
+ <bool>true</bool>
</property>
- <property name="autoExclusive" >
+ <property name="autoExclusive">
<bool>true</bool>
</property>
</widget>
@@ -138,11 +142,11 @@
</widget>
</item>
<item>
- <spacer name="verticalSpacer_3" >
- <property name="orientation" >
+ <spacer name="verticalSpacer_3">
+ <property name="orientation">
<enum>Qt::Vertical</enum>
</property>
- <property name="sizeHint" stdset="0" >
+ <property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>0</height>
@@ -151,56 +155,56 @@
</spacer>
</item>
<item>
- <widget class="QFrame" name="frame" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="MinimumExpanding" hsizetype="Expanding" >
+ <widget class="QFrame" name="frame">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="frameShape" >
+ <property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
- <property name="frameShadow" >
+ <property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
- <layout class="QVBoxLayout" name="frameLayout" >
- <property name="margin" >
- <number>3</number>
+ <layout class="QVBoxLayout" name="frameLayout">
+ <property name="margin">
+ <number>0</number>
</property>
<item>
- <layout class="QHBoxLayout" name="horizontalLayout" >
+ <layout class="QHBoxLayout" name="horizontalLayout">
<item>
- <widget class="QLabel" name="label" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Preferred" hsizetype="MinimumExpanding" >
+ <widget class="QLabel" name="label">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="text" >
+ <property name="text">
<string>My Value is:</string>
</property>
- <property name="alignment" >
+ <property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
- <widget class="QSpinBox" name="spinBox" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Minimum" >
+ <widget class="QSpinBox" name="spinBox">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="focusPolicy" >
- <enum>Qt::NoFocus</enum>
+ <property name="focusPolicy">
+ <enum>Qt::WheelFocus</enum>
</property>
- <property name="alignment" >
+ <property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
- <property name="keyboardTracking" >
+ <property name="keyboardTracking">
<bool>false</bool>
</property>
</widget>
@@ -208,85 +212,88 @@
</layout>
</item>
<item>
- <layout class="QGridLayout" name="gridLayout" >
- <item row="0" column="0" >
- <widget class="QScrollBar" name="horizontalScrollBar" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+ <layout class="QGridLayout" name="gridLayout">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <item row="0" column="0">
+ <widget class="QScrollBar" name="horizontalScrollBar">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="minimumSize" >
+ <property name="minimumSize">
<size>
<width>0</width>
<height>24</height>
</size>
</property>
- <property name="orientation" >
+ <property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
- <item row="1" column="0" >
- <widget class="QPushButton" name="pushButton_2" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="MinimumExpanding" hsizetype="MinimumExpanding" >
+ <item row="1" column="0">
+ <widget class="QPushButton" name="pushButton_2">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="focusPolicy" >
- <enum>Qt::NoFocus</enum>
+ <property name="focusPolicy">
+ <enum>Qt::StrongFocus</enum>
</property>
- <property name="text" >
- <string>Show Scroller</string>
+ <property name="text">
+ <string>Show</string>
</property>
- <property name="checkable" >
+ <property name="checkable">
<bool>true</bool>
</property>
- <property name="checked" >
+ <property name="checked">
<bool>true</bool>
</property>
- <property name="flat" >
+ <property name="flat">
<bool>false</bool>
</property>
</widget>
</item>
- <item row="0" column="1" >
- <widget class="QScrollBar" name="horizontalScrollBar_2" >
- <property name="minimumSize" >
+ <item row="0" column="1">
+ <widget class="QScrollBar" name="horizontalScrollBar_2">
+ <property name="minimumSize">
<size>
<width>0</width>
<height>24</height>
</size>
</property>
- <property name="orientation" >
+ <property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
- <item row="1" column="1" >
- <widget class="QPushButton" name="pushButton" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="MinimumExpanding" hsizetype="MinimumExpanding" >
+ <item row="1" column="1">
+ <widget class="QPushButton" name="pushButton">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="focusPolicy" >
- <enum>Qt::NoFocus</enum>
+ <property name="focusPolicy">
+ <enum>Qt::StrongFocus</enum>
</property>
- <property name="text" >
- <string>Enable Scroller</string>
+ <property name="text">
+ <string>Enable</string>
</property>
- <property name="checkable" >
+ <property name="checkable">
<bool>true</bool>
</property>
- <property name="checked" >
+ <property name="checked">
<bool>true</bool>
</property>
- <property name="flat" >
+ <property name="flat">
<bool>false</bool>
</property>
</widget>
@@ -297,14 +304,14 @@
</widget>
</item>
<item>
- <spacer name="verticalSpacer" >
- <property name="orientation" >
+ <spacer name="verticalSpacer">
+ <property name="orientation">
<enum>Qt::Vertical</enum>
</property>
- <property name="sizeType" >
+ <property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
- <property name="sizeHint" stdset="0" >
+ <property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>0</height>
@@ -313,13 +320,13 @@
</spacer>
</item>
<item>
- <layout class="QHBoxLayout" >
+ <layout class="QHBoxLayout">
<item>
<spacer>
- <property name="orientation" >
+ <property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
- <property name="sizeHint" stdset="0" >
+ <property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
@@ -328,11 +335,11 @@
</spacer>
</item>
<item>
- <widget class="QPushButton" name="close" >
- <property name="focusPolicy" >
- <enum>Qt::NoFocus</enum>
+ <widget class="QPushButton" name="close">
+ <property name="focusPolicy">
+ <enum>Qt::StrongFocus</enum>
</property>
- <property name="text" >
+ <property name="text">
<string>Close</string>
</property>
</widget>
@@ -342,7 +349,7 @@
</layout>
</widget>
<resources>
- <include location="StyleDemo.qrc" />
+ <include location="StyleDemo.qrc"/>
</resources>
<connections>
<connection>
@@ -351,13 +358,13 @@
<receiver>horizontalScrollBar_2</receiver>
<slot>setValue(int)</slot>
<hints>
- <hint type="sourcelabel" >
- <x>134</x>
- <y>196</y>
+ <hint type="sourcelabel">
+ <x>84</x>
+ <y>147</y>
</hint>
- <hint type="destinationlabel" >
- <x>523</x>
- <y>193</y>
+ <hint type="destinationlabel">
+ <x>166</x>
+ <y>147</y>
</hint>
</hints>
</connection>
@@ -367,13 +374,13 @@
<receiver>horizontalScrollBar</receiver>
<slot>setValue(int)</slot>
<hints>
- <hint type="sourcelabel" >
- <x>577</x>
- <y>199</y>
+ <hint type="sourcelabel">
+ <x>166</x>
+ <y>147</y>
</hint>
- <hint type="destinationlabel" >
- <x>127</x>
- <y>207</y>
+ <hint type="destinationlabel">
+ <x>84</x>
+ <y>147</y>
</hint>
</hints>
</connection>
@@ -383,13 +390,13 @@
<receiver>horizontalScrollBar_2</receiver>
<slot>setEnabled(bool)</slot>
<hints>
- <hint type="sourcelabel" >
- <x>566</x>
- <y>241</y>
+ <hint type="sourcelabel">
+ <x>166</x>
+ <y>175</y>
</hint>
- <hint type="destinationlabel" >
- <x>492</x>
- <y>207</y>
+ <hint type="destinationlabel">
+ <x>166</x>
+ <y>147</y>
</hint>
</hints>
</connection>
@@ -399,13 +406,13 @@
<receiver>horizontalScrollBar</receiver>
<slot>setVisible(bool)</slot>
<hints>
- <hint type="sourcelabel" >
- <x>123</x>
- <y>239</y>
+ <hint type="sourcelabel">
+ <x>84</x>
+ <y>175</y>
</hint>
- <hint type="destinationlabel" >
- <x>123</x>
- <y>184</y>
+ <hint type="destinationlabel">
+ <x>84</x>
+ <y>147</y>
</hint>
</hints>
</connection>
@@ -415,13 +422,29 @@
<receiver>horizontalScrollBar_2</receiver>
<slot>setValue(int)</slot>
<hints>
- <hint type="sourcelabel" >
- <x>603</x>
- <y>136</y>
+ <hint type="sourcelabel">
+ <x>166</x>
+ <y>115</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>166</x>
+ <y>147</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>horizontalScrollBar_2</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>spinBox</receiver>
+ <slot>setValue(int)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>132</x>
+ <y>132</y>
</hint>
- <hint type="destinationlabel" >
- <x>575</x>
- <y>199</y>
+ <hint type="destinationlabel">
+ <x>135</x>
+ <y>110</y>
</hint>
</hints>
</connection>
diff --git a/demos/embedded/weatherinfo/icons/README.txt b/demos/embedded/weatherinfo/icons/README.txt
new file mode 100644
index 0000000..d384153
--- /dev/null
+++ b/demos/embedded/weatherinfo/icons/README.txt
@@ -0,0 +1,5 @@
+The scalable icons are from:
+
+http://tango.freedesktop.org/Tango_Icon_Library
+http://darkobra.deviantart.com/art/Tango-Weather-Icon-Pack-98024429
+
diff --git a/demos/embedded/weatherinfo/icons/weather-few-clouds.svg b/demos/embedded/weatherinfo/icons/weather-few-clouds.svg
new file mode 100644
index 0000000..57d45e9
--- /dev/null
+++ b/demos/embedded/weatherinfo/icons/weather-few-clouds.svg
@@ -0,0 +1,738 @@
+<?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="48px"
+ height="48px"
+ id="svg1306"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docbase="/home/garrett/Source/tango-icon-theme/scalable/status"
+ sodipodi:docname="weather-few-clouds.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs1308">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 24 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective108" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient6724"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient6722"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient6720"
+ gradientUnits="userSpaceOnUse"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient6718"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient6716"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient6714"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient6712"
+ gradientUnits="userSpaceOnUse"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient6839"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6549">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6551" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6553" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient6837"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6527">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6530" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6532" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient6835"
+ gradientUnits="userSpaceOnUse"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6538">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6540" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6542" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient6833"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6513">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6515" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6517" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient6831"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6497">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6499" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6501" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient6829"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6470">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6472" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6474" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient6827"
+ gradientUnits="userSpaceOnUse"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ id="linearGradient4083">
+ <stop
+ id="stop4085"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="0.75"
+ id="stop4089" />
+ <stop
+ id="stop4087"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4032">
+ <stop
+ id="stop4034"
+ offset="0"
+ style="stop-color:#fff7c2;stop-opacity:0.63829786" />
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:0.18348624;"
+ offset="0.59394139"
+ id="stop4036" />
+ <stop
+ id="stop4038"
+ offset="0.83850551"
+ style="stop-color:#fcaf3e;stop-opacity:0.50458717;" />
+ <stop
+ id="stop4040"
+ offset="1"
+ style="stop-color:#fcaf3e;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4026">
+ <stop
+ id="stop4028"
+ offset="0"
+ style="stop-color:#fff9c6;stop-opacity:1" />
+ <stop
+ style="stop-color:#fff28c;stop-opacity:1;"
+ offset="0.54166669"
+ id="stop4042" />
+ <stop
+ id="stop4030"
+ offset="1"
+ style="stop-color:#ffea85;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4026"
+ id="linearGradient3168"
+ gradientUnits="userSpaceOnUse"
+ x1="-28.968945"
+ y1="-25.326815"
+ x2="-37.19698"
+ y2="-9.5590506" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4032"
+ id="radialGradient4020"
+ cx="-33.519073"
+ cy="-22.113297"
+ fx="-33.519073"
+ fy="-22.113297"
+ r="9.5"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.487739,1.292402,-1.10267,0.497242,-41.77393,32.41492)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4083"
+ id="radialGradient4081"
+ cx="23.99999"
+ cy="23.381506"
+ fx="23.99999"
+ fy="23.381506"
+ r="19.141981"
+ gradientTransform="matrix(1.006701,2.235326e-16,-2.23715e-16,1.007522,-0.160816,0.426981)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="10.54135"
+ inkscape:cx="8.0181254"
+ inkscape:cy="24.950603"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="859"
+ inkscape:window-height="818"
+ inkscape:window-x="0"
+ inkscape:window-y="30"
+ inkscape:showpageshadow="false" />
+ <metadata
+ id="metadata1311">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>weather-clear</dc:title>
+ <dc:date>January 2006</dc:date>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Ryan Collier (pseudo)</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title>http://www.tango-project.org</dc:title>
+ </cc:Agent>
+ </dc:publisher>
+ <dc:source>http://www.pseudocode.org</dc:source>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>weather</rdf:li>
+ <rdf:li>applet</rdf:li>
+ <rdf:li>notification</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title>Garrett LeSage</dc:title>
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/publicdomain/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <g
+ id="g6783"
+ transform="translate(-263.99,459.9855)">
+ <path
+ sodipodi:nodetypes="ccsscsssscsscc"
+ id="path6785"
+ d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z "
+ style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ sodipodi:nodetypes="ccsscsssscsscc"
+ id="path6787"
+ d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z "
+ style="opacity:1.0000000;fill:url(#linearGradient6827);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <g
+ id="g6789">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path6791"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:url(#linearGradient6829);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path6793"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" />
+ </g>
+ <rect
+ y="-438.00000"
+ x="271.00000"
+ height="9.0000000"
+ width="20.000000"
+ id="rect6795"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path6797"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <g
+ id="g6799">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path6801"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:url(#linearGradient6831);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path6803"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" />
+ </g>
+ <g
+ id="g6805">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path6807"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:url(#linearGradient6833);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path6809"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" />
+ </g>
+ <g
+ transform="translate(-1.000000,0.000000)"
+ id="g6811">
+ <path
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z "
+ id="path6813" />
+ <path
+ style="opacity:1.0000000;fill:url(#linearGradient6835);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z "
+ id="path6815" />
+ </g>
+ <path
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path6817"
+ style="opacity:1.0000000;fill:url(#linearGradient6837);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="ccss"
+ id="path6819"
+ d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z "
+ style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
+ <g
+ transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"
+ id="g6821">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path6823"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:url(#linearGradient6839);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path6825"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" />
+ </g>
+ </g>
+ <g
+ id="g3936">
+ <g
+ style="opacity:0.7"
+ id="g4091">
+ <path
+ style="fill:#fce94f;fill-opacity:1;stroke:#fcaf3e;stroke-width:0.73732895;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 24 2.5 L 21.625 9.1875 C 22.399034 9.0641318 23.191406 9 24 9 C 24.808594 9 25.600966 9.0641317 26.375 9.1875 L 24 2.5 z M 8.8125 8.78125 L 11.84375 15.21875 C 12.779034 13.928569 13.928569 12.779034 15.21875 11.84375 L 8.8125 8.78125 z M 39.21875 8.78125 L 32.78125 11.84375 C 34.071431 12.779034 35.220966 13.928569 36.15625 15.21875 L 39.21875 8.78125 z M 9.1875 21.59375 L 2.5 23.96875 L 9.1875 26.34375 C 9.0673373 25.57952 9 24.797813 9 24 C 9 23.180625 9.0608858 22.377571 9.1875 21.59375 z M 38.8125 21.625 C 38.935868 22.399034 39 23.191406 39 24 C 39 24.808594 38.935868 25.600966 38.8125 26.375 L 45.5 24 L 38.8125 21.625 z M 11.84375 32.78125 L 8.8125 39.1875 L 15.21875 36.15625 C 13.928569 35.220966 12.779034 34.071431 11.84375 32.78125 z M 36.15625 32.78125 C 35.229789 34.05926 34.087617 35.194799 32.8125 36.125 L 39.21875 39.1875 L 36.15625 32.78125 z M 21.625 38.8125 L 24 45.5 L 26.375 38.8125 C 25.600966 38.935868 24.808594 39 24 39 C 23.191406 39 22.399034 38.935868 21.625 38.8125 z "
+ id="path7492" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:url(#radialGradient4081);stroke-width:0.84646249;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 24 5.25 L 22.65625 9.0625 C 23.098888 9.0231486 23.547187 9 24 9 C 24.452813 9 24.901112 9.0231486 25.34375 9.0625 L 24 5.25 z M 10.78125 10.75 L 12.5 14.375 C 13.071538 13.694089 13.724004 13.038745 14.40625 12.46875 L 10.78125 10.75 z M 37.25 10.75 L 33.625 12.46875 C 34.304675 13.038189 34.961811 13.695325 35.53125 14.375 L 37.25 10.75 z M 9.0625 22.625 L 5.28125 23.96875 L 9.0625 25.3125 C 9.024981 24.880146 9 24.442031 9 24 C 9 23.536406 9.0212735 23.077908 9.0625 22.625 z M 38.9375 22.65625 C 38.976851 23.098888 39 23.547187 39 24 C 39 24.452813 38.976851 24.901112 38.9375 25.34375 L 42.71875 24 L 38.9375 22.65625 z M 35.53125 33.59375 C 34.958293 34.27954 34.309985 34.957363 33.625 35.53125 L 37.25 37.25 L 35.53125 33.59375 z M 12.5 33.625 L 10.78125 37.21875 L 14.375 35.5 C 13.702932 34.935884 13.064116 34.297068 12.5 33.625 z M 22.65625 38.9375 L 24 42.71875 L 25.34375 38.9375 C 24.901112 38.976851 24.452813 39 24 39 C 23.547187 39 23.098888 38.976851 22.65625 38.9375 z "
+ id="path7494" />
+ </g>
+ <g
+ id="g4046">
+ <g
+ id="g3931">
+ <path
+ inkscape:r_cy="true"
+ inkscape:r_cx="true"
+ transform="matrix(0.778062,-1.061285,1.061287,0.778062,67.47952,3.641324)"
+ d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z"
+ sodipodi:ry="9.5"
+ sodipodi:rx="9.5"
+ sodipodi:cy="-17.5"
+ sodipodi:cx="-32"
+ id="path7498"
+ style="fill:#ffee54;fill-opacity:1;stroke:#fcaf3e;stroke-width:0.75991178;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ inkscape:r_cy="true"
+ inkscape:r_cx="true"
+ transform="matrix(1.244257,-0.167707,0.216642,1.251844,67.61648,40.527)"
+ d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z"
+ sodipodi:ry="9.5"
+ sodipodi:rx="9.5"
+ sodipodi:cy="-17.5"
+ sodipodi:cx="-32"
+ id="path7500"
+ style="fill:url(#radialGradient4020);fill-opacity:1;stroke:none;stroke-width:1.01737845;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ inkscape:r_cy="true"
+ inkscape:r_cx="true"
+ transform="matrix(0.715791,-0.976349,0.97635,0.715792,64.00044,5.269544)"
+ d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z"
+ sodipodi:ry="9.5"
+ sodipodi:rx="9.5"
+ sodipodi:cy="-17.5"
+ sodipodi:cx="-32"
+ id="path7502"
+ style="fill:none;fill-opacity:1;stroke:url(#linearGradient3168);stroke-width:0.82601947;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ </g>
+ <g
+ id="g6668"
+ transform="translate(-248.99,467.9855)">
+ <path
+ sodipodi:nodetypes="ccsscsssscsscc"
+ id="path6670"
+ d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z "
+ style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ sodipodi:nodetypes="ccsscsssscsscc"
+ id="path6672"
+ d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z "
+ style="opacity:1.0000000;fill:url(#linearGradient6712);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <g
+ id="g6674">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path6676"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:url(#linearGradient6714);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path6678"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" />
+ </g>
+ <rect
+ y="-438.00000"
+ x="271.00000"
+ height="9.0000000"
+ width="20.000000"
+ id="rect6680"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path6682"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <g
+ id="g6684">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path6686"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:url(#linearGradient6716);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path6688"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" />
+ </g>
+ <g
+ id="g6690">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path6692"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:url(#linearGradient6718);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path6694"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" />
+ </g>
+ <g
+ transform="translate(-1.000000,0.000000)"
+ id="g6696">
+ <path
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z "
+ id="path6698" />
+ <path
+ style="opacity:1.0000000;fill:url(#linearGradient6720);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z "
+ id="path6700" />
+ </g>
+ <path
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path6702"
+ style="opacity:1.0000000;fill:url(#linearGradient6722);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="ccss"
+ id="path6704"
+ d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z "
+ style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
+ <g
+ transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"
+ id="g6706">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path6708"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:url(#linearGradient6724);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path6710"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/demos/embedded/weatherinfo/icons/weather-fog.svg b/demos/embedded/weatherinfo/icons/weather-fog.svg
new file mode 100644
index 0000000..a9a4ca8
--- /dev/null
+++ b/demos/embedded/weatherinfo/icons/weather-fog.svg
@@ -0,0 +1,1585 @@
+<?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="48"
+ height="48"
+ id="svg2670"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docname="weather-fog.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs2672">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6549">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6551" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6553" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6527">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6530" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6532" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6538">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6540" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6542" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6513">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6515" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6517" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6497">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6499" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6501" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6470">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6472" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6474" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient7834">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop7836" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop7838" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8397">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8400" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8402" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8315">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8317" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8319" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8381">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8383" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8385" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8331">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8333" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8335" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8302">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8304" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8306" />
+ </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="perspective2678" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8302"
+ id="linearGradient4844"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(69.00259,102)"
+ x1="228.50261"
+ y1="-392.30591"
+ x2="278.91510"
+ y2="-375.37952" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8331"
+ id="linearGradient4846"
+ gradientUnits="userSpaceOnUse"
+ x1="240.07379"
+ y1="-393.40720"
+ x2="245.82706"
+ y2="-388.55029" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8381"
+ id="linearGradient4848"
+ gradientUnits="userSpaceOnUse"
+ x1="246.74042"
+ y1="-391.31381"
+ x2="252.69785"
+ y2="-385.35165" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8315"
+ id="linearGradient4850"
+ gradientUnits="userSpaceOnUse"
+ x1="230.87598"
+ y1="-390.43951"
+ x2="235.25652"
+ y2="-386.95901" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8397"
+ id="linearGradient4852"
+ gradientUnits="userSpaceOnUse"
+ x1="238.00478"
+ y1="-388.47476"
+ x2="245.65462"
+ y2="-382.64539" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7834"
+ id="linearGradient4854"
+ gradientUnits="userSpaceOnUse"
+ x1="-156.29044"
+ y1="-100.53421"
+ x2="-153.09810"
+ y2="-96.544556" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient4856"
+ gradientUnits="userSpaceOnUse"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient4858"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient4860"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient4862"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient4864"
+ gradientUnits="userSpaceOnUse"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient4866"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient4868"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient4870"
+ gradientUnits="userSpaceOnUse"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient4872"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient4874"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient4876"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient4878"
+ gradientUnits="userSpaceOnUse"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient4880"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient4882"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8302"
+ id="linearGradient5018"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(69.00259,102)"
+ x1="228.50261"
+ y1="-392.30591"
+ x2="278.91510"
+ y2="-375.37952" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8331"
+ id="linearGradient5020"
+ gradientUnits="userSpaceOnUse"
+ x1="240.07379"
+ y1="-393.40720"
+ x2="245.82706"
+ y2="-388.55029" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8381"
+ id="linearGradient5022"
+ gradientUnits="userSpaceOnUse"
+ x1="246.74042"
+ y1="-391.31381"
+ x2="252.69785"
+ y2="-385.35165" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8315"
+ id="linearGradient5024"
+ gradientUnits="userSpaceOnUse"
+ x1="230.87598"
+ y1="-390.43951"
+ x2="235.25652"
+ y2="-386.95901" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8397"
+ id="linearGradient5026"
+ gradientUnits="userSpaceOnUse"
+ x1="238.00478"
+ y1="-388.47476"
+ x2="245.65462"
+ y2="-382.64539" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7834"
+ id="linearGradient5028"
+ gradientUnits="userSpaceOnUse"
+ x1="-156.29044"
+ y1="-100.53421"
+ x2="-153.09810"
+ y2="-96.544556" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient5030"
+ gradientUnits="userSpaceOnUse"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient5032"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient5034"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient5036"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient5038"
+ gradientUnits="userSpaceOnUse"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient5040"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient5042"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient5044"
+ gradientUnits="userSpaceOnUse"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient5046"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient5048"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient5050"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient5052"
+ gradientUnits="userSpaceOnUse"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient5054"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient5056"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8302"
+ id="linearGradient5119"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-245.83994,432.62036)"
+ x1="228.50261"
+ y1="-392.30591"
+ x2="278.91510"
+ y2="-375.37952" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient5122"
+ gradientUnits="userSpaceOnUse"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient5124"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient5126"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient5128"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient5130"
+ gradientUnits="userSpaceOnUse"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient5132"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient5134"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient5156"
+ gradientUnits="userSpaceOnUse"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991"
+ gradientTransform="translate(-276.83994,492.62036)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient5159"
+ gradientUnits="userSpaceOnUse"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient5161"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient5163"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient5165"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient5167"
+ gradientUnits="userSpaceOnUse"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient5169"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient5171"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient5193"
+ gradientUnits="userSpaceOnUse"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991"
+ gradientTransform="translate(-291.84253,488.62036)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient5221"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-291.84253,488.62036)"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8302"
+ id="linearGradient5298"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(69.00259,102)"
+ x1="228.50261"
+ y1="-392.30591"
+ x2="278.91510"
+ y2="-375.37952" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8331"
+ id="linearGradient5300"
+ gradientUnits="userSpaceOnUse"
+ x1="240.07379"
+ y1="-393.40720"
+ x2="245.82706"
+ y2="-388.55029" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8381"
+ id="linearGradient5302"
+ gradientUnits="userSpaceOnUse"
+ x1="246.74042"
+ y1="-391.31381"
+ x2="252.69785"
+ y2="-385.35165" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8315"
+ id="linearGradient5304"
+ gradientUnits="userSpaceOnUse"
+ x1="230.87598"
+ y1="-390.43951"
+ x2="235.25652"
+ y2="-386.95901" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8397"
+ id="linearGradient5306"
+ gradientUnits="userSpaceOnUse"
+ x1="238.00478"
+ y1="-388.47476"
+ x2="245.65462"
+ y2="-382.64539" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7834"
+ id="linearGradient5308"
+ gradientUnits="userSpaceOnUse"
+ x1="-156.29044"
+ y1="-100.53421"
+ x2="-153.09810"
+ y2="-96.544556" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient5310"
+ gradientUnits="userSpaceOnUse"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient5312"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient5314"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient5316"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient5318"
+ gradientUnits="userSpaceOnUse"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient5320"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient5322"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient5324"
+ gradientUnits="userSpaceOnUse"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient5326"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient5328"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient5330"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient5332"
+ gradientUnits="userSpaceOnUse"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient5334"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient5336"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8302"
+ id="linearGradient5399"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-217.99871,406.5)"
+ x1="228.50261"
+ y1="-392.30591"
+ x2="278.91510"
+ y2="-375.37952" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8302"
+ id="linearGradient5432"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-245.83994,432.62036)"
+ x1="228.50261"
+ y1="-392.30591"
+ x2="278.91510"
+ y2="-375.37952" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient5434"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-276.83994,492.62036)"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient5436"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-291.84253,488.62036)"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8302"
+ id="linearGradient5515"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-217.99871,406.5)"
+ x1="228.50261"
+ y1="-392.30591"
+ x2="278.91510"
+ y2="-375.37952" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8331"
+ id="linearGradient5517"
+ gradientUnits="userSpaceOnUse"
+ x1="240.07379"
+ y1="-393.40720"
+ x2="245.82706"
+ y2="-388.55029" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8381"
+ id="linearGradient5519"
+ gradientUnits="userSpaceOnUse"
+ x1="246.74042"
+ y1="-391.31381"
+ x2="252.69785"
+ y2="-385.35165" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8315"
+ id="linearGradient5521"
+ gradientUnits="userSpaceOnUse"
+ x1="230.87598"
+ y1="-390.43951"
+ x2="235.25652"
+ y2="-386.95901" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8397"
+ id="linearGradient5523"
+ gradientUnits="userSpaceOnUse"
+ x1="238.00478"
+ y1="-388.47476"
+ x2="245.65462"
+ y2="-382.64539" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7834"
+ id="linearGradient5525"
+ gradientUnits="userSpaceOnUse"
+ x1="-156.29044"
+ y1="-100.53421"
+ x2="-153.09810"
+ y2="-96.544556" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient5527"
+ gradientUnits="userSpaceOnUse"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient5529"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient5531"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient5533"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient5535"
+ gradientUnits="userSpaceOnUse"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient5537"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient5539"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient5541"
+ gradientUnits="userSpaceOnUse"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient5543"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient5545"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient5547"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient5549"
+ gradientUnits="userSpaceOnUse"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient5551"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient5553"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient5689"
+ gradientUnits="userSpaceOnUse"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient5691"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient5693"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient5695"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient5697"
+ gradientUnits="userSpaceOnUse"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient5699"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient5701"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient5703"
+ gradientUnits="userSpaceOnUse"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient5705"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient5707"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient5709"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient5711"
+ gradientUnits="userSpaceOnUse"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient5713"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient5715"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ </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="16.270833"
+ inkscape:cx="12.725406"
+ inkscape:cy="24"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1272"
+ inkscape:window-height="965"
+ inkscape:window-x="0"
+ inkscape:window-y="0" />
+ <metadata
+ id="metadata2675">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <g
+ id="g5641"
+ transform="translate(5e-6,-4)">
+ <g
+ style="opacity:0.45"
+ transform="translate(-248.99871,466.5)"
+ id="g7794">
+ <path
+ style="fill:#c4c5c2;fill-opacity:1;stroke:#888a85;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 280.5,-445.5 C 278.22917,-445.5 276.39009,-443.94972 275.78125,-441.875 C 275.08802,-442.23883 274.33674,-442.5 273.5,-442.5 C 270.74,-442.5 268.49999,-440.26001 268.5,-437.5 C 268.5,-436.92107 268.66252,-436.3923 268.84375,-435.875 C 267.47028,-435.10426 266.5,-433.686 266.5,-432 C 266.5,-429.516 268.516,-427.49999 271,-427.5 C 271.17713,-427.5 289.82287,-427.5 290,-427.5 C 292.48399,-427.5 294.5,-429.516 294.5,-432 C 294.5,-433.686 293.52972,-435.10426 292.15625,-435.875 C 292.33749,-436.39229 292.5,-436.92108 292.5,-437.5 C 292.5,-440.26 290.26,-442.49999 287.5,-442.5 C 286.66326,-442.5 285.91198,-442.23883 285.21875,-441.875 C 284.60991,-443.94972 282.77083,-445.5 280.5,-445.5 z"
+ id="path7796"
+ sodipodi:nodetypes="ccsscsssscsscc" />
+ <path
+ style="opacity:1;fill:url(#linearGradient5689);fill-opacity:1;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 280.5,-445 C 278.31028,-445 276.7764,-443.66423 276.10445,-441.15648 C 275.43599,-441.5001 274.55686,-441.98983 273.75,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.1124,-434.89433 267,-433.73178 267,-432.24973 C 267,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294,-429.90368 294,-432.24973 C 294,-433.8421 292.8876,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.051 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.6082,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445 280.5,-445 z"
+ id="path7798"
+ sodipodi:nodetypes="ccsscsssscsscc" />
+ <g
+ id="g7800">
+ <path
+ transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)"
+ d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
+ sodipodi:ry="3.3125"
+ sodipodi:rx="3.3125"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.375"
+ id="path7802"
+ style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)"
+ d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
+ sodipodi:ry="3.3125"
+ sodipodi:rx="3.3125"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.375"
+ id="path7804"
+ style="opacity:1;fill:url(#linearGradient5691);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </g>
+ <rect
+ style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect7806"
+ width="20"
+ height="9"
+ x="271"
+ y="-438" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7808"
+ sodipodi:cx="288.375"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125"
+ sodipodi:ry="3.3125"
+ d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
+ transform="matrix(0.90566,0,0,0.90566,9.830195,-35.68869)" />
+ <g
+ id="g7810">
+ <path
+ transform="matrix(1.056604,0,0,1.056604,-17.19811,24.86321)"
+ d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
+ sodipodi:ry="3.3125"
+ sodipodi:rx="3.3125"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.375"
+ id="path7812"
+ style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0,0,1.056604,-17.19818,24.86331)"
+ d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
+ sodipodi:ry="3.3125"
+ sodipodi:rx="3.3125"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.375"
+ id="path7814"
+ style="opacity:1;fill:url(#linearGradient5693);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g7816">
+ <path
+ transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)"
+ d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
+ sodipodi:ry="3.3125"
+ sodipodi:rx="3.3125"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.375"
+ id="path7818"
+ style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)"
+ d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
+ sodipodi:ry="3.3125"
+ sodipodi:rx="3.3125"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.375"
+ id="path7820"
+ style="opacity:1;fill:url(#linearGradient5695);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g7822"
+ transform="translate(-1,0)">
+ <path
+ id="path7824"
+ d="M 280.46875,-440.96875 C 276.88937,-440.96875 274,-438.04812 274,-434.46875 C 274,-432.09807 275.34943,-430.13096 277.25,-429 L 283.71875,-429 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.5 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z"
+ style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ id="path7826"
+ d="M 280.5,-441 C 276.912,-441 274,-438.08799 274,-434.5 C 274,-432.1236 275.34485,-430.13368 277.25,-429 L 283.75,-429 C 285.65515,-430.13368 287,-432.1236 287,-434.5 C 287,-438.088 284.088,-440.99999 280.5,-441 z"
+ style="opacity:1;fill:url(#linearGradient5697);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#linearGradient5699);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7828"
+ sodipodi:cx="288.375"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125"
+ sodipodi:ry="3.3125"
+ d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
+ transform="matrix(0.90566,0,0,0.90566,9.830296,-35.68884)" />
+ <path
+ style="fill:#888a85;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 292.9564,-437.33396 C 292.95487,-434.6494 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.9564,-437.33396 292.9564,-437.33396 z"
+ id="path7830"
+ sodipodi:nodetypes="ccss" />
+ <g
+ id="g7832"
+ transform="matrix(1.142857,0,0,1.142857,-28.57139,67.00008)">
+ <path
+ transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)"
+ d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
+ sodipodi:ry="3.3125"
+ sodipodi:rx="3.3125"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.375"
+ id="path7834"
+ style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)"
+ d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
+ sodipodi:ry="3.3125"
+ sodipodi:rx="3.3125"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.375"
+ id="path7836"
+ style="opacity:1;fill:url(#linearGradient5701);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ <path
+ sodipodi:nodetypes="ccsscsssscsscc"
+ id="path4934"
+ d="M 31.501294,21.49982 C 29.311574,21.49982 27.777694,22.83559 27.105744,25.34334 C 26.437284,24.99972 25.558154,24.50999 24.751294,24.50999 C 22.034784,24.50999 19.996154,26.44881 19.996164,29.05553 C 19.996164,29.6023 20.263374,30.38897 20.438124,30.87754 C 19.113694,31.60549 18.001294,32.76804 18.001294,34.25009 C 18.001294,36.59614 19.547464,38.50018 22.340574,38.50018 C 22.511384,38.50018 40.491214,38.50018 40.662014,38.50018 C 43.433024,38.50018 45.001294,36.59614 45.001294,34.25009 C 45.001294,32.65772 43.888894,31.5834 42.564464,30.85545 C 42.739224,30.36689 43.028534,29.60229 43.028534,29.05553 C 43.028534,26.44882 40.912724,24.4879 38.251304,24.48789 C 37.444434,24.48789 36.609494,24.97763 35.941034,25.32125 C 35.292184,22.89971 33.691024,21.49982 31.501294,21.49982 z"
+ style="opacity:0.45;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <g
+ style="opacity:0.45"
+ transform="translate(-264.0013,462.5)"
+ id="g7852">
+ <path
+ style="fill:#c4c5c2;fill-opacity:1;stroke:#888a85;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 280.5,-445.5 C 278.22917,-445.5 276.39009,-443.94972 275.78125,-441.875 C 275.08802,-442.23883 274.33674,-442.5 273.5,-442.5 C 270.74,-442.5 268.49999,-440.26001 268.5,-437.5 C 268.5,-436.92107 268.66252,-436.3923 268.84375,-435.875 C 267.47028,-435.10426 266.5,-433.686 266.5,-432 C 266.5,-429.516 268.516,-427.49999 271,-427.5 C 271.17713,-427.5 289.82287,-427.5 290,-427.5 C 292.48399,-427.5 294.5,-429.516 294.5,-432 C 294.5,-433.686 293.52972,-435.10426 292.15625,-435.875 C 292.33749,-436.39229 292.5,-436.92108 292.5,-437.5 C 292.5,-440.26 290.26,-442.49999 287.5,-442.5 C 286.66326,-442.5 285.91198,-442.23883 285.21875,-441.875 C 284.60991,-443.94972 282.77083,-445.5 280.5,-445.5 z"
+ id="path7854"
+ sodipodi:nodetypes="ccsscsssscsscc" />
+ <path
+ style="opacity:1;fill:url(#linearGradient5703);fill-opacity:1;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 280.5,-445 C 278.31028,-445 276.7764,-443.66423 276.10445,-441.15648 C 275.43599,-441.5001 274.55686,-441.98983 273.75,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.1124,-434.89433 267,-433.73178 267,-432.24973 C 267,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294,-429.90368 294,-432.24973 C 294,-433.8421 292.8876,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.051 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.6082,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445 280.5,-445 z"
+ id="path7856"
+ sodipodi:nodetypes="ccsscsssscsscc" />
+ <g
+ id="g7858">
+ <path
+ transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)"
+ d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
+ sodipodi:ry="3.3125"
+ sodipodi:rx="3.3125"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.375"
+ id="path7860"
+ style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)"
+ d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
+ sodipodi:ry="3.3125"
+ sodipodi:rx="3.3125"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.375"
+ id="path7862"
+ style="opacity:1;fill:url(#linearGradient5705);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </g>
+ <rect
+ style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect7864"
+ width="20"
+ height="9"
+ x="271"
+ y="-438" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7866"
+ sodipodi:cx="288.375"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125"
+ sodipodi:ry="3.3125"
+ d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
+ transform="matrix(0.90566,0,0,0.90566,9.830195,-35.68869)" />
+ <g
+ id="g7868">
+ <path
+ transform="matrix(1.056604,0,0,1.056604,-17.19811,24.86321)"
+ d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
+ sodipodi:ry="3.3125"
+ sodipodi:rx="3.3125"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.375"
+ id="path7870"
+ style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0,0,1.056604,-17.19818,24.86331)"
+ d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
+ sodipodi:ry="3.3125"
+ sodipodi:rx="3.3125"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.375"
+ id="path7872"
+ style="opacity:1;fill:url(#linearGradient5707);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g7874">
+ <path
+ transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)"
+ d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
+ sodipodi:ry="3.3125"
+ sodipodi:rx="3.3125"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.375"
+ id="path7876"
+ style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)"
+ d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
+ sodipodi:ry="3.3125"
+ sodipodi:rx="3.3125"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.375"
+ id="path7878"
+ style="opacity:1;fill:url(#linearGradient5709);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g7880"
+ transform="translate(-1,0)">
+ <path
+ id="path7882"
+ d="M 280.46875,-440.96875 C 276.88937,-440.96875 274,-438.04812 274,-434.46875 C 274,-432.09807 275.34943,-430.13096 277.25,-429 L 283.71875,-429 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.5 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z"
+ style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ id="path7884"
+ d="M 280.5,-441 C 276.912,-441 274,-438.08799 274,-434.5 C 274,-432.1236 275.34485,-430.13368 277.25,-429 L 283.75,-429 C 285.65515,-430.13368 287,-432.1236 287,-434.5 C 287,-438.088 284.088,-440.99999 280.5,-441 z"
+ style="opacity:1;fill:url(#linearGradient5711);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#linearGradient5713);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7886"
+ sodipodi:cx="288.375"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125"
+ sodipodi:ry="3.3125"
+ d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
+ transform="matrix(0.90566,0,0,0.90566,9.830296,-35.68884)" />
+ <path
+ style="fill:#888a85;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 292.9564,-437.33396 C 292.95487,-434.6494 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.9564,-437.33396 292.9564,-437.33396 z"
+ id="path7888"
+ sodipodi:nodetypes="ccss" />
+ <g
+ id="g7890"
+ transform="matrix(1.142857,0,0,1.142857,-28.57139,67.00008)">
+ <path
+ transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)"
+ d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
+ sodipodi:ry="3.3125"
+ sodipodi:rx="3.3125"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.375"
+ id="path7892"
+ style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)"
+ d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z"
+ sodipodi:ry="3.3125"
+ sodipodi:rx="3.3125"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.375"
+ id="path7896"
+ style="opacity:1;fill:url(#linearGradient5715);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ <path
+ sodipodi:nodetypes="ccsscsssscsscc"
+ id="path4978"
+ d="M 16.498705,17.499819 C 14.308985,17.499819 12.775105,18.835589 12.103155,21.343339 C 11.434695,20.999719 10.555565,20.509989 9.748705,20.509989 C 7.032195,20.509989 4.993565,22.448809 4.993575,25.055529 C 4.993575,25.602299 5.260785,26.388969 5.435535,26.877539 C 4.111105,27.605489 2.998705,28.768039 2.998705,30.250089 C 2.998705,32.596139 4.544875,34.500179 7.337985,34.500179 C 7.508795,34.500179 25.488624,34.500179 25.659424,34.500179 C 28.430434,34.500179 29.998704,32.596139 29.998704,30.250089 C 29.998704,28.657719 28.886304,27.583399 27.561874,26.855449 C 27.736634,26.366889 28.025944,25.602289 28.025944,25.055529 C 28.025944,22.448819 25.910134,20.487899 23.248714,20.487889 C 22.441844,20.487889 21.606904,20.977629 20.938444,21.321249 C 20.289594,18.899709 18.688434,17.499819 16.498705,17.499819 z"
+ style="opacity:0.45;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ </g>
+</svg>
diff --git a/demos/embedded/weatherinfo/icons/weather-haze.svg b/demos/embedded/weatherinfo/icons/weather-haze.svg
new file mode 100644
index 0000000..f2d6671
--- /dev/null
+++ b/demos/embedded/weatherinfo/icons/weather-haze.svg
@@ -0,0 +1,1121 @@
+<?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="48"
+ height="48"
+ id="svg14353"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docname="weather-haze.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <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"
+ inkscape:cx="-122"
+ inkscape:cy="24"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:showpageshadow="false"
+ showborder="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="982"
+ inkscape:window-height="965"
+ inkscape:window-x="1281"
+ inkscape:window-y="29"
+ borderlayer="false" />
+ <defs
+ id="defs14355">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8371">
+ <stop
+ style="stop-color:#e8d277;stop-opacity:1;"
+ offset="0"
+ id="stop8373" />
+ <stop
+ style="stop-color:#e8d277;stop-opacity:0;"
+ offset="1"
+ id="stop8375" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient9810">
+ <stop
+ style="stop-color:#ddc76e;stop-opacity:1;"
+ offset="0"
+ id="stop9812" />
+ <stop
+ style="stop-color:#e6d965;stop-opacity:0;"
+ offset="1"
+ id="stop9814" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient9636">
+ <stop
+ style="stop-color:#fce94f;stop-opacity:1;"
+ offset="0"
+ id="stop9638" />
+ <stop
+ style="stop-color:#fce94f;stop-opacity:0;"
+ offset="1"
+ id="stop9640" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient9362">
+ <stop
+ id="stop9364"
+ offset="0"
+ style="stop-color:#392100;stop-opacity:1;" />
+ <stop
+ id="stop9366"
+ offset="1"
+ style="stop-color:#392100;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7010">
+ <stop
+ style="stop-color:#aec2d7;stop-opacity:1;"
+ offset="0"
+ id="stop7012" />
+ <stop
+ id="stop9915"
+ offset="1"
+ style="stop-color:#81a0c1;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6825">
+ <stop
+ style="stop-color:#3a2400;stop-opacity:1;"
+ offset="0"
+ id="stop6827" />
+ <stop
+ id="stop6833"
+ offset="0.28565985"
+ style="stop-color:#8c5600;stop-opacity:1;" />
+ <stop
+ style="stop-color:#a36400;stop-opacity:1;"
+ offset="1"
+ id="stop6829" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6772">
+ <stop
+ style="stop-color:#888a85;stop-opacity:1;"
+ offset="0"
+ id="stop6774" />
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1;"
+ offset="1"
+ id="stop6776" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6764">
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1;"
+ offset="0"
+ id="stop6766" />
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:0;"
+ offset="1"
+ id="stop6768" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6746">
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1;"
+ offset="0"
+ id="stop6748" />
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:0;"
+ offset="1"
+ id="stop6750" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6728">
+ <stop
+ style="stop-color:#babdb6;stop-opacity:1;"
+ offset="0"
+ id="stop6730" />
+ <stop
+ style="stop-color:#babdb6;stop-opacity:0;"
+ offset="1"
+ id="stop6732" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6685">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop6687" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop6689" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6631">
+ <stop
+ style="stop-color:#555753;stop-opacity:1;"
+ offset="0"
+ id="stop6633" />
+ <stop
+ id="stop6639"
+ offset="0.0343047"
+ style="stop-color:#eeeeec;stop-opacity:0.49803922;" />
+ <stop
+ style="stop-color:#555753;stop-opacity:1;"
+ offset="0.06714281"
+ id="stop6641" />
+ <stop
+ id="stop6643"
+ offset="0.08441304"
+ style="stop-color:#eeeeec;stop-opacity:0.49803922;" />
+ <stop
+ style="stop-color:#555753;stop-opacity:1;"
+ offset="0.13726114"
+ id="stop6645" />
+ <stop
+ id="stop6647"
+ offset="0.15779018"
+ style="stop-color:#eeeeec;stop-opacity:0.49803922;" />
+ <stop
+ style="stop-color:#555753;stop-opacity:1;"
+ offset="0.21104114"
+ id="stop6649" />
+ <stop
+ id="stop6651"
+ offset="0.23053712"
+ style="stop-color:#eeeeec;stop-opacity:0.49803922;" />
+ <stop
+ style="stop-color:#555753;stop-opacity:1;"
+ offset="0.27452311"
+ id="stop6653" />
+ <stop
+ id="stop6655"
+ offset="0.29490501"
+ style="stop-color:#eeeeec;stop-opacity:0.49803922;" />
+ <stop
+ style="stop-color:#555753;stop-opacity:1;"
+ offset="0.34954464"
+ id="stop6657" />
+ <stop
+ id="stop6659"
+ offset="0.36960241"
+ style="stop-color:#eeeeec;stop-opacity:0.49803922;" />
+ <stop
+ style="stop-color:#555753;stop-opacity:1;"
+ offset="0.4220143"
+ id="stop6675" />
+ <stop
+ id="stop6677"
+ offset="0.44345734"
+ style="stop-color:#eeeeec;stop-opacity:0.49803922;" />
+ <stop
+ style="stop-color:#555753;stop-opacity:1;"
+ offset="0.50078195"
+ id="stop6679" />
+ <stop
+ id="stop6681"
+ offset="0.52629334"
+ style="stop-color:#eeeeec;stop-opacity:0.49803922;" />
+ <stop
+ style="stop-color:#555753;stop-opacity:1;"
+ offset="0.57410157"
+ id="stop6683" />
+ <stop
+ id="stop6693"
+ offset="0.5898369"
+ style="stop-color:#eeeeec;stop-opacity:0.49803922;" />
+ <stop
+ style="stop-color:#555753;stop-opacity:1;"
+ offset="0.64333093"
+ id="stop6695" />
+ <stop
+ id="stop6697"
+ offset="0.66151941"
+ style="stop-color:#eeeeec;stop-opacity:0.49803922;" />
+ <stop
+ style="stop-color:#555753;stop-opacity:1;"
+ offset="0.70865703"
+ id="stop6699" />
+ <stop
+ id="stop6701"
+ offset="0.72415513"
+ style="stop-color:#eeeeec;stop-opacity:0.49803922;" />
+ <stop
+ style="stop-color:#555753;stop-opacity:1;"
+ offset="1"
+ id="stop6661" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient15161">
+ <stop
+ style="stop-color:#c3b49d;stop-opacity:0.3539823;"
+ offset="0"
+ id="stop15163" />
+ <stop
+ id="stop9310"
+ offset="1"
+ style="stop-color:#dcd070;stop-opacity:1;" />
+ </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="perspective14361" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient15161"
+ id="linearGradient15167"
+ x1="21.285088"
+ y1="33.110512"
+ x2="21.285088"
+ y2="-0.0017124993"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9479167,0,0,0.9479167,1.2500007,1.2500003)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient15161"
+ id="linearGradient15250"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9479167,0,0,0.9479167,1.2500007,1.2500003)"
+ x1="21.285088"
+ y1="33.110512"
+ x2="21.285088"
+ y2="-0.0017124993" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6631"
+ id="linearGradient6637"
+ x1="-0.52151477"
+ y1="29.500589"
+ x2="18.516363"
+ y2="14.809909"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6685"
+ id="radialGradient6691"
+ cx="122"
+ cy="401.95938"
+ fx="122"
+ fy="401.95938"
+ r="6.7283827"
+ gradientTransform="matrix(-0.5944965,-3.8328271e-7,4.1781509e-7,-0.6480585,194.52841,528.49324)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6728"
+ id="linearGradient6734"
+ x1="15.072129"
+ y1="21.263441"
+ x2="17.008948"
+ y2="21.263441"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6728"
+ id="linearGradient6742"
+ x1="15.133464"
+ y1="32.587334"
+ x2="17.008692"
+ y2="32.587334"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6746"
+ id="linearGradient6752"
+ x1="15.526249"
+ y1="2.097311"
+ x2="15.526249"
+ y2="14.758003"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6764"
+ id="linearGradient6770"
+ x1="11.884123"
+ y1="10.724713"
+ x2="6.123559"
+ y2="29.316263"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6772"
+ id="linearGradient6778"
+ x1="7.8838124"
+ y1="18.558826"
+ x2="7.8838124"
+ y2="34.97258"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6825"
+ id="linearGradient6831"
+ x1="37.997959"
+ y1="18.245197"
+ x2="37.997959"
+ y2="39.658928"
+ gradientUnits="userSpaceOnUse" />
+ <pattern
+ patternUnits="userSpaceOnUse"
+ width="45.991676"
+ height="45.991676"
+ patternTransform="translate(-0.532328,52.691734)"
+ id="pattern7396">
+ <rect
+ y="0"
+ x="0"
+ height="45.991676"
+ width="45.991676"
+ id="rect15159"
+ style="fill:url(#linearGradient7399);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </pattern>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient15161"
+ id="linearGradient7399"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9479167,0,0,0.9479167,0.2458325,0.2458356)"
+ x1="21.285088"
+ y1="33.110512"
+ x2="21.285088"
+ y2="-0.0017124993" />
+ <filter
+ id="filter8124"
+ inkscape:label="filter1"
+ width="11.589999999999989" />
+ <filter
+ id="filter8126"
+ inkscape:label="filter2" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9362"
+ id="linearGradient9360"
+ x1="8.5806656"
+ y1="20.995518"
+ x2="8.5806656"
+ y2="23.085056"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9362"
+ id="linearGradient9370"
+ gradientUnits="userSpaceOnUse"
+ x1="8.5806656"
+ y1="20.995518"
+ x2="8.5806656"
+ y2="23.085056"
+ gradientTransform="translate(25.006402,2.9778958e-7)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9362"
+ id="linearGradient9374"
+ gradientUnits="userSpaceOnUse"
+ x1="8.5806656"
+ y1="20.995518"
+ x2="8.5806656"
+ y2="23.085056"
+ gradientTransform="translate(35.006405,2.9778958e-7)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9810"
+ id="linearGradient9981"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,4.6999999,18,-122.2)"
+ x1="96"
+ y1="36"
+ x2="96"
+ y2="30" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9810"
+ id="linearGradient9983"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.6289807,90.020139,-27.933112)"
+ x1="6.0670195"
+ y1="46"
+ x2="6.0670195"
+ y2="20.59375" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9810"
+ id="linearGradient9985"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.6289807,93.329052,-27.775305)"
+ x1="14.197642"
+ y1="46"
+ x2="14.197642"
+ y2="20.593699" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9810"
+ id="linearGradient9987"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.6289807,96.870945,-27.775305)"
+ x1="23.1"
+ y1="46"
+ x2="23.1"
+ y2="20.592798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9810"
+ id="linearGradient9989"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.6289807,99.712841,-27.775305)"
+ x1="32.200001"
+ y1="46"
+ x2="32.200001"
+ y2="20.59375" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7010"
+ id="radialGradient6968"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2893727,-0.2474294,0.6139915,0.7180729,9.91225,5.2335615)"
+ cx="17.055056"
+ cy="3.5953908"
+ fx="17.055056"
+ fy="3.5953908"
+ r="24" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9810"
+ id="linearGradient6977"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,4.6999999,-72,-123.2)"
+ x1="96"
+ y1="35.333096"
+ x2="96"
+ y2="30" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9810"
+ id="linearGradient6979"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.6289807,2.0139e-2,-28.933112)"
+ x1="6.0670195"
+ y1="46"
+ x2="6.0670195"
+ y2="20.59375" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9810"
+ id="linearGradient6981"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.6289807,3.329052,-28.775305)"
+ x1="14.197642"
+ y1="46"
+ x2="14.197642"
+ y2="20.593699" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9810"
+ id="linearGradient6983"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.6289807,6.870945,-28.775305)"
+ x1="23.1"
+ y1="46"
+ x2="23.1"
+ y2="20.592798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9810"
+ id="linearGradient6985"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.6289807,9.712841,-28.775305)"
+ x1="32.200001"
+ y1="46"
+ x2="32.200001"
+ y2="20.59375" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6825"
+ id="linearGradient7066"
+ gradientUnits="userSpaceOnUse"
+ x1="37.997959"
+ y1="18.245197"
+ x2="37.997959"
+ y2="39.658928" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6772"
+ id="linearGradient7068"
+ gradientUnits="userSpaceOnUse"
+ x1="7.8838124"
+ y1="18.558826"
+ x2="7.8838124"
+ y2="34.97258" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6728"
+ id="linearGradient7070"
+ gradientUnits="userSpaceOnUse"
+ x1="15.133464"
+ y1="32.587334"
+ x2="17.008692"
+ y2="32.587334" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6631"
+ id="linearGradient7072"
+ gradientUnits="userSpaceOnUse"
+ x1="-0.52151477"
+ y1="29.500589"
+ x2="18.516363"
+ y2="14.809909" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6685"
+ id="radialGradient7074"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.5944965,-3.8328271e-7,4.1781509e-7,-0.6480585,194.52841,528.49324)"
+ cx="122"
+ cy="401.95938"
+ fx="122"
+ fy="401.95938"
+ r="6.7283827" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6728"
+ id="linearGradient7076"
+ gradientUnits="userSpaceOnUse"
+ x1="15.072129"
+ y1="21.263441"
+ x2="17.008948"
+ y2="21.263441" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6746"
+ id="linearGradient7078"
+ gradientUnits="userSpaceOnUse"
+ x1="15.526249"
+ y1="2.097311"
+ x2="15.526249"
+ y2="14.758003" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6764"
+ id="linearGradient7080"
+ gradientUnits="userSpaceOnUse"
+ x1="11.884123"
+ y1="10.724713"
+ x2="6.123559"
+ y2="29.316263" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9362"
+ id="linearGradient7082"
+ gradientUnits="userSpaceOnUse"
+ x1="8.5806656"
+ y1="20.995518"
+ x2="8.5806656"
+ y2="23.085056" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9362"
+ id="linearGradient7084"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(25.006402,2.9778958e-7)"
+ x1="8.5806656"
+ y1="20.995518"
+ x2="8.5806656"
+ y2="23.085056" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9362"
+ id="linearGradient7086"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(35.006405,2.9778958e-7)"
+ x1="8.5806656"
+ y1="20.995518"
+ x2="8.5806656"
+ y2="23.085056" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6825"
+ id="linearGradient7132"
+ gradientUnits="userSpaceOnUse"
+ x1="37.997959"
+ y1="18.245197"
+ x2="37.997959"
+ y2="39.658928" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6772"
+ id="linearGradient7134"
+ gradientUnits="userSpaceOnUse"
+ x1="7.8838124"
+ y1="18.558826"
+ x2="7.8838124"
+ y2="34.97258" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6728"
+ id="linearGradient7136"
+ gradientUnits="userSpaceOnUse"
+ x1="15.133464"
+ y1="32.587334"
+ x2="17.008692"
+ y2="32.587334" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6631"
+ id="linearGradient7138"
+ gradientUnits="userSpaceOnUse"
+ x1="-0.52151477"
+ y1="29.500589"
+ x2="18.516363"
+ y2="14.809909" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6685"
+ id="radialGradient7140"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.5944965,-3.8328271e-7,4.1781509e-7,-0.6480585,194.52841,528.49324)"
+ cx="122"
+ cy="401.95938"
+ fx="122"
+ fy="401.95938"
+ r="6.7283827" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6728"
+ id="linearGradient7142"
+ gradientUnits="userSpaceOnUse"
+ x1="15.072129"
+ y1="21.263441"
+ x2="17.008948"
+ y2="21.263441" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6746"
+ id="linearGradient7144"
+ gradientUnits="userSpaceOnUse"
+ x1="15.526249"
+ y1="2.097311"
+ x2="15.526249"
+ y2="14.758003" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6764"
+ id="linearGradient7146"
+ gradientUnits="userSpaceOnUse"
+ x1="11.884123"
+ y1="10.724713"
+ x2="6.123559"
+ y2="29.316263" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9362"
+ id="linearGradient7148"
+ gradientUnits="userSpaceOnUse"
+ x1="8.5806656"
+ y1="20.995518"
+ x2="8.5806656"
+ y2="23.085056" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9362"
+ id="linearGradient7150"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(25.006402,2.9778958e-7)"
+ x1="8.5806656"
+ y1="20.995518"
+ x2="8.5806656"
+ y2="23.085056" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9362"
+ id="linearGradient7152"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(35.006405,2.9778958e-7)"
+ x1="8.5806656"
+ y1="20.995518"
+ x2="8.5806656"
+ y2="23.085056" />
+ <filter
+ inkscape:collect="always"
+ id="filter7663"
+ x="-0.1147047"
+ width="1.2294094"
+ y="-0.12580788"
+ height="1.2516158">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="2.2006423"
+ id="feGaussianBlur7665" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9810"
+ id="linearGradient7668"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.6289807,9.712841,-28.775305)"
+ x1="32.200001"
+ y1="46"
+ x2="32.200001"
+ y2="20.59375" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9810"
+ id="linearGradient7671"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.6289807,6.870945,-28.775305)"
+ x1="23.1"
+ y1="46"
+ x2="23.1"
+ y2="32.256355" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9810"
+ id="linearGradient7674"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.6289807,3.329052,-28.775305)"
+ x1="14.197642"
+ y1="46"
+ x2="14.197642"
+ y2="20.593699" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9810"
+ id="linearGradient7677"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.6289807,2.0139e-2,-28.933112)"
+ x1="6.0670195"
+ y1="46"
+ x2="6.0670195"
+ y2="33.256096" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8371"
+ id="linearGradient8377"
+ x1="24"
+ y1="45.998173"
+ x2="24"
+ y2="2.0644991"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <metadata
+ id="metadata14358">
+ <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">
+ <rect
+ style="fill:url(#radialGradient6968);fill-opacity:1;fill-rule:evenodd;stroke:#132c50;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect14363"
+ width="47"
+ height="47"
+ x="0.5"
+ y="0.5" />
+ <g
+ id="g7018"
+ transform="translate(-1.6037056e-2,3.090275e-2)">
+ <path
+ sodipodi:nodetypes="cccccccccccccccccc"
+ id="path7020"
+ d="M 1.5112736,46.463508 L 46.518528,46.463508 L 46.518528,20.097311 L 42.49936,11.994593 L 37.997439,20.097311 L 33.503201,11.994593 L 29.51269,20.097311 L 29.51269,40.518226 L 17.513556,40.518226 L 17.513556,15.979513 L 18.991385,15.979513 L 15.625234,5.482499 L 11.994559,15.979622 L 13.487574,15.979622 L 13.487574,22.494238 L 8.5736236,16.493825 L 1.5112736,16.493825 L 1.5112736,46.463508 z"
+ style="fill:#888a85;fill-rule:evenodd;stroke:#888a85;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cccccccc"
+ id="path7022"
+ d="M 46.499202,19.996278 L 46.499164,39.496968 L 29.497928,39.514749 L 29.496716,20.073218 L 33.471729,13.30179 L 37.969149,19.742327 L 42.464705,13.30179 L 46.499202,19.996278 z"
+ style="fill:url(#linearGradient7066);fill-opacity:1;fill-rule:evenodd;stroke:#331f00;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path7024"
+ d="M 30.4991,19.359794 L 30.495194,38.512814 L 45.998784,38.497189"
+ style="opacity:0.25;fill:none;fill-rule:evenodd;stroke:#eeeeec;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <rect
+ y="14.973112"
+ x="13.484319"
+ height="24.544136"
+ width="4.027225"
+ id="rect7026"
+ style="fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="25.958162"
+ x="1.5003295"
+ height="13.560402"
+ width="14.000328"
+ id="rect7028"
+ style="fill:url(#linearGradient7068);fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path7030"
+ d="M 16.000204,26.158288 L 17.008692,26.165076 L 17.006997,39.016383 L 16.000204,39.016383 L 16.000204,26.158288 z"
+ style="fill:url(#linearGradient7070);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path7032"
+ d="M 1.5018555,16.471187 L 1.5018555,26.192359 L 16.519497,26.192359 L 8.5470601,16.471187 L 1.5018555,16.471187 z"
+ style="fill:#7f4f01;fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path7034"
+ d="M 46.494238,19.981528 L 42.46863,15.428034 L 37.978753,20.107557 L 33.495519,15.782001 L 28.445309,22.028089 L 33.475653,11.989135 L 37.973073,19.908885 L 42.468629,12.0045 L 46.494238,19.981528 z"
+ style="fill:#d3d7cf;fill-rule:evenodd;stroke:#d3d7cf;stroke-width:1.10000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path7036"
+ d="M 1.9983315,16.96932 L 1.9983315,25.690091 L 15.466816,25.690091 L 8.3170492,16.96932 L 1.9983315,16.96932 z"
+ style="opacity:0.5;fill:url(#linearGradient7072);fill-opacity:1;fill-rule:evenodd;stroke:url(#radialGradient7074);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path7038"
+ d="M 15.632485,5.4903604 L 12.001677,15.991016 L 19.003769,15.992368 L 15.632485,5.4903604 z"
+ style="fill:#532323;fill-opacity:1;fill-rule:evenodd;stroke:#2a1111;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccscc"
+ id="path7040"
+ d="M 13.983416,22.32144 L 13.983416,16.492941 L 17.007669,16.492941 L 17.007669,21.219904 L 17.008948,26.033783 C 17.008949,26.039055 16.935124,25.911261 16.894583,25.856332 L 13.983416,22.32144 z"
+ style="fill:url(#linearGradient7076);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path7042"
+ d="M 15.595391,8.6350832 L 13.413573,14.980794 L 17.638924,14.980794 L 15.595391,8.6350832 z"
+ style="opacity:0.5;fill:none;fill-rule:evenodd;stroke:url(#linearGradient7078);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path7044"
+ d="M 1.9974392,25.190652 L 14.412292,25.190652 L 8.0819463,17.470171 L 2.0013455,17.470171"
+ style="opacity:0.5;fill:none;fill-rule:evenodd;stroke:url(#linearGradient7080);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <g
+ style="fill:#fce94f"
+ id="g7046">
+ <rect
+ style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect7048"
+ width="2"
+ height="2"
+ x="30.999861"
+ y="22.002562" />
+ <rect
+ style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect7050"
+ width="2"
+ height="2"
+ x="34.001801"
+ y="22.000923" />
+ <rect
+ style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect7052"
+ width="2"
+ height="2"
+ x="40.997707"
+ y="22.000923" />
+ <rect
+ style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect7054"
+ width="2"
+ height="2"
+ x="9.0004454"
+ y="22.002562" />
+ <rect
+ style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect7056"
+ width="2"
+ height="2"
+ x="6.0018048"
+ y="22.002562" />
+ </g>
+ <g
+ id="g7058">
+ <path
+ style="fill:url(#linearGradient7082);fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 4.4711906,23.06274 L 5.7618436,21.495518 L 11.216391,21.495518 L 12.507043,23.06274"
+ id="path7060"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient7084);fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 29.477593,23.06274 L 30.768246,21.495518 L 36.222793,21.495518 L 37.513445,23.06274"
+ id="path7062"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient7086);fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 39.477596,23.06274 L 40.768249,21.495518 L 43.203584,21.495518 L 44.822027,23.06274"
+ id="path7064"
+ sodipodi:nodetypes="cccc" />
+ </g>
+ </g>
+ <g
+ id="g6993"
+ transform="translate(-7.6824584e-3,3.0729835e-2)"
+ style="filter:url(#filter7663);opacity:0.6">
+ <path
+ sodipodi:nodetypes="cccccccccccccccccc"
+ id="path15135"
+ d="M 1.4995548,46.463508 L 46.518528,46.463508 L 46.518528,20.097311 L 42.49936,11.994593 L 37.997439,20.097311 L 33.503201,11.994593 L 29.51269,20.097311 L 29.51269,40.518226 L 17.513556,40.518226 L 17.513556,15.979513 L 18.991385,15.979513 L 15.625234,5.482499 L 11.994559,15.979622 L 13.487574,15.979622 L 13.487574,22.494238 L 8.5736236,16.493825 L 1.4995548,16.493825 L 1.4995548,46.463508 z"
+ style="fill:#888a85;fill-rule:evenodd;stroke:#888a85;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cccccccc"
+ id="path6819"
+ d="M 46.499202,19.996278 L 46.499164,39.496968 L 29.497928,39.514749 L 29.496716,20.073218 L 33.471729,13.30179 L 37.969149,19.742327 L 42.464705,13.30179 L 46.499202,19.996278 z"
+ style="fill:url(#linearGradient7132);fill-opacity:1;fill-rule:evenodd;stroke:#331f00;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path6843"
+ d="M 30.4991,19.359794 L 30.495194,38.512814 L 45.998784,38.497189"
+ style="opacity:0.25000000000000000;fill:none;fill-rule:evenodd;stroke:#eeeeec;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <rect
+ y="14.973112"
+ x="13.484319"
+ height="24.544136"
+ width="4.027225"
+ id="rect6714"
+ style="fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="25.958162"
+ x="1.5003295"
+ height="13.560402"
+ width="14.000328"
+ id="rect6611"
+ style="fill:url(#linearGradient7134);fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path6718"
+ d="M 16.000204,26.158288 L 17.008692,26.165076 L 17.006997,39.016383 L 16.000204,39.016383 L 16.000204,26.158288 z"
+ style="fill:url(#linearGradient7136);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path6607"
+ d="M 1.5018555,16.471187 L 1.5018555,26.192359 L 16.519497,26.192359 L 8.5470601,16.471187 L 1.5018555,16.471187 z"
+ style="fill:#7f4f01;fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path6817"
+ d="M 46.494238,19.981528 L 42.46863,15.428034 L 37.978753,20.107557 L 33.495519,15.782001 L 28.445309,22.028089 L 33.475653,11.989135 L 37.973073,19.908885 L 42.468629,12.0045 L 46.494238,19.981528 z"
+ style="fill:#d3d7cf;fill-rule:evenodd;stroke:#d3d7cf;stroke-width:1.10000002000000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path6629"
+ d="M 1.9983315,16.96932 L 1.9983315,25.690091 L 15.466816,25.690091 L 8.3170492,16.96932 L 1.9983315,16.96932 z"
+ style="opacity:0.50000000000000000;fill:url(#linearGradient7138);fill-opacity:1;fill-rule:evenodd;stroke:url(#radialGradient7140);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path6712"
+ d="M 15.632485,5.4903604 L 12.001677,15.991016 L 19.003769,15.992368 L 15.632485,5.4903604 z"
+ style="fill:#532323;fill-opacity:1;fill-rule:evenodd;stroke:#2a1111;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccscc"
+ id="path6716"
+ d="M 13.983416,22.32144 L 13.983416,16.492941 L 17.007669,16.492941 L 17.007669,21.219904 L 17.008948,26.033783 C 17.008949,26.039055 16.935124,25.911261 16.894583,25.856332 L 13.983416,22.32144 z"
+ style="fill:url(#linearGradient7142);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path6744"
+ d="M 15.595391,8.6350832 L 13.413573,14.980794 L 17.638924,14.980794 L 15.595391,8.6350832 z"
+ style="opacity:0.50000000000000000;fill:none;fill-rule:evenodd;stroke:url(#linearGradient7144);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path6754"
+ d="M 1.9974392,25.190652 L 14.412292,25.190652 L 8.0819463,17.470171 L 2.0013455,17.470171"
+ style="opacity:0.50000000000000000;fill:none;fill-rule:evenodd;stroke:url(#linearGradient7146);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <g
+ style="fill:#fce94f"
+ id="g6598">
+ <rect
+ style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect15193"
+ width="2"
+ height="2"
+ x="30.999861"
+ y="22.002562" />
+ <rect
+ style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect15201"
+ width="2"
+ height="2"
+ x="34.001801"
+ y="22.000923" />
+ <rect
+ style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect15213"
+ width="2"
+ height="2"
+ x="40.997707"
+ y="22.000923" />
+ <rect
+ style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect15231"
+ width="2"
+ height="2"
+ x="9.0004454"
+ y="22.002562" />
+ <rect
+ style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect15235"
+ width="2"
+ height="2"
+ x="6.0018048"
+ y="22.002562" />
+ </g>
+ <g
+ id="g6422">
+ <path
+ style="fill:url(#linearGradient7148);fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 4.4711906,23.06274 L 5.7618436,21.495518 L 11.216391,21.495518 L 12.507043,23.06274"
+ id="path9350"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient7150);fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 29.477593,23.06274 L 30.768246,21.495518 L 36.222793,21.495518 L 37.513445,23.06274"
+ id="path9368"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:url(#linearGradient7152);fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 39.477596,23.06274 L 40.768249,21.495518 L 43.203584,21.495518 L 44.822027,23.06274"
+ id="path9372"
+ sodipodi:nodetypes="cccc" />
+ </g>
+ </g>
+ <rect
+ style="opacity:0.5;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#eeeeec;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect15237"
+ width="45"
+ height="45"
+ x="1.5"
+ y="1.5" />
+ <rect
+ style="opacity:0.5;fill:url(#linearGradient8377);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect9717"
+ width="44"
+ height="43.933674"
+ x="2"
+ y="2.0644991" />
+ </g>
+</svg>
diff --git a/demos/embedded/weatherinfo/icons/weather-icy.svg b/demos/embedded/weatherinfo/icons/weather-icy.svg
new file mode 100644
index 0000000..fe42860
--- /dev/null
+++ b/demos/embedded/weatherinfo/icons/weather-icy.svg
@@ -0,0 +1,255 @@
+<?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="48"
+ height="48"
+ id="svg6619"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docname="weather-icy.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs6621">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient7440">
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1;"
+ offset="0"
+ id="stop7442" />
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:0;"
+ offset="1"
+ id="stop7444" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient7430">
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1;"
+ offset="0"
+ id="stop7432" />
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:0;"
+ offset="1"
+ id="stop7434" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7392">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop7394" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop7396" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient7380">
+ <stop
+ style="stop-color:#cedeef;stop-opacity:1;"
+ offset="0"
+ id="stop7382" />
+ <stop
+ style="stop-color:#cedeef;stop-opacity:0;"
+ offset="1"
+ id="stop7384" />
+ </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="perspective6627" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7380"
+ id="linearGradient7386"
+ x1="18.165867"
+ y1="9.2548895"
+ x2="20.711481"
+ y2="21.572344"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7392"
+ id="radialGradient7398"
+ cx="17.700384"
+ cy="13.797695"
+ fx="17.700384"
+ fy="13.797695"
+ r="1.4135723"
+ gradientTransform="matrix(1,0,0,1.0652174,6.1248392e-7,-0.8998502)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7392"
+ id="radialGradient7402"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.0652174,6.1248392e-7,-0.8998502)"
+ cx="17.700384"
+ cy="13.797695"
+ fx="17.700384"
+ fy="13.797695"
+ r="1.4135723" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7430"
+ id="radialGradient7438"
+ cx="10.693982"
+ cy="16.471191"
+ fx="10.693982"
+ fy="16.471191"
+ r="0.553137"
+ gradientTransform="matrix(2.1647007,0,0,0.8888889,-12.455288,1.8301322)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7440"
+ id="radialGradient7448"
+ cx="10.693982"
+ cy="16.471191"
+ fx="10.693982"
+ fy="16.471191"
+ r="0.553137"
+ gradientTransform="matrix(2.2783611,0,0,0.8888889,-13.670771,1.8301322)"
+ 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="1"
+ inkscape:cx="31.408407"
+ inkscape:cy="30.326192"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="982"
+ inkscape:window-height="965"
+ inkscape:window-x="1280"
+ inkscape:window-y="28" />
+ <metadata
+ id="metadata6624">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <g
+ id="g7906">
+ <path
+ id="path7342"
+ d="M 24 10.375 C 11.701921 10.375 1.71875 12.767211 1.71875 15.71875 C 1.71875 17.498261 5.3609075 19.059125 10.9375 20.03125 L 14.3125 46.90625 L 17.9375 26.1875 L 21.3125 41.90625 L 25.5625 23.71875 L 28.03125 37.6875 L 32.3125 22.9375 L 34.84375 33.0625 L 38.375 19.8125 C 43.199321 18.83144 46.28125 17.354051 46.28125 15.71875 C 46.28125 12.767211 36.298079 10.375 24 10.375 z "
+ style="fill:#729fcf;fill-rule:evenodd;stroke:#204a87;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cssssscssssscscssssszsssssc"
+ id="path7150"
+ d="M 24.013525,20.535861 C 29.915498,20.535861 35.256377,19.860148 39.169775,19.061611 C 41.126474,18.662343 42.702812,18.185066 43.857275,17.628422 C 45.011738,17.071777 45.794775,16.382816 45.794775,15.758562 C 45.794775,15.111496 45.011739,14.383887 43.857275,13.827243 C 42.702811,13.270598 41.126474,12.706404 39.169775,12.307136 C 35.256377,11.508599 29.915498,10.878502 24.013525,10.878502 C 18.111552,10.878502 12.739423,11.552057 8.826025,12.350594 C 6.8693258,12.749862 5.2929887,13.270598 4.138525,13.827243 C 2.9840613,14.383887 2.201025,14.939123 2.201025,15.758562 C 2.201025,16.578001 2.9840613,17.071777 4.138525,17.628422 C 5.2929887,18.185066 6.8693258,18.662343 8.826025,19.061611 M 8.826025,19.061611 C 12.739423,19.860148 18.111552,20.535861 24.013525,20.535861 M 24.013525,11.738416 C 29.832893,11.738416 35.083852,12.397075 38.857275,13.16705 C 40.743987,13.552037 42.268014,14.087721 43.263525,14.567724 C 44.259036,15.047727 44.669775,15.382119 44.669775,15.758562 C 44.669775,16.135005 44.259035,16.407937 43.263525,16.88794 C 42.268015,17.367943 40.743986,17.840596 38.857275,18.225584 C 35.083852,18.995559 29.832893,19.652061 24.013525,19.652061 C 18.194157,19.652061 12.911948,18.995559 9.138525,18.225584 C 7.2518134,17.840596 5.7277856,17.367943 4.732275,16.88794 C 3.7367644,16.407937 3.326025,16.135005 3.326025,15.758562 C 3.326025,15.382119 3.7367644,15.047727 4.732275,14.567724 C 5.7277856,14.087721 7.2518134,13.595495 9.138525,13.210508 C 12.911948,12.440533 18.194157,11.738416 24.013525,11.738416 z"
+ style="opacity:0.5;fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.14379668;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path7140"
+ d="M 20.220231,11.00128 L 29.138835,20.368103 L 24.21511,20.523801 L 15.180538,11.370038 L 20.220231,11.00128 z"
+ style="fill:#cedeef;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" />
+ <path
+ sodipodi:nodetypes="cccccccccccc"
+ id="path7355"
+ d="M 11.915494,19.751601 L 14.481435,40.163892 L 16.883534,26.331262 C 17.063009,24.706837 18.883373,24.906404 18.990928,26.307141 L 21.349551,37.344431 L 24.506026,23.859196 C 24.638961,22.408831 26.471791,22.275606 26.60475,23.905247 L 28.263765,33.272727 L 31.29544,22.83487 C 31.632247,21.540581 33.13534,21.733731 33.309125,22.813719 L 34.878361,29.055058 L 37.413573,19.544174"
+ style="fill:none;fill-rule:evenodd;stroke:#eeeeec;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:7;stroke-dasharray:none;opacity:0.5" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path7358"
+ d="M 24.796795,10.87836 L 33.030717,20.024802 L 31.057055,20.187957 L 22.768625,10.889409 L 24.796795,10.87836 z"
+ style="fill:#cedeef;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path7364"
+ d="M 28.334973,10.980368 L 36.114053,19.582843 L 35.115621,19.734949 L 27.305235,10.925125 L 28.334973,10.980368 z"
+ style="fill:#cedeef;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ id="path7372"
+ d="M 24.276568,13.090909 C 16.315524,13.346336 6.9039601,14.217661 2.7042254,16.717029 C 1.2906531,14.934699 3.0729833,13.828425 9.2804097,12.230474 C 14.942786,11.172151 20.784867,10.869471 24.346019,10.869471 C 29.101893,10.979193 33.366216,11.259555 39.81653,12.450903 C 39.81653,12.450903 46.858243,14.197968 45.56759,16.287597 C 41.461334,13.814622 33.948682,12.944657 24.276568,13.090909 z"
+ style="fill:url(#linearGradient7386);fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" />
+ <path
+ transform="matrix(2.1222827,0,0,1.9923469,-21.167011,-16.108233)"
+ d="M 19.113956,13.797695 A 1.4135723,1.5057619 0 1 1 16.286812,13.797695 A 1.4135723,1.5057619 0 1 1 19.113956,13.797695 z"
+ sodipodi:ry="1.5057619"
+ sodipodi:rx="1.4135723"
+ sodipodi:cy="13.797695"
+ sodipodi:cx="17.700384"
+ id="path7390"
+ style="opacity:1;fill:url(#radialGradient7398);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:7;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.8078704,0,0,1.0169271,-3.0298763,-5.1757356)"
+ d="M 11.247119,16.471191 A 0.553137,0.49167734 0 1 1 10.140845,16.471191 A 0.553137,0.49167734 0 1 1 11.247119,16.471191 z"
+ sodipodi:ry="0.49167734"
+ sodipodi:rx="0.553137"
+ sodipodi:cy="16.471191"
+ sodipodi:cx="10.693982"
+ id="path7416"
+ style="opacity:1;fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:7;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(4.4701088,0,0,4.6249999,-65.908816,-42.825863)"
+ d="M 19.113956,13.797695 A 1.4135723,1.5057619 0 1 1 16.286812,13.797695 A 1.4135723,1.5057619 0 1 1 19.113956,13.797695 z"
+ sodipodi:ry="1.5057619"
+ sodipodi:rx="1.4135723"
+ sodipodi:cy="13.797695"
+ sodipodi:cx="17.700384"
+ id="path7400"
+ style="opacity:1;fill:url(#radialGradient7402);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:7;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(4.5196759,0,0,1.0169271,-35.029811,3.0059967)"
+ d="M 11.247119,16.471191 A 0.553137,0.49167734 0 1 1 10.140845,16.471191 A 0.553137,0.49167734 0 1 1 11.247119,16.471191 z"
+ sodipodi:ry="0.49167734"
+ sodipodi:rx="0.553137"
+ sodipodi:cy="16.471191"
+ sodipodi:cx="10.693982"
+ id="path7418"
+ style="opacity:1;fill:url(#radialGradient7438);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:7;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0,4.5196759,-2.0338541,0,46.913063,-27.253478)"
+ d="M 11.247119,16.471191 A 0.553137,0.49167734 0 1 1 10.140845,16.471191 A 0.553137,0.49167734 0 1 1 11.247119,16.471191 z"
+ sodipodi:ry="0.49167734"
+ sodipodi:rx="0.553137"
+ sodipodi:cy="16.471191"
+ sodipodi:cx="10.693982"
+ id="path7420"
+ style="opacity:1;fill:url(#radialGradient7448);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:7;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+</svg>
diff --git a/demos/embedded/weatherinfo/icons/weather-overcast.svg b/demos/embedded/weatherinfo/icons/weather-overcast.svg
new file mode 100644
index 0000000..35fb4a4
--- /dev/null
+++ b/demos/embedded/weatherinfo/icons/weather-overcast.svg
@@ -0,0 +1,3036 @@
+<?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="48px"
+ height="48px"
+ id="svg1306"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docbase="/home/rcollier/Work/Novell/Tango/weather"
+ sodipodi:docname="weather-overcast.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs1308">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 24 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective361" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient10670"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient10668"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient10666"
+ gradientUnits="userSpaceOnUse"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient10664"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient10662"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient10660"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient10658"
+ gradientUnits="userSpaceOnUse"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient10656"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6549">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6551" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6553" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient10654"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6527">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6530" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6532" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient10652"
+ gradientUnits="userSpaceOnUse"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6538">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6540" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6542" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient10650"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6513">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6515" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6517" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient10648"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6497">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6499" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6501" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient10646"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6470">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6472" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6474" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient10644"
+ gradientUnits="userSpaceOnUse"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient7834">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop7836" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop7838" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7834"
+ id="linearGradient10642"
+ gradientUnits="userSpaceOnUse"
+ x1="-156.29044"
+ y1="-100.53421"
+ x2="-153.09810"
+ y2="-96.544556" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8397">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8400" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8402" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8397"
+ id="linearGradient10640"
+ gradientUnits="userSpaceOnUse"
+ x1="238.00478"
+ y1="-388.47476"
+ x2="245.65462"
+ y2="-382.64539" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8315">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8317" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8319" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8315"
+ id="linearGradient10638"
+ gradientUnits="userSpaceOnUse"
+ x1="230.87598"
+ y1="-390.43951"
+ x2="235.25652"
+ y2="-386.95901" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8381">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8383" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8385" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8381"
+ id="linearGradient10636"
+ gradientUnits="userSpaceOnUse"
+ x1="246.74042"
+ y1="-391.31381"
+ x2="252.69785"
+ y2="-385.35165" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8331">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8333" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8335" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8331"
+ id="linearGradient10634"
+ gradientUnits="userSpaceOnUse"
+ x1="240.07379"
+ y1="-393.40720"
+ x2="245.82706"
+ y2="-388.55029" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8302">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8304" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8306" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8302"
+ id="linearGradient10632"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(69.00259,102.0000)"
+ x1="228.50261"
+ y1="-392.30591"
+ x2="278.91510"
+ y2="-375.37952" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3019">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3021" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3023" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2298"
+ id="linearGradient2861"
+ gradientUnits="userSpaceOnUse"
+ x1="-27.006643"
+ y1="-37.550461"
+ x2="-34.700153"
+ y2="-4.4493785" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2527"
+ id="linearGradient2859"
+ gradientUnits="userSpaceOnUse"
+ x1="-25.137094"
+ y1="-1.2491118"
+ x2="-35.652866"
+ y2="-24.884460" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3478"
+ id="linearGradient2857"
+ gradientUnits="userSpaceOnUse"
+ x1="11.149398"
+ y1="-43.997444"
+ x2="4.9625983"
+ y2="-8.3080902" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4488">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop4490" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop4492" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3478">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3480" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3482" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2298">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2300" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2302" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3347">
+ <stop
+ style="stop-color:#edd400;stop-opacity:1;"
+ offset="0"
+ id="stop3349" />
+ <stop
+ style="stop-color:#edd400;stop-opacity:0;"
+ offset="1"
+ id="stop3351" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2527">
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:1;"
+ offset="0"
+ id="stop2529" />
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:0;"
+ offset="1"
+ id="stop2531" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2500">
+ <stop
+ style="stop-color:#fce94f;stop-opacity:1;"
+ offset="0"
+ id="stop2502" />
+ <stop
+ style="stop-color:#fce94f;stop-opacity:0;"
+ offset="1"
+ id="stop2504" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2392">
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1;"
+ offset="0"
+ id="stop2394" />
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:0;"
+ offset="1"
+ id="stop2396" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2254">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2256" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2258" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2263"
+ gradientUnits="userSpaceOnUse"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581"
+ gradientTransform="translate(-1.608757,3.097272)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2267"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.555020,0.968578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2271"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(9.263651,3.495228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2275"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(8.497184,-2.330824)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2279"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(14.46340,2.014073)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2283"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2287"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2291"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2295"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2299"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2303"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1.707748,-5.784024)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2311"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2350"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(16.14002,24.66420)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2352"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.932144,25.87240)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2354"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.356636,23.86870)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2356"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(11.19027,26.52035)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2358"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(10.30638,19.27251)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2360"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2362"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2364"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2366"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(4.207586,21.30544)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2372"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2392"
+ id="linearGradient2398"
+ x1="6.6651416"
+ y1="13.802798"
+ x2="41.403877"
+ y2="13.802798"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2426"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(14.46340,2.014073)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2428"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(8.497184,-2.330824)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2430"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1.608757,3.097272)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2432"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.555020,0.968578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2434"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(9.263651,3.495228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2436"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2438"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2440"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2442"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2444"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2446"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2392"
+ id="linearGradient2448"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
+ x1="6.6651416"
+ y1="13.802798"
+ x2="41.403877"
+ y2="13.802798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2392"
+ id="linearGradient2451"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
+ x1="6.6651416"
+ y1="13.802798"
+ x2="41.403877"
+ y2="13.802798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2457"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2460"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2463"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2469"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2472"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(12.51365,8.745228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2475"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(6.805020,6.218578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2478"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1.641243,8.347272)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2483"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0.842481,-3.998086)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2506"
+ x1="37.000000"
+ y1="-21.750000"
+ x2="53.750000"
+ y2="9.0000000"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2509"
+ gradientUnits="userSpaceOnUse"
+ x1="37.000000"
+ y1="-21.750000"
+ x2="53.750000"
+ y2="9.0000000"
+ gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2513"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
+ x1="38.857941"
+ y1="-18.407482"
+ x2="53.750000"
+ y2="9.0000000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2517"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
+ x1="37.000000"
+ y1="-21.750000"
+ x2="53.750000"
+ y2="9.0000000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2527"
+ id="linearGradient2533"
+ x1="-25.137094"
+ y1="-1.2491118"
+ x2="-35.652866"
+ y2="-24.884460"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2537"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(17.33814,3.415985)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2541"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(13.40064,1.353485)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2555"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-7.499805,1.708617)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2563"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.726830,2.481141)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3353"
+ x1="23.303862"
+ y1="29.115711"
+ x2="29.750000"
+ y2="46.092930"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3366"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(13.40064,1.353485)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1.641243,8.347272)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(6.805020,6.218578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3372"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(12.51365,8.745228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3374"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3376"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3383"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3386"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3389"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3392"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3395"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.674812,3.088370)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3398"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.033818,0.561720)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3401"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-7.197595,2.690414)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3405"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(4.561802,-4.303373)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="-4.4493785"
+ x2="-34.700153"
+ y1="-37.550461"
+ x1="-27.006643"
+ id="linearGradient2916"
+ xlink:href="#linearGradient2298"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2914"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(57.97693,-10.56876)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2912"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2910"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2908"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2906"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2904"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2902"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.674812,3.088370)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2900"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-2.033818,0.561720)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2898"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.197595,2.690414)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2896"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2894"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2892"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2890"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(88.49344,-9.697877)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2888"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(4.561802,-4.303373)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2886"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.197595,2.690414)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2884"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-2.033818,0.561720)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2882"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.674812,3.088370)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2880"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2878"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2876"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2874"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2872"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2870"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2868"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2866"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2864"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(12.51365,8.745228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2862"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(6.805020,6.218578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2860"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.641243,8.347272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2858"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(13.40064,1.353485)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2856"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="46.092930"
+ x2="29.750000"
+ y1="29.115711"
+ x1="23.303862"
+ id="linearGradient2854"
+ xlink:href="#linearGradient3347"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-0.726830,2.481141)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2852"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.499805,1.708617)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2850"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(13.40064,1.353485)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2848"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(17.33814,3.415985)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2846"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ id="linearGradient2844"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2842"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-18.407482"
+ x1="38.857941"
+ gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2840"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)"
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2838"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ id="linearGradient2836"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(0.842481,-3.998086)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2834"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.641243,8.347272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2832"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(6.805020,6.218578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2830"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(12.51365,8.745228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2828"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2826"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2824"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2822"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2820"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2818"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2816"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2814"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2812"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2810"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2808"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2806"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2804"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(9.263651,3.495228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2802"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.555020,0.968578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2800"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-1.608757,3.097272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2798"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(8.497184,-2.330824)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2796"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(14.46340,2.014073)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2794"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
+ gradientUnits="userSpaceOnUse"
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ id="linearGradient2792"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2790"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(4.207586,21.30544)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2788"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2786"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2784"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2782"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2780"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2778"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(10.30638,19.27251)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2776"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(11.19027,26.52035)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2774"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(5.356636,23.86870)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2772"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-0.932144,25.87240)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2770"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(16.14002,24.66420)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2768"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2766"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.707748,-5.784024)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2764"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2762"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2760"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2758"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2756"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2754"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(14.46340,2.014073)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2752"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(8.497184,-2.330824)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2750"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(9.263651,3.495228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2748"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.555020,0.968578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2746"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(-1.608757,3.097272)"
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2744"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient4434"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(41.44608,-6.716447)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient4436"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(46.60985,-8.845141)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient4438"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(52.31848,-6.318491)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient4440"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,42.85737,-2.200849)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient4442"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,57.93093,-1.243739)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient4444"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,37.36747,-8.003450)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient4446"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,49.43869,-3.313289)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient4464"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(41.44608,-6.716447)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient4466"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(46.60985,-8.845141)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient4468"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(52.31848,-6.318491)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient4470"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,42.85737,-2.200849)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient4472"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,57.93093,-1.243739)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient4474"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,37.36747,-8.003450)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient4476"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,49.43869,-3.313289)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient4538"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(41.44608,-6.716447)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient4540"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(46.60985,-8.845141)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient4542"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(52.31848,-6.318491)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient4544"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,42.85737,-2.200849)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient4546"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,57.93093,-1.243739)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient4548"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,37.36747,-8.003450)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient4550"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,49.43869,-3.313289)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4488"
+ id="linearGradient4552"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.927204,0.000000,0.000000,0.882329,2.105168,3.373861)"
+ x1="17.181321"
+ y1="32.443652"
+ x2="47.342173"
+ y2="32.443652" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4488"
+ id="linearGradient2276"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,2.081767,3.390390)"
+ x1="17.181321"
+ y1="32.443652"
+ x2="47.342173"
+ y2="32.443652" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4488"
+ id="linearGradient2289"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.931230,0.000000,0.000000,0.881886,-13.99458,-6.609596)"
+ x1="17.181321"
+ y1="32.443652"
+ x2="47.342173"
+ y2="32.443652" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient3025"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient3029"
+ gradientUnits="userSpaceOnUse"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient3033"
+ gradientUnits="userSpaceOnUse"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient3037"
+ gradientUnits="userSpaceOnUse"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient3041"
+ gradientUnits="userSpaceOnUse"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient3045"
+ gradientUnits="userSpaceOnUse"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient3049"
+ gradientUnits="userSpaceOnUse"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient3053"
+ gradientUnits="userSpaceOnUse"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient3056"
+ gradientUnits="userSpaceOnUse"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641"
+ gradientTransform="translate(3.437500,-3.000000)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient3060"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-6.911612,2.585786)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient3064"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-3.146447,8.838835e-2)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient3068"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,13.66667,3.000000)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient3072"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.66667,8.000000)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient3076"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.698434,10.27557)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient3080"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.68234,16.99480)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient3107"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.437500,-3.000000)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient3109"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-6.911612,2.585786)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient3111"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-3.146447,8.838835e-2)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient3113"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,13.66667,3.000000)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient3115"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.66667,8.000000)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient3117"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.698434,10.27557)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient3119"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.68234,16.99480)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.313709"
+ inkscape:cx="8.6163343"
+ inkscape:cy="24.822365"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="1210"
+ inkscape:window-height="704"
+ inkscape:window-x="182"
+ inkscape:window-y="144"
+ inkscape:showpageshadow="false"
+ showguides="true"
+ inkscape:guide-bbox="true" />
+ <metadata
+ id="metadata1311">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>weather-overcast</dc:title>
+ <dc:date>January 2006</dc:date>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Ryan Collier (pseudo)</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title>http://www.tango-project.org</dc:title>
+ </cc:Agent>
+ </dc:publisher>
+ <dc:source>http://www.pseudocode.org</dc:source>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>weather</rdf:li>
+ <rdf:li>applet</rdf:li>
+ <rdf:li>notify</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/publicdomain/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <g
+ id="g10011"
+ transform="translate(-287.0000,298.0000)">
+ <path
+ id="path8267"
+ d="M 311.50259,-296.00000 C 308.73017,-296.00000 306.39436,-294.42629 305.09634,-292.18750 C 304.15198,-292.66254 303.13115,-293.00000 302.00259,-293.00000 C 298.13859,-293.00000 295.00259,-289.86400 295.00259,-286.00000 C 295.00259,-282.13600 298.13859,-279.00000 302.00259,-279.00000 C 304.42226,-279.00000 306.43268,-280.31932 307.69009,-282.18750 C 308.82429,-281.49788 310.07907,-281.00000 311.50259,-281.00000 C 312.41571,-281.00000 313.25554,-281.23202 314.06509,-281.53125 C 314.57503,-280.66352 315.24421,-279.95153 316.06509,-279.37500 C 316.05785,-279.24462 316.00259,-279.13218 316.00259,-279.00000 C 316.00259,-275.13600 319.13858,-272.00000 323.00259,-272.00000 C 326.86659,-272.00000 330.00259,-275.13600 330.00259,-279.00000 C 330.00259,-281.36969 328.74361,-283.35834 326.94009,-284.62500 C 326.94733,-284.75538 327.00259,-284.86782 327.00259,-285.00000 C 327.00259,-288.86400 323.86660,-292.00000 320.00259,-292.00000 C 319.37989,-292.00000 318.82740,-291.77781 318.25259,-291.62500 C 317.05806,-294.18384 314.51125,-296.00000 311.50259,-296.00000 z "
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ id="path8291"
+ d="M 311.50259,-295.00000 C 308.72211,-295.00000 306.36808,-293.23815 305.44009,-290.78125 C 304.45467,-291.49069 303.30866,-292.00000 302.00259,-292.00000 C 298.69059,-292.00000 296.00259,-289.31200 296.00259,-286.00000 C 296.00259,-282.68800 298.69059,-280.00000 302.00259,-280.00000 C 304.43034,-280.00000 306.49583,-281.45558 307.44009,-283.53125 C 308.56085,-282.61369 309.94223,-282.00000 311.50259,-282.00000 C 312.57713,-282.00000 313.54687,-282.31896 314.44009,-282.78125 C 314.83849,-281.78149 315.54123,-280.99493 316.37759,-280.34375 C 316.19758,-279.74813 316.00259,-279.15410 316.00259,-278.50000 C 316.00259,-274.91200 318.91459,-272.00000 322.50259,-272.00000 C 326.09059,-272.00000 329.00259,-274.91200 329.00259,-278.50000 C 329.00259,-280.86079 327.66826,-282.83019 325.78384,-283.96875 C 325.84643,-284.31598 326.00259,-284.63483 326.00259,-285.00000 C 326.00259,-288.31200 323.31459,-291.00000 320.00259,-291.00000 C 319.14961,-291.00000 318.33129,-290.82132 317.59634,-290.50000 C 316.74257,-293.09388 314.38110,-294.99999 311.50259,-295.00000 z "
+ style="opacity:1.0000000;fill:url(#linearGradient10632);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ transform="matrix(0.964447,0.000000,0.000000,0.964447,89.29111,91.52621)"
+ d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z"
+ sodipodi:ry="6.7396116"
+ sodipodi:rx="6.7396116"
+ sodipodi:cy="-383.66660"
+ sodipodi:cx="241.80843"
+ id="path8414"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <g
+ transform="translate(69.00259,102.0000)"
+ id="g8349">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path8327"
+ sodipodi:cx="243.95184"
+ sodipodi:cy="-389.30136"
+ sodipodi:rx="6.2313786"
+ sodipodi:ry="6.2313786"
+ d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z"
+ transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:url(#linearGradient10634);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path8329"
+ sodipodi:cx="243.95184"
+ sodipodi:cy="-389.30136"
+ sodipodi:rx="6.2313786"
+ sodipodi:ry="6.2313786"
+ d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z"
+ transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" />
+ </g>
+ <g
+ transform="translate(69.00259,102.0000)"
+ id="g8389">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path8368"
+ sodipodi:cx="251.22179"
+ sodipodi:cy="-385.78790"
+ sodipodi:rx="6.0325046"
+ sodipodi:ry="6.0325046"
+ d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z"
+ transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:url(#linearGradient10636);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path8370"
+ sodipodi:cx="251.22179"
+ sodipodi:cy="-385.78790"
+ sodipodi:rx="6.0325046"
+ sodipodi:ry="6.0325046"
+ d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z"
+ transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" />
+ </g>
+ <g
+ transform="translate(69.00259,102.0000)"
+ id="g8323">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path8311"
+ sodipodi:cx="233.43362"
+ sodipodi:cy="-387.88715"
+ sodipodi:rx="4.3752232"
+ sodipodi:ry="4.3752232"
+ d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z"
+ transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:url(#linearGradient10638);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path8313"
+ sodipodi:cx="233.43362"
+ sodipodi:cy="-387.88715"
+ sodipodi:rx="4.3752232"
+ sodipodi:ry="4.3752232"
+ d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z"
+ transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" />
+ </g>
+ <g
+ transform="translate(69.00259,102.0000)"
+ id="g8406">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path8393"
+ sodipodi:cx="241.80843"
+ sodipodi:cy="-383.66660"
+ sodipodi:rx="6.7396116"
+ sodipodi:ry="6.7396116"
+ d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z"
+ transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150940,14.48994)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:url(#linearGradient10640);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path8395"
+ sodipodi:cx="241.80843"
+ sodipodi:cy="-383.66660"
+ sodipodi:rx="6.7396116"
+ sodipodi:ry="6.7396116"
+ d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z"
+ transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150933,14.48993)" />
+ </g>
+ <g
+ style="stroke:none"
+ transform="matrix(0.935028,0.000000,0.000000,0.935028,446.8280,-187.6162)"
+ id="g4518">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:0.33115697;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path4520"
+ sodipodi:cx="-155.06250"
+ sodipodi:cy="-96.937500"
+ sodipodi:rx="3.1250000"
+ sodipodi:ry="3.1250000"
+ d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1 -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1 -151.93750 -96.937500 z"
+ transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8322,70.07649)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:url(#linearGradient10642);fill-opacity:1.0000000;stroke:none;stroke-width:0.45224530;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path4522"
+ sodipodi:cx="-155.06250"
+ sodipodi:cy="-96.937500"
+ sodipodi:rx="3.1250000"
+ sodipodi:ry="3.1250000"
+ d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1 -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1 -151.93750 -96.937500 z"
+ transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8948,70.01402)" />
+ </g>
+ <g
+ transform="translate(38.00259,162.0000)"
+ id="g7794">
+ <path
+ style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z "
+ id="path7796"
+ sodipodi:nodetypes="ccsscsssscsscc" />
+ <path
+ style="opacity:1.0000000;fill:url(#linearGradient10644);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z "
+ id="path7798"
+ sodipodi:nodetypes="ccsscsssscsscc" />
+ <g
+ id="g7800">
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path7802"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path7804"
+ style="opacity:1.0000000;fill:url(#linearGradient10646);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ <rect
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="rect7806"
+ width="20.000000"
+ height="9.0000000"
+ x="271.00000"
+ y="-438.00000" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path7808"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" />
+ <g
+ id="g7810">
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path7812"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path7814"
+ style="opacity:1.0000000;fill:url(#linearGradient10648);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g7816">
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path7818"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path7820"
+ style="opacity:1.0000000;fill:url(#linearGradient10650);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g7822"
+ transform="translate(-1.000000,0.000000)">
+ <path
+ id="path7824"
+ d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z "
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ id="path7826"
+ d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z "
+ style="opacity:1.0000000;fill:url(#linearGradient10652);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ </g>
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:url(#linearGradient10654);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path7828"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" />
+ <path
+ style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z "
+ id="path7830"
+ sodipodi:nodetypes="ccss" />
+ <g
+ id="g7832"
+ transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)">
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path7834"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path7836"
+ style="opacity:1.0000000;fill:url(#linearGradient10656);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ <g
+ transform="translate(23.00000,158.0000)"
+ id="g7852">
+ <path
+ style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z "
+ id="path7854"
+ sodipodi:nodetypes="ccsscsssscsscc" />
+ <path
+ style="opacity:1.0000000;fill:url(#linearGradient10658);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z "
+ id="path7856"
+ sodipodi:nodetypes="ccsscsssscsscc" />
+ <g
+ id="g7858">
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path7860"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path7862"
+ style="opacity:1.0000000;fill:url(#linearGradient10660);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ <rect
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="rect7864"
+ width="20.000000"
+ height="9.0000000"
+ x="271.00000"
+ y="-438.00000" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path7866"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" />
+ <g
+ id="g7868">
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path7870"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path7872"
+ style="opacity:1.0000000;fill:url(#linearGradient10662);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g7874">
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path7876"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path7878"
+ style="opacity:1.0000000;fill:url(#linearGradient10664);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g7880"
+ transform="translate(-1.000000,0.000000)">
+ <path
+ id="path7882"
+ d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z "
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ id="path7884"
+ d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z "
+ style="opacity:1.0000000;fill:url(#linearGradient10666);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ </g>
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:url(#linearGradient10668);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path7886"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" />
+ <path
+ style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z "
+ id="path7888"
+ sodipodi:nodetypes="ccss" />
+ <g
+ id="g7890"
+ transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)">
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path7892"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path7896"
+ style="opacity:1.0000000;fill:url(#linearGradient10670);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/demos/embedded/weatherinfo/icons/weather-showers.svg b/demos/embedded/weatherinfo/icons/weather-showers.svg
new file mode 100644
index 0000000..c814571
--- /dev/null
+++ b/demos/embedded/weatherinfo/icons/weather-showers.svg
@@ -0,0 +1,4753 @@
+<?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="48px"
+ height="48px"
+ id="svg1306"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docbase="/home/rcollier/Work/Novell/Tango/weather"
+ sodipodi:docname="weather-showers.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs1308">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 24 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective530" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient11348"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.070878,0.000000,-0.535439,0.674858,287.5142,77.50802)"
+ x1="-137.49608"
+ y1="-425.28664"
+ x2="-130.60854"
+ y2="-425.28665" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient11346"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.070879,0.000000,-0.535439,0.674857,277.5140,77.50780)"
+ x1="-137.49608"
+ y1="-425.28664"
+ x2="-130.60854"
+ y2="-425.28665" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient11344"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.088439,0.000000,-0.544220,0.674842,265.9811,77.50139)"
+ x1="-137.49608"
+ y1="-425.28664"
+ x2="-130.60854"
+ y2="-425.28665" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient13352"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient13350"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient13347"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-35.00007,207.0001)"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient13345"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient13343"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient13341"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient13339"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-34.00007,207.0001)"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient13337"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6549">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6551" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6553" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient13335"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6527">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6530" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6532" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient13333"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-35.00007,207.0001)"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6538">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6540" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6542" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient13331"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6513">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6515" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6517" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient13329"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6497">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6499" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6501" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient13327"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6470">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6472" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6474" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient13325"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-34.00007,207.0001)"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8397">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8400" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8402" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8397"
+ id="linearGradient13323"
+ gradientUnits="userSpaceOnUse"
+ x1="238.00478"
+ y1="-388.47476"
+ x2="245.65462"
+ y2="-382.64539" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8315">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8317" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8319" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8315"
+ id="linearGradient13321"
+ gradientUnits="userSpaceOnUse"
+ x1="230.87598"
+ y1="-390.43951"
+ x2="235.25652"
+ y2="-386.95901" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8381">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8383" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8385" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8381"
+ id="linearGradient13319"
+ gradientUnits="userSpaceOnUse"
+ x1="246.74042"
+ y1="-391.31381"
+ x2="252.69785"
+ y2="-385.35165" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8331">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8333" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8335" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8331"
+ id="linearGradient13317"
+ gradientUnits="userSpaceOnUse"
+ x1="240.07379"
+ y1="-393.40720"
+ x2="245.82706"
+ y2="-388.55029" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8302">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8304" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8306" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8302"
+ id="linearGradient13315"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(69.00000,155.0000)"
+ x1="228.50261"
+ y1="-392.30591"
+ x2="266.36395"
+ y2="-379.26862" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4442">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop4444" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop4446" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4442"
+ id="linearGradient4467"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-59.00000,27.72122)"
+ x1="4.3602662"
+ y1="-21.904713"
+ x2="40.139732"
+ y2="-1.8452871" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4430"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,7.747730,-6.786242)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4426"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,12.43523,-5.473742)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4404"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-14.02052,-13.29853)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4407"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-9.728831,-6.856090)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4410"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-4.033948,-17.90479)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4413"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,-1.200260,0.631990)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4419"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,4.534070,-12.70656)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4422"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-9.992899,-16.32980)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4488"
+ id="linearGradient4479"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-60.91820,-2.915960)"
+ x1="17.181321"
+ y1="32.443652"
+ x2="47.342173"
+ y2="32.443652" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4359"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4357"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4355"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.365819,-55.70818)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4353"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4351"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4349"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4347"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-3.681521,-53.82781)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4488">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop4490" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop4492" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4488"
+ id="linearGradient4370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-74.92090,-6.914630)"
+ x1="17.175579"
+ y1="23.374163"
+ x2="38.037014"
+ y2="38.680286" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4255"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4253"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4251"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.365819,-55.70818)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4249"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4247"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4245"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3019">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3021" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3023" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4243"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-3.681521,-53.82781)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ id="linearGradient6525"
+ gradientUnits="userSpaceOnUse"
+ x1="4.1914001"
+ y1="11.113300"
+ x2="47.319698"
+ y2="56.052299">
+ <stop
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;"
+ id="stop6529" />
+ <stop
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0.34020618;"
+ id="stop6531" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6525"
+ id="linearGradient5250"
+ x1="8.5469341"
+ y1="30.281681"
+ x2="30.85088"
+ y2="48.301884"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.874977,0.000000,0.000000,0.921480,-56.65990,-1.553540)" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6537">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6539" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6541" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2298">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2300" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2302" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3347">
+ <stop
+ style="stop-color:#edd400;stop-opacity:1;"
+ offset="0"
+ id="stop3349" />
+ <stop
+ style="stop-color:#edd400;stop-opacity:0;"
+ offset="1"
+ id="stop3351" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2527">
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:1;"
+ offset="0"
+ id="stop2529" />
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:0;"
+ offset="1"
+ id="stop2531" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2500">
+ <stop
+ style="stop-color:#fce94f;stop-opacity:1;"
+ offset="0"
+ id="stop2502" />
+ <stop
+ style="stop-color:#fce94f;stop-opacity:0;"
+ offset="1"
+ id="stop2504" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2392">
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1;"
+ offset="0"
+ id="stop2394" />
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:0;"
+ offset="1"
+ id="stop2396" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2254">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2256" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2258" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2263"
+ gradientUnits="userSpaceOnUse"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581"
+ gradientTransform="translate(-1.608757,3.097272)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2267"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.555020,0.968578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2271"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(9.263651,3.495228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2275"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(8.497184,-2.330824)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2279"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(14.46340,2.014073)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2283"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2287"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2291"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2295"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2299"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2303"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1.707748,-5.784024)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2311"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2350"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(16.14002,24.66420)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2352"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.932144,25.87240)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2354"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.356636,23.86870)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2356"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(11.19027,26.52035)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2358"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(10.30638,19.27251)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2360"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2362"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2364"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2366"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(4.207586,21.30544)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2372"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2392"
+ id="linearGradient2398"
+ x1="6.6651416"
+ y1="13.802798"
+ x2="41.403877"
+ y2="13.802798"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2426"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(14.46340,2.014073)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2428"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(8.497184,-2.330824)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2430"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1.608757,3.097272)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2432"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.555020,0.968578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2434"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(9.263651,3.495228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2436"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2438"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2440"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2442"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2444"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2446"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2392"
+ id="linearGradient2448"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
+ x1="6.6651416"
+ y1="13.802798"
+ x2="41.403877"
+ y2="13.802798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2392"
+ id="linearGradient2451"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
+ x1="6.6651416"
+ y1="13.802798"
+ x2="41.403877"
+ y2="13.802798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2457"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2460"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2463"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2469"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2472"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(12.51365,8.745228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2475"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(6.805020,6.218578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2478"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1.641243,8.347272)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2483"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0.842481,-3.998086)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2506"
+ x1="37.000000"
+ y1="-21.750000"
+ x2="53.750000"
+ y2="9.0000000"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2509"
+ gradientUnits="userSpaceOnUse"
+ x1="37.000000"
+ y1="-21.750000"
+ x2="53.750000"
+ y2="9.0000000"
+ gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2513"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
+ x1="38.857941"
+ y1="-18.407482"
+ x2="53.750000"
+ y2="9.0000000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2517"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
+ x1="37.000000"
+ y1="-21.750000"
+ x2="53.750000"
+ y2="9.0000000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2527"
+ id="linearGradient2533"
+ x1="-25.137094"
+ y1="-1.2491118"
+ x2="-35.652866"
+ y2="-24.884460"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2537"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(17.33814,3.415985)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2541"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(13.40064,1.353485)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2555"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-7.499805,1.708617)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2563"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.726830,2.481141)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3353"
+ x1="23.303862"
+ y1="29.115711"
+ x2="29.750000"
+ y2="46.092930"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3366"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(13.40064,1.353485)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1.641243,8.347272)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(6.805020,6.218578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3372"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(12.51365,8.745228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3374"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3376"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3383"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3386"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3389"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3392"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3395"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.674812,3.088370)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3398"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.033818,0.561720)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3401"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-7.197595,2.690414)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3405"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(4.561802,-4.303373)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="-4.4493785"
+ x2="-34.700153"
+ y1="-37.550461"
+ x1="-27.006643"
+ id="linearGradient2916"
+ xlink:href="#linearGradient2298"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2914"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(57.97693,-10.56876)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2912"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2910"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2908"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2906"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2904"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2902"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.674812,3.088370)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2900"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-2.033818,0.561720)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2898"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.197595,2.690414)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2896"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2894"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2892"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2890"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(88.49344,-9.697877)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2888"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(4.561802,-4.303373)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2886"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.197595,2.690414)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2884"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-2.033818,0.561720)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2882"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.674812,3.088370)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2880"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2878"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2876"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2874"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2872"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2870"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2868"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2866"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2864"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(12.51365,8.745228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2862"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(6.805020,6.218578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2860"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.641243,8.347272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2858"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(13.40064,1.353485)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2856"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="46.092930"
+ x2="29.750000"
+ y1="29.115711"
+ x1="23.303862"
+ id="linearGradient2854"
+ xlink:href="#linearGradient3347"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-0.726830,2.481141)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2852"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.499805,1.708617)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2850"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(13.40064,1.353485)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2848"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(17.33814,3.415985)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2846"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ id="linearGradient2844"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2842"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-18.407482"
+ x1="38.857941"
+ gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2840"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)"
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2838"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ id="linearGradient2836"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(0.842481,-3.998086)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2834"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.641243,8.347272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2832"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(6.805020,6.218578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2830"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(12.51365,8.745228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2828"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2826"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2824"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2822"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2820"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2818"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2816"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2814"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2812"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2810"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2808"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2806"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2804"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(9.263651,3.495228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2802"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.555020,0.968578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2800"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-1.608757,3.097272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2798"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(8.497184,-2.330824)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2796"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(14.46340,2.014073)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2794"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
+ gradientUnits="userSpaceOnUse"
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ id="linearGradient2792"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2790"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(4.207586,21.30544)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2788"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2786"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2784"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2782"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2780"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2778"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(10.30638,19.27251)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2776"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(11.19027,26.52035)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2774"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(5.356636,23.86870)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2772"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-0.932144,25.87240)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2770"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(16.14002,24.66420)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2768"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2766"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.707748,-5.784024)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2764"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2762"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2760"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2758"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2756"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2754"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(14.46340,2.014073)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2752"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(8.497184,-2.330824)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2750"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(9.263651,3.495228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2748"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.555020,0.968578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2746"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(-1.608757,3.097272)"
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2744"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="-4.4493785"
+ x2="-34.700153"
+ y1="-37.550461"
+ x1="-27.006643"
+ id="linearGradient2304"
+ xlink:href="#linearGradient2298"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1557"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(57.97693,-10.56876)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1538"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1536"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1534"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1532"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1530"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1528"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.674812,3.088370)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1526"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-2.033818,0.561720)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1524"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.197595,2.690414)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1522"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1520"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1518"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1516"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(88.49344,-9.697877)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1514"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(4.561802,-4.303373)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5957"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.197595,2.690414)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5955"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-2.033818,0.561720)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5953"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.674812,3.088370)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5951"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5949"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5947"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5945"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5943"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5941"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5939"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5937"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5935"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(12.51365,8.745228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5933"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(6.805020,6.218578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5931"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.641243,8.347272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5929"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(13.40064,1.353485)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5927"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="46.092930"
+ x2="29.750000"
+ y1="29.115711"
+ x1="23.303862"
+ id="linearGradient5925"
+ xlink:href="#linearGradient3347"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-0.726830,2.481141)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5923"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.499805,1.708617)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5921"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(13.40064,1.353485)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5919"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(17.33814,3.415985)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5917"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ id="linearGradient5915"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5913"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-18.407482"
+ x1="38.857941"
+ gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5911"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)"
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5909"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ id="linearGradient5907"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(0.842481,-3.998086)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5905"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.641243,8.347272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5903"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(6.805020,6.218578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5901"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(12.51365,8.745228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5899"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5897"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5895"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5893"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5891"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5889"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5887"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5885"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5883"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5881"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5879"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5877"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5875"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(9.263651,3.495228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5873"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.555020,0.968578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5871"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-1.608757,3.097272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5869"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(8.497184,-2.330824)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5867"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(14.46340,2.014073)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5865"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
+ gradientUnits="userSpaceOnUse"
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ id="linearGradient5863"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5861"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(4.207586,21.30544)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5859"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5857"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5855"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5853"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5851"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5849"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(10.30638,19.27251)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5847"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(11.19027,26.52035)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5845"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(5.356636,23.86870)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5843"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-0.932144,25.87240)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5841"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(16.14002,24.66420)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5839"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5837"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.707748,-5.784024)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5835"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5833"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5831"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5829"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5827"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5825"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(14.46340,2.014073)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5823"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(8.497184,-2.330824)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5821"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(9.263651,3.495228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5819"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.555020,0.968578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5817"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(-1.608757,3.097272)"
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5815"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6101"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6118"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6121"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6124"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(21.51400,12.80461)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6179"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-7.197595,2.690414)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6181"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.033818,0.561720)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6183"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.674812,3.088370)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6185"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6187"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6189"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6191"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2527"
+ id="linearGradient6193"
+ gradientUnits="userSpaceOnUse"
+ x1="-25.137094"
+ y1="-1.2491118"
+ x2="-35.652866"
+ y2="-24.884460" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6196"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6199"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6202"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-4.372193,11.95105)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6208"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.088919,7.833409)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6211"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.619711,5.306759)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6214"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-5.783488,7.435453)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6242"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-5.783488,7.435453)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6244"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.619711,5.306759)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6246"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.088919,7.833409)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6248"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6250"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6252"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6254"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-9.002513,11.93373)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6257"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.297112,4.275205)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6260"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6263"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6266"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6269"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(13.79432,0.174884)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6272"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(8.085690,-2.351766)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6275"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(2.921913,-0.223072)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6311"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(21.51400,12.80461)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6313"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6315"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6317"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6319"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6321"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-5.783488,7.435453)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6323"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.619711,5.306759)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6325"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.088919,7.833409)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6329"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6331"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6333"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-9.002513,11.93373)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6335"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(2.921913,-0.223072)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6337"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(8.085690,-2.351766)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6339"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(13.79432,0.174884)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6341"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6343"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6543"
+ x1="27.320963"
+ y1="44.228481"
+ x2="52.328316"
+ y2="44.228481"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.526962,0.000000,-2.763717e-17,0.972572,16.13182,0.843286)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6547"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,25.91493,0.633642)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="52.328316"
+ y2="44.228481" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6551"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,36.25638,0.633643)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="45.115814"
+ y2="44.228455" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6559"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.526962,0.000000,-2.332577e-16,0.972572,16.13182,0.843286)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="52.328316"
+ y2="44.228481" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6561"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,25.91493,0.633642)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="52.328316"
+ y2="44.228481" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6563"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,36.25638,0.633643)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="45.115814"
+ y2="44.228455" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6566"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.577744,0.000000,-5.984325e-16,1.025105,38.38995,-1.768804)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="45.115814"
+ y2="44.228455" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6569"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.577744,0.000000,-5.984325e-16,1.025105,27.05193,-1.768805)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="52.328316"
+ y2="44.228481" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6572"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.589347,0.000000,-1.531909e-16,1.025217,16.34910,-1.110328)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="52.328316"
+ y2="44.228481" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6576"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.132431,0.000000,0.000000,1.016132,11.79178,-1.090051)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6579"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.853605,0.000000,0.000000,1.016132,20.48211,1.012885)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6582"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,14.73875,-4.143732)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6585"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,8.896962,-6.711142)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6588"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,3.612740,-4.548108)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.999079,0.000000,0.000000,1.016132,58.06881,13.00984)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6603"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-0.560999,-5.855873)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6606"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.314274,0.000000,0.000000,1.016132,13.30131,15.29879)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6609"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-10.35177,5.950245)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6612"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,22.63849,8.689740)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6618"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,17.34164,6.586930)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6622"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,12.56867,12.68572)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6624"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-5.783488,7.435453)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6626"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.619711,5.306759)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6628"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.088919,7.833409)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6630"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6632"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6634"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6636"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-9.002513,11.93373)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4442"
+ id="linearGradient2736"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-59.00000,27.72122)"
+ x1="4.3602662"
+ y1="-21.904713"
+ x2="40.139732"
+ y2="-1.8452871" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2738"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-9.992899,-16.32980)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2740"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,4.534070,-12.70656)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2742"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,-1.200260,0.631990)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2745"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-4.033948,-17.90479)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2747"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-9.728831,-6.856090)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2749"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-14.02052,-13.29853)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2751"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,12.43523,-5.473742)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2753"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,7.747730,-6.786242)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4488"
+ id="linearGradient2755"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-60.91820,-2.915960)"
+ x1="17.181321"
+ y1="32.443652"
+ x2="47.342173"
+ y2="32.443652" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2757"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-3.681521,-53.82781)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2759"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2761"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2763"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2765"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.365819,-55.70818)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2767"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2769"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4488"
+ id="linearGradient2771"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-74.92090,-6.914630)"
+ x1="17.175579"
+ y1="23.374163"
+ x2="38.037014"
+ y2="38.680286" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2773"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-3.681521,-53.82781)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2775"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2777"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2779"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2781"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.365819,-55.70818)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2783"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2785"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4488"
+ id="linearGradient2799"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-11.91814,-7.649759)"
+ x1="17.175579"
+ y1="23.374163"
+ x2="38.037014"
+ y2="38.680286" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4488"
+ id="linearGradient2813"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,2.084560,-3.651089)"
+ x1="18.664751"
+ y1="23.374166"
+ x2="31.294144"
+ y2="35.845455" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4442"
+ id="linearGradient2827"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(4.002760,26.98609)"
+ x1="4.3602662"
+ y1="-21.904713"
+ x2="40.139732"
+ y2="-1.8452871" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="11.996306"
+ inkscape:cy="38.014291"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="1200"
+ inkscape:window-height="704"
+ inkscape:window-x="134"
+ inkscape:window-y="133"
+ inkscape:showpageshadow="false" />
+ <metadata
+ id="metadata1311">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>weather-showers</dc:title>
+ <dc:date>January 2006</dc:date>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Ryan collier (pseudo)</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title>http://www.tango-project.org</dc:title>
+ </cc:Agent>
+ </dc:publisher>
+ <dc:source>http://www.pseudocode.org</dc:source>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>weather</rdf:li>
+ <rdf:li>appplet</rdf:li>
+ <rdf:li>notify</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/publicdomain/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <g
+ id="g11337"
+ transform="translate(-339.9823,245.0132)">
+ <rect
+ transform="matrix(1.000000,0.000000,-0.600523,0.799607,0.000000,0.000000)"
+ ry="1.5179254"
+ rx="2.3596079"
+ y="-270.75461"
+ x="189.68199"
+ height="17.509083"
+ width="32.962067"
+ id="rect6086"
+ style="opacity:1.0000000;fill:#729fcf;fill-opacity:1.0000000;stroke:#3465a4;stroke-width:1.0817814;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <g
+ style="opacity:0.80000001"
+ transform="matrix(1.000000,0.000000,0.000000,0.999611,0.000000,-7.862650e-2)"
+ id="g10414">
+ <path
+ style="fill:url(#linearGradient11344);fill-opacity:1.0000000;stroke:none;stroke-width:1.1547011;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 352.47790,-216.00000 L 359.39580,-216.00000 C 360.69054,-216.00000 361.33008,-215.50056 360.82979,-214.88017 L 352.15249,-204.12015 C 351.65217,-203.49974 350.20707,-203.00030 348.91233,-203.00030 L 344.86943,-203.00030 C 343.57469,-203.00030 342.30979,-202.95120 343.43545,-204.12015 C 343.43545,-204.12015 352.47790,-216.00000 352.47790,-216.00000 z "
+ id="rect6088"
+ sodipodi:nodetypes="cccccccc" />
+ <path
+ style="fill:url(#linearGradient11346);fill-opacity:1.0000000;stroke:none;stroke-width:1.1547011;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 362.74641,-216.00000 L 369.42169,-216.00000 C 370.69552,-216.00000 371.32477,-215.50054 370.83253,-214.88014 L 362.29523,-204.11987 C 361.80299,-203.49946 360.38121,-203.00000 359.10738,-203.00000 L 353.00000,-203.00000 C 353.00000,-203.00000 362.74641,-216.00000 362.74641,-216.00000 z "
+ id="path6115"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ style="fill:url(#linearGradient11348);fill-opacity:1.0000000;stroke:none;stroke-width:1.1547011;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 372.74640,-216.00000 L 379.42169,-216.00000 C 380.69553,-216.00000 381.32477,-215.50053 380.83253,-214.88014 L 372.29523,-204.11986 C 371.80299,-203.49945 370.38122,-203.00000 369.10738,-203.00000 L 363.00000,-203.00000 C 363.00000,-203.00000 372.74640,-216.00000 372.74640,-216.00000 z "
+ id="path6125"
+ sodipodi:nodetypes="ccccccc" />
+ </g>
+ </g>
+ <g
+ id="g13213"
+ transform="matrix(0.999675,0.000000,0.000000,1.000000,-286.8562,245.0000)">
+ <g
+ id="g13215">
+ <path
+ style="opacity:1.0000000;fill:#555753;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z "
+ id="path13217" />
+ <path
+ style="opacity:1.0000000;fill:url(#linearGradient13315);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z "
+ id="path13219" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13221"
+ sodipodi:cx="241.80843"
+ sodipodi:cy="-383.66660"
+ sodipodi:rx="6.7396116"
+ sodipodi:ry="6.7396116"
+ d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z"
+ transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)" />
+ <g
+ id="g13223">
+ <path
+ transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)"
+ d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z"
+ sodipodi:ry="6.2313786"
+ sodipodi:rx="6.2313786"
+ sodipodi:cy="-389.30136"
+ sodipodi:cx="243.95184"
+ id="path13225"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)"
+ d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z"
+ sodipodi:ry="6.2313786"
+ sodipodi:rx="6.2313786"
+ sodipodi:cy="-389.30136"
+ sodipodi:cx="243.95184"
+ id="path13227"
+ style="opacity:0.49444440;fill:url(#linearGradient13317);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g13229">
+ <path
+ transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)"
+ d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z"
+ sodipodi:ry="6.0325046"
+ sodipodi:rx="6.0325046"
+ sodipodi:cy="-385.78790"
+ sodipodi:cx="251.22179"
+ id="path13231"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)"
+ d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z"
+ sodipodi:ry="6.0325046"
+ sodipodi:rx="6.0325046"
+ sodipodi:cy="-385.78790"
+ sodipodi:cx="251.22179"
+ id="path13233"
+ style="opacity:0.49444440;fill:url(#linearGradient13319);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g13235">
+ <path
+ transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)"
+ d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z"
+ sodipodi:ry="4.3752232"
+ sodipodi:rx="4.3752232"
+ sodipodi:cy="-387.88715"
+ sodipodi:cx="233.43362"
+ id="path13237"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)"
+ d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z"
+ sodipodi:ry="4.3752232"
+ sodipodi:rx="4.3752232"
+ sodipodi:cy="-387.88715"
+ sodipodi:cx="233.43362"
+ id="path13239"
+ style="opacity:0.49444440;fill:url(#linearGradient13321);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g13241">
+ <path
+ transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)"
+ d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z"
+ sodipodi:ry="6.7396116"
+ sodipodi:rx="6.7396116"
+ sodipodi:cy="-383.66660"
+ sodipodi:cx="241.80843"
+ id="path13243"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)"
+ d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z"
+ sodipodi:ry="6.7396116"
+ sodipodi:rx="6.7396116"
+ sodipodi:cy="-383.66660"
+ sodipodi:cx="241.80843"
+ id="path13245"
+ style="opacity:0.49444440;fill:url(#linearGradient13323);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ <g
+ transform="translate(72.00007,7.999930)"
+ id="g13247">
+ <path
+ style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0001625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z "
+ id="path13249"
+ sodipodi:nodetypes="ccsscsssscsscc" />
+ <path
+ style="opacity:1.0000000;fill:url(#linearGradient13325);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z "
+ id="path13251"
+ sodipodi:nodetypes="ccsscsssscsscc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13253"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.47777775;fill:url(#linearGradient13327);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13255"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" />
+ <rect
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="rect13257"
+ width="20.000000"
+ height="9.0000000"
+ x="236.99994"
+ y="-230.99992" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13259"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13261"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.47777775;fill:url(#linearGradient13329);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13263"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13265"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.47777775;fill:url(#linearGradient13331);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13267"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" />
+ <path
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z "
+ id="path13269" />
+ <path
+ style="opacity:0.47777775;fill:url(#linearGradient13333);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z "
+ id="path13271" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.47777775;fill:url(#linearGradient13335);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13273"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" />
+ <path
+ style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z "
+ id="path13275"
+ sodipodi:nodetypes="ccss" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13277"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.47777775;fill:url(#linearGradient13337);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13279"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" />
+ </g>
+ <g
+ transform="translate(56.98577,3.983930)"
+ id="g13281">
+ <path
+ style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0001625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z "
+ id="path13283"
+ sodipodi:nodetypes="ccsscsssscsscc" />
+ <path
+ style="opacity:1.0000000;fill:url(#linearGradient13339);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z "
+ id="path13285"
+ sodipodi:nodetypes="ccsscsssscsscc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13287"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.47777775;fill:url(#linearGradient13341);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13289"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" />
+ <rect
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="rect13291"
+ width="20.000000"
+ height="9.0000000"
+ x="236.99994"
+ y="-230.99992" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13293"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13295"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.47777775;fill:url(#linearGradient13343);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13297"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13299"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.47777775;fill:url(#linearGradient13345);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13301"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" />
+ <path
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z "
+ id="path13303" />
+ <path
+ style="opacity:0.47777775;fill:url(#linearGradient13347);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z "
+ id="path13305" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.47777775;fill:url(#linearGradient13350);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13307"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" />
+ <path
+ style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z "
+ id="path13309"
+ sodipodi:nodetypes="ccss" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13311"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.47777775;fill:url(#linearGradient13352);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13313"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/demos/embedded/weatherinfo/icons/weather-sleet.svg b/demos/embedded/weatherinfo/icons/weather-sleet.svg
new file mode 100644
index 0000000..f1cb9eb
--- /dev/null
+++ b/demos/embedded/weatherinfo/icons/weather-sleet.svg
@@ -0,0 +1,5196 @@
+<?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="48px"
+ height="48px"
+ id="svg1306"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docbase="/home/rcollier/Work/Novell/Tango/weather"
+ sodipodi:docname="weather-sleet.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs1308">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5358"
+ id="linearGradient12213"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
+ x1="6.8942904"
+ y1="-359.82382"
+ x2="27.400387"
+ y2="-381.30222" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5346"
+ id="radialGradient12211"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
+ cx="21.920311"
+ cy="-382.96454"
+ fx="21.920311"
+ fy="-382.96454"
+ r="21.743534" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5358"
+ id="linearGradient12201"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
+ x1="6.8942904"
+ y1="-359.82382"
+ x2="27.400387"
+ y2="-381.30222" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5346"
+ id="radialGradient12199"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
+ cx="21.920311"
+ cy="-382.96454"
+ fx="21.920311"
+ fy="-382.96454"
+ r="21.743534" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5358"
+ id="linearGradient12253"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
+ x1="6.8942904"
+ y1="-359.82382"
+ x2="27.400387"
+ y2="-381.30222" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5346"
+ id="radialGradient12251"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
+ cx="21.920311"
+ cy="-382.96454"
+ fx="21.920311"
+ fy="-382.96454"
+ r="21.743534" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5358"
+ id="linearGradient12237"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
+ x1="6.8942904"
+ y1="-359.82382"
+ x2="27.400387"
+ y2="-381.30222" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5346"
+ id="radialGradient12235"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
+ cx="21.920311"
+ cy="-382.96454"
+ fx="21.920311"
+ fy="-382.96454"
+ r="21.743534" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5358"
+ id="linearGradient12225"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
+ x1="6.8942904"
+ y1="-359.82382"
+ x2="27.400387"
+ y2="-381.30222" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5346"
+ id="radialGradient12223"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
+ cx="21.920311"
+ cy="-382.96454"
+ fx="21.920311"
+ fy="-382.96454"
+ r="21.743534" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5358">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5360" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop5362" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5358"
+ id="linearGradient12249"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
+ x1="6.8942904"
+ y1="-359.82382"
+ x2="27.400387"
+ y2="-381.30222" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5346">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5348" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop5350" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5346"
+ id="radialGradient12247"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
+ cx="21.920311"
+ cy="-382.96454"
+ fx="21.920311"
+ fy="-382.96454"
+ r="21.743534" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 24 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective6329" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient11348"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.070878,0.000000,-0.535439,0.674858,287.5142,77.50802)"
+ x1="-137.49608"
+ y1="-425.28664"
+ x2="-130.60854"
+ y2="-425.28665" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient11346"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.070879,0.000000,-0.535439,0.674857,277.5140,77.50780)"
+ x1="-137.49608"
+ y1="-425.28664"
+ x2="-130.60854"
+ y2="-425.28665" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient11344"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.088439,0.000000,-0.544220,0.674842,265.9811,77.50139)"
+ x1="-137.49608"
+ y1="-425.28664"
+ x2="-130.60854"
+ y2="-425.28665" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient13352"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient13350"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient13347"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-35.00007,207.0001)"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient13345"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient13343"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient13341"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient13339"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-34.00007,207.0001)"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient13337"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6549">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6551" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6553" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient13335"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6527">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6530" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6532" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient13333"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-35.00007,207.0001)"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6538">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6540" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6542" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient13331"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6513">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6515" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6517" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient13329"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6497">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6499" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6501" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient13327"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6470">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6472" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6474" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient13325"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-34.00007,207.0001)"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8397">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8400" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8402" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8397"
+ id="linearGradient13323"
+ gradientUnits="userSpaceOnUse"
+ x1="238.00478"
+ y1="-388.47476"
+ x2="245.65462"
+ y2="-382.64539" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8315">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8317" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8319" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8315"
+ id="linearGradient13321"
+ gradientUnits="userSpaceOnUse"
+ x1="230.87598"
+ y1="-390.43951"
+ x2="235.25652"
+ y2="-386.95901" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8381">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8383" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8385" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8381"
+ id="linearGradient13319"
+ gradientUnits="userSpaceOnUse"
+ x1="246.74042"
+ y1="-391.31381"
+ x2="252.69785"
+ y2="-385.35165" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8331">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8333" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8335" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8331"
+ id="linearGradient13317"
+ gradientUnits="userSpaceOnUse"
+ x1="240.07379"
+ y1="-393.40720"
+ x2="245.82706"
+ y2="-388.55029" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8302">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8304" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8306" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8302"
+ id="linearGradient13315"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(69.00000,155.0000)"
+ x1="228.50261"
+ y1="-392.30591"
+ x2="266.36395"
+ y2="-379.26862" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4442">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop4444" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop4446" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4442"
+ id="linearGradient4467"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-59.00000,27.72122)"
+ x1="4.3602662"
+ y1="-21.904713"
+ x2="40.139732"
+ y2="-1.8452871" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4430"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,7.747730,-6.786242)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4426"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,12.43523,-5.473742)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4404"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-14.02052,-13.29853)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4407"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-9.728831,-6.856090)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4410"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-4.033948,-17.90479)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4413"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,-1.200260,0.631990)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4419"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,4.534070,-12.70656)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4422"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-9.992899,-16.32980)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4488"
+ id="linearGradient4479"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-60.91820,-2.915960)"
+ x1="17.181321"
+ y1="32.443652"
+ x2="47.342173"
+ y2="32.443652" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4359"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4357"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4355"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.365819,-55.70818)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4353"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4351"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4349"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4347"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-3.681521,-53.82781)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4488">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop4490" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop4492" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4488"
+ id="linearGradient4370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-74.92090,-6.914630)"
+ x1="17.175579"
+ y1="23.374163"
+ x2="38.037014"
+ y2="38.680286" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4255"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4253"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4251"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.365819,-55.70818)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4249"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4247"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4245"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3019">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3021" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3023" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient4243"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-3.681521,-53.82781)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ id="linearGradient6525"
+ gradientUnits="userSpaceOnUse"
+ x1="4.1914001"
+ y1="11.113300"
+ x2="47.319698"
+ y2="56.052299">
+ <stop
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;"
+ id="stop6529" />
+ <stop
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0.34020618;"
+ id="stop6531" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6525"
+ id="linearGradient5250"
+ x1="8.5469341"
+ y1="30.281681"
+ x2="30.85088"
+ y2="48.301884"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.874977,0.000000,0.000000,0.921480,-56.65990,-1.553540)" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6537">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6539" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6541" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2298">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2300" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2302" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3347">
+ <stop
+ style="stop-color:#edd400;stop-opacity:1;"
+ offset="0"
+ id="stop3349" />
+ <stop
+ style="stop-color:#edd400;stop-opacity:0;"
+ offset="1"
+ id="stop3351" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2527">
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:1;"
+ offset="0"
+ id="stop2529" />
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:0;"
+ offset="1"
+ id="stop2531" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2500">
+ <stop
+ style="stop-color:#fce94f;stop-opacity:1;"
+ offset="0"
+ id="stop2502" />
+ <stop
+ style="stop-color:#fce94f;stop-opacity:0;"
+ offset="1"
+ id="stop2504" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2392">
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1;"
+ offset="0"
+ id="stop2394" />
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:0;"
+ offset="1"
+ id="stop2396" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2254">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2256" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2258" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2263"
+ gradientUnits="userSpaceOnUse"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581"
+ gradientTransform="translate(-1.608757,3.097272)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2267"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.555020,0.968578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2271"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(9.263651,3.495228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2275"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(8.497184,-2.330824)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2279"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(14.46340,2.014073)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2283"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2287"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2291"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2295"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2299"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2303"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1.707748,-5.784024)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2311"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2350"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(16.14002,24.66420)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2352"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.932144,25.87240)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2354"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.356636,23.86870)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2356"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(11.19027,26.52035)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2358"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(10.30638,19.27251)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2360"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2362"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2364"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2366"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(4.207586,21.30544)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2372"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2392"
+ id="linearGradient2398"
+ x1="6.6651416"
+ y1="13.802798"
+ x2="41.403877"
+ y2="13.802798"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2426"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(14.46340,2.014073)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2428"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(8.497184,-2.330824)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2430"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1.608757,3.097272)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2432"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.555020,0.968578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2434"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(9.263651,3.495228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2436"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2438"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2440"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2442"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2444"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2446"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2392"
+ id="linearGradient2448"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
+ x1="6.6651416"
+ y1="13.802798"
+ x2="41.403877"
+ y2="13.802798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2392"
+ id="linearGradient2451"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
+ x1="6.6651416"
+ y1="13.802798"
+ x2="41.403877"
+ y2="13.802798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2457"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2460"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2463"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2469"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2472"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(12.51365,8.745228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2475"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(6.805020,6.218578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2478"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1.641243,8.347272)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2483"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0.842481,-3.998086)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2506"
+ x1="37.000000"
+ y1="-21.750000"
+ x2="53.750000"
+ y2="9.0000000"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2509"
+ gradientUnits="userSpaceOnUse"
+ x1="37.000000"
+ y1="-21.750000"
+ x2="53.750000"
+ y2="9.0000000"
+ gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2513"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
+ x1="38.857941"
+ y1="-18.407482"
+ x2="53.750000"
+ y2="9.0000000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2517"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
+ x1="37.000000"
+ y1="-21.750000"
+ x2="53.750000"
+ y2="9.0000000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2527"
+ id="linearGradient2533"
+ x1="-25.137094"
+ y1="-1.2491118"
+ x2="-35.652866"
+ y2="-24.884460"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2537"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(17.33814,3.415985)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2541"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(13.40064,1.353485)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2555"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-7.499805,1.708617)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2563"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.726830,2.481141)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3353"
+ x1="23.303862"
+ y1="29.115711"
+ x2="29.750000"
+ y2="46.092930"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3366"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(13.40064,1.353485)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1.641243,8.347272)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(6.805020,6.218578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3372"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(12.51365,8.745228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3374"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3376"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3383"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3386"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3389"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3392"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3395"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.674812,3.088370)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3398"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.033818,0.561720)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3401"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-7.197595,2.690414)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3405"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(4.561802,-4.303373)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="-4.4493785"
+ x2="-34.700153"
+ y1="-37.550461"
+ x1="-27.006643"
+ id="linearGradient2916"
+ xlink:href="#linearGradient2298"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2914"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(57.97693,-10.56876)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2912"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2910"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2908"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2906"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2904"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2902"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.674812,3.088370)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2900"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-2.033818,0.561720)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2898"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.197595,2.690414)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2896"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2894"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2892"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2890"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(88.49344,-9.697877)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2888"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(4.561802,-4.303373)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2886"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.197595,2.690414)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2884"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-2.033818,0.561720)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2882"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.674812,3.088370)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2880"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2878"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2876"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2874"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2872"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2870"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2868"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2866"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2864"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(12.51365,8.745228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2862"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(6.805020,6.218578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2860"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.641243,8.347272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2858"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(13.40064,1.353485)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2856"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="46.092930"
+ x2="29.750000"
+ y1="29.115711"
+ x1="23.303862"
+ id="linearGradient2854"
+ xlink:href="#linearGradient3347"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-0.726830,2.481141)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2852"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.499805,1.708617)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2850"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(13.40064,1.353485)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2848"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(17.33814,3.415985)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2846"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ id="linearGradient2844"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2842"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-18.407482"
+ x1="38.857941"
+ gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2840"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)"
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2838"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ id="linearGradient2836"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(0.842481,-3.998086)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2834"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.641243,8.347272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2832"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(6.805020,6.218578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2830"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(12.51365,8.745228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2828"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2826"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2824"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2822"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2820"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2818"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2816"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2814"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2812"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2810"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2808"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2806"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2804"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(9.263651,3.495228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2802"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.555020,0.968578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2800"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-1.608757,3.097272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2798"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(8.497184,-2.330824)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2796"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(14.46340,2.014073)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2794"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
+ gradientUnits="userSpaceOnUse"
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ id="linearGradient2792"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2790"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(4.207586,21.30544)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2788"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2786"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2784"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2782"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2780"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2778"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(10.30638,19.27251)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2776"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(11.19027,26.52035)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2774"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(5.356636,23.86870)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2772"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-0.932144,25.87240)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2770"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(16.14002,24.66420)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2768"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2766"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.707748,-5.784024)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2764"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2762"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2760"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2758"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2756"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2754"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(14.46340,2.014073)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2752"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(8.497184,-2.330824)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2750"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(9.263651,3.495228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2748"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.555020,0.968578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2746"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(-1.608757,3.097272)"
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2744"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="-4.4493785"
+ x2="-34.700153"
+ y1="-37.550461"
+ x1="-27.006643"
+ id="linearGradient2304"
+ xlink:href="#linearGradient2298"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1557"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(57.97693,-10.56876)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1538"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1536"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1534"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1532"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1530"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1528"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.674812,3.088370)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1526"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-2.033818,0.561720)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1524"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.197595,2.690414)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1522"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1520"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1518"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1516"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(88.49344,-9.697877)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1514"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(4.561802,-4.303373)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5957"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.197595,2.690414)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5955"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-2.033818,0.561720)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5953"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.674812,3.088370)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5951"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5949"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5947"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5945"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5943"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5941"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5939"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5937"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5935"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(12.51365,8.745228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5933"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(6.805020,6.218578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5931"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.641243,8.347272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5929"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(13.40064,1.353485)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5927"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="46.092930"
+ x2="29.750000"
+ y1="29.115711"
+ x1="23.303862"
+ id="linearGradient5925"
+ xlink:href="#linearGradient3347"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-0.726830,2.481141)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5923"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.499805,1.708617)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5921"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(13.40064,1.353485)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5919"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(17.33814,3.415985)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5917"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ id="linearGradient5915"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5913"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-18.407482"
+ x1="38.857941"
+ gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5911"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)"
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5909"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ id="linearGradient5907"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(0.842481,-3.998086)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5905"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.641243,8.347272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5903"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(6.805020,6.218578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5901"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(12.51365,8.745228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5899"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5897"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5895"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5893"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5891"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5889"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5887"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5885"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5883"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5881"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5879"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5877"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5875"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(9.263651,3.495228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5873"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.555020,0.968578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5871"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-1.608757,3.097272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5869"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(8.497184,-2.330824)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5867"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(14.46340,2.014073)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5865"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
+ gradientUnits="userSpaceOnUse"
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ id="linearGradient5863"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5861"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(4.207586,21.30544)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5859"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5857"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5855"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5853"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5851"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5849"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(10.30638,19.27251)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5847"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(11.19027,26.52035)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5845"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(5.356636,23.86870)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5843"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-0.932144,25.87240)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5841"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(16.14002,24.66420)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5839"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5837"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.707748,-5.784024)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5835"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5833"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5831"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5829"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5827"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5825"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(14.46340,2.014073)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5823"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(8.497184,-2.330824)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5821"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(9.263651,3.495228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5819"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.555020,0.968578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5817"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(-1.608757,3.097272)"
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5815"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6101"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6118"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6121"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6124"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(21.51400,12.80461)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6179"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-7.197595,2.690414)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6181"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.033818,0.561720)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6183"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.674812,3.088370)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6185"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6187"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6189"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6191"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2527"
+ id="linearGradient6193"
+ gradientUnits="userSpaceOnUse"
+ x1="-25.137094"
+ y1="-1.2491118"
+ x2="-35.652866"
+ y2="-24.884460" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6196"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6199"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6202"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-4.372193,11.95105)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6208"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.088919,7.833409)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6211"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.619711,5.306759)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6214"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-5.783488,7.435453)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6242"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-5.783488,7.435453)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6244"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.619711,5.306759)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6246"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.088919,7.833409)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6248"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6250"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6252"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6254"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-9.002513,11.93373)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6257"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.297112,4.275205)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6260"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6263"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6266"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6269"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(13.79432,0.174884)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6272"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(8.085690,-2.351766)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6275"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(2.921913,-0.223072)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6311"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(21.51400,12.80461)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6313"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6315"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6317"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6319"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6321"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-5.783488,7.435453)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6323"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.619711,5.306759)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6325"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.088919,7.833409)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6329"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6331"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6333"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-9.002513,11.93373)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6335"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(2.921913,-0.223072)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6337"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(8.085690,-2.351766)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6339"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(13.79432,0.174884)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6341"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6343"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6543"
+ x1="27.320963"
+ y1="44.228481"
+ x2="52.328316"
+ y2="44.228481"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.526962,0.000000,-2.763717e-17,0.972572,16.13182,0.843286)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6547"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,25.91493,0.633642)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="52.328316"
+ y2="44.228481" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6551"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,36.25638,0.633643)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="45.115814"
+ y2="44.228455" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6559"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.526962,0.000000,-2.332577e-16,0.972572,16.13182,0.843286)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="52.328316"
+ y2="44.228481" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6561"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,25.91493,0.633642)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="52.328316"
+ y2="44.228481" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6563"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,36.25638,0.633643)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="45.115814"
+ y2="44.228455" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6566"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.577744,0.000000,-5.984325e-16,1.025105,38.38995,-1.768804)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="45.115814"
+ y2="44.228455" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6569"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.577744,0.000000,-5.984325e-16,1.025105,27.05193,-1.768805)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="52.328316"
+ y2="44.228481" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6572"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.589347,0.000000,-1.531909e-16,1.025217,16.34910,-1.110328)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="52.328316"
+ y2="44.228481" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6576"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.132431,0.000000,0.000000,1.016132,11.79178,-1.090051)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6579"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.853605,0.000000,0.000000,1.016132,20.48211,1.012885)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6582"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,14.73875,-4.143732)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6585"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,8.896962,-6.711142)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6588"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,3.612740,-4.548108)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.999079,0.000000,0.000000,1.016132,58.06881,13.00984)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6603"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-0.560999,-5.855873)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6606"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.314274,0.000000,0.000000,1.016132,13.30131,15.29879)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6609"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-10.35177,5.950245)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6612"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,22.63849,8.689740)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6618"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,17.34164,6.586930)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6622"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,12.56867,12.68572)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6624"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-5.783488,7.435453)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6626"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.619711,5.306759)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6628"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.088919,7.833409)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6630"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6632"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6634"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6636"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-9.002513,11.93373)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4442"
+ id="linearGradient2736"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-59.00000,27.72122)"
+ x1="4.3602662"
+ y1="-21.904713"
+ x2="40.139732"
+ y2="-1.8452871" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2738"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-9.992899,-16.32980)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2740"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,4.534070,-12.70656)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2742"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,-1.200260,0.631990)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2745"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-4.033948,-17.90479)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2747"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-9.728831,-6.856090)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2749"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-14.02052,-13.29853)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2751"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,12.43523,-5.473742)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2753"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,7.747730,-6.786242)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4488"
+ id="linearGradient2755"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-60.91820,-2.915960)"
+ x1="17.181321"
+ y1="32.443652"
+ x2="47.342173"
+ y2="32.443652" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2757"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-3.681521,-53.82781)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2759"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2761"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2763"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2765"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.365819,-55.70818)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2767"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2769"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4488"
+ id="linearGradient2771"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-74.92090,-6.914630)"
+ x1="17.175579"
+ y1="23.374163"
+ x2="38.037014"
+ y2="38.680286" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2773"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-3.681521,-53.82781)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2775"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2777"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2779"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2781"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.365819,-55.70818)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2783"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3019"
+ id="linearGradient2785"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)"
+ x1="23.688078"
+ y1="28.201012"
+ x2="29.521708"
+ y2="34.034641" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4488"
+ id="linearGradient2799"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-11.91814,-7.649759)"
+ x1="17.175579"
+ y1="23.374163"
+ x2="38.037014"
+ y2="38.680286" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4488"
+ id="linearGradient2813"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,2.084560,-3.651089)"
+ x1="18.664751"
+ y1="23.374166"
+ x2="31.294144"
+ y2="35.845455" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4442"
+ id="linearGradient2827"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(4.002760,26.98609)"
+ x1="4.3602662"
+ y1="-21.904713"
+ x2="40.139732"
+ y2="-1.8452871" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5346"
+ id="radialGradient8290"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
+ cx="21.920311"
+ cy="-382.96454"
+ fx="21.920311"
+ fy="-382.96454"
+ r="21.743534" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5358"
+ id="linearGradient8292"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
+ x1="6.8942904"
+ y1="-359.82382"
+ x2="27.400387"
+ y2="-381.30222" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5346"
+ id="radialGradient8294"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
+ cx="21.920311"
+ cy="-382.96454"
+ fx="21.920311"
+ fy="-382.96454"
+ r="21.743534" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5358"
+ id="linearGradient8296"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
+ x1="6.8942904"
+ y1="-359.82382"
+ x2="27.400387"
+ y2="-381.30222" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5346"
+ id="radialGradient8298"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
+ cx="21.920311"
+ cy="-382.96454"
+ fx="21.920311"
+ fy="-382.96454"
+ r="21.743534" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5358"
+ id="linearGradient8300"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
+ x1="6.8942904"
+ y1="-359.82382"
+ x2="27.400387"
+ y2="-381.30222" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5346"
+ id="radialGradient8302"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
+ cx="21.920311"
+ cy="-382.96454"
+ fx="21.920311"
+ fy="-382.96454"
+ r="21.743534" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5358"
+ id="linearGradient8304"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
+ x1="6.8942904"
+ y1="-359.82382"
+ x2="27.400387"
+ y2="-381.30222" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5346"
+ id="radialGradient8306"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
+ cx="21.920311"
+ cy="-382.96454"
+ fx="21.920311"
+ fy="-382.96454"
+ r="21.743534" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5358"
+ id="linearGradient8308"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
+ x1="6.8942904"
+ y1="-359.82382"
+ x2="27.400387"
+ y2="-381.30222" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5346"
+ id="radialGradient8310"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
+ cx="21.920311"
+ cy="-382.96454"
+ fx="21.920311"
+ fy="-382.96454"
+ r="21.743534" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5358"
+ id="linearGradient8312"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
+ x1="6.8942904"
+ y1="-359.82382"
+ x2="27.400387"
+ y2="-381.30222" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="24"
+ inkscape:cy="24"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="982"
+ inkscape:window-height="965"
+ inkscape:window-x="1280"
+ inkscape:window-y="28"
+ inkscape:showpageshadow="false" />
+ <metadata
+ id="metadata1311">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>weather-showers</dc:title>
+ <dc:date>January 2006</dc:date>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Ryan collier (pseudo)</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title>http://www.tango-project.org</dc:title>
+ </cc:Agent>
+ </dc:publisher>
+ <dc:source>http://www.pseudocode.org</dc:source>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>weather</rdf:li>
+ <rdf:li>appplet</rdf:li>
+ <rdf:li>notify</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Attribution" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <g
+ id="g10087">
+ <g
+ transform="matrix(0.999675,0.000000,0.000000,1.000000,-286.8562,245.0000)"
+ id="g13213">
+ <g
+ id="g13215">
+ <path
+ id="path13217"
+ d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z "
+ style="opacity:1.0000000;fill:#555753;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ id="path13219"
+ d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z "
+ style="opacity:1.0000000;fill:url(#linearGradient13315);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)"
+ d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z"
+ sodipodi:ry="6.7396116"
+ sodipodi:rx="6.7396116"
+ sodipodi:cy="-383.66660"
+ sodipodi:cx="241.80843"
+ id="path13221"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <g
+ id="g13223">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13225"
+ sodipodi:cx="243.95184"
+ sodipodi:cy="-389.30136"
+ sodipodi:rx="6.2313786"
+ sodipodi:ry="6.2313786"
+ d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z"
+ transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.49444440;fill:url(#linearGradient13317);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13227"
+ sodipodi:cx="243.95184"
+ sodipodi:cy="-389.30136"
+ sodipodi:rx="6.2313786"
+ sodipodi:ry="6.2313786"
+ d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z"
+ transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" />
+ </g>
+ <g
+ id="g13229">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13231"
+ sodipodi:cx="251.22179"
+ sodipodi:cy="-385.78790"
+ sodipodi:rx="6.0325046"
+ sodipodi:ry="6.0325046"
+ d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z"
+ transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.49444440;fill:url(#linearGradient13319);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13233"
+ sodipodi:cx="251.22179"
+ sodipodi:cy="-385.78790"
+ sodipodi:rx="6.0325046"
+ sodipodi:ry="6.0325046"
+ d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z"
+ transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" />
+ </g>
+ <g
+ id="g13235">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13237"
+ sodipodi:cx="233.43362"
+ sodipodi:cy="-387.88715"
+ sodipodi:rx="4.3752232"
+ sodipodi:ry="4.3752232"
+ d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z"
+ transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.49444440;fill:url(#linearGradient13321);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13239"
+ sodipodi:cx="233.43362"
+ sodipodi:cy="-387.88715"
+ sodipodi:rx="4.3752232"
+ sodipodi:ry="4.3752232"
+ d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z"
+ transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" />
+ </g>
+ <g
+ id="g13241">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13243"
+ sodipodi:cx="241.80843"
+ sodipodi:cy="-383.66660"
+ sodipodi:rx="6.7396116"
+ sodipodi:ry="6.7396116"
+ d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z"
+ transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.49444440;fill:url(#linearGradient13323);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path13245"
+ sodipodi:cx="241.80843"
+ sodipodi:cy="-383.66660"
+ sodipodi:rx="6.7396116"
+ sodipodi:ry="6.7396116"
+ d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z"
+ transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)" />
+ </g>
+ </g>
+ <g
+ id="g13247"
+ transform="translate(72.00007,7.999930)">
+ <path
+ sodipodi:nodetypes="ccsscsssscsscc"
+ id="path13249"
+ d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z "
+ style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0001625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ sodipodi:nodetypes="ccsscsssscsscc"
+ id="path13251"
+ d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z "
+ style="opacity:1.0000000;fill:url(#linearGradient13325);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path13253"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path13255"
+ style="opacity:0.47777775;fill:url(#linearGradient13327);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <rect
+ y="-230.99992"
+ x="236.99994"
+ height="9.0000000"
+ width="20.000000"
+ id="rect13257"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path13259"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path13261"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path13263"
+ style="opacity:0.47777775;fill:url(#linearGradient13329);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path13265"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path13267"
+ style="opacity:0.47777775;fill:url(#linearGradient13331);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ id="path13269"
+ d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z "
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ id="path13271"
+ d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z "
+ style="opacity:0.47777775;fill:url(#linearGradient13333);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path13273"
+ style="opacity:0.47777775;fill:url(#linearGradient13335);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="ccss"
+ id="path13275"
+ d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z "
+ style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
+ <path
+ transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path13277"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path13279"
+ style="opacity:0.47777775;fill:url(#linearGradient13337);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g13281"
+ transform="translate(56.98577,3.983930)">
+ <path
+ sodipodi:nodetypes="ccsscsssscsscc"
+ id="path13283"
+ d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z "
+ style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0001625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ sodipodi:nodetypes="ccsscsssscsscc"
+ id="path13285"
+ d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z "
+ style="opacity:1.0000000;fill:url(#linearGradient13339);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path13287"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path13289"
+ style="opacity:0.47777775;fill:url(#linearGradient13341);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <rect
+ y="-230.99992"
+ x="236.99994"
+ height="9.0000000"
+ width="20.000000"
+ id="rect13291"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path13293"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path13295"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path13297"
+ style="opacity:0.47777775;fill:url(#linearGradient13343);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path13299"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path13301"
+ style="opacity:0.47777775;fill:url(#linearGradient13345);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ id="path13303"
+ d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z "
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ id="path13305"
+ d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z "
+ style="opacity:0.47777775;fill:url(#linearGradient13347);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path13307"
+ style="opacity:0.47777775;fill:url(#linearGradient13350);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="ccss"
+ id="path13309"
+ d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z "
+ style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
+ <path
+ transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path13311"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path13313"
+ style="opacity:0.47777775;fill:url(#linearGradient13352);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ <g
+ transform="translate(17.177973,-2)"
+ id="g8264">
+ <g
+ id="g12227"
+ transform="translate(-219.67784,275.47179)">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path12229"
+ d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z"
+ style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="csscc"
+ id="path12231"
+ d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z"
+ style="opacity:0.46111109;fill:url(#radialGradient8290);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path12233"
+ d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z"
+ style="opacity:1;fill:url(#linearGradient8292);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ id="g12191"
+ transform="translate(-239.67784,265.47959)">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path12193"
+ d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z"
+ style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="csscc"
+ id="path12195"
+ d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z"
+ style="opacity:0.46111109;fill:url(#radialGradient8294);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path12197"
+ d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z"
+ style="opacity:1;fill:url(#linearGradient8296);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ id="g12239"
+ transform="translate(-210.67944,272.47179)">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path12241"
+ d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z"
+ style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="csscc"
+ id="path12243"
+ d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z"
+ style="opacity:0.46111109;fill:url(#radialGradient8298);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path12245"
+ d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z"
+ style="opacity:1;fill:url(#linearGradient8300);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ id="g12186"
+ transform="translate(-241.67794,275.47309)">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path6059"
+ d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z"
+ style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="csscc"
+ id="path6061"
+ d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z"
+ style="opacity:0.46111109;fill:url(#radialGradient8302);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path6063"
+ d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z"
+ style="opacity:1;fill:url(#linearGradient8304);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ id="g12203"
+ transform="translate(-231.67944,270.47179)">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path12205"
+ d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z"
+ style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="csscc"
+ id="path12207"
+ d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z"
+ style="opacity:0.46111109;fill:url(#radialGradient8306);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path12209"
+ d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z"
+ style="opacity:1;fill:url(#linearGradient8308);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ id="g12215"
+ transform="translate(-217.67944,265.47959)">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path12217"
+ d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z"
+ style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="csscc"
+ id="path12219"
+ d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z"
+ style="opacity:0.46111109;fill:url(#radialGradient8310);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path12221"
+ d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z"
+ style="opacity:1;fill:url(#linearGradient8312);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ </g>
+ <g
+ transform="translate(-162.99643,221.88968)"
+ id="g12157">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:1.45874679;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path12159"
+ sodipodi:cx="29.610096"
+ sodipodi:cy="-316.77872"
+ sodipodi:rx="2.2097087"
+ sodipodi:ry="2.2097087"
+ d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z"
+ transform="matrix(0.68552,0,0,0.68552,151.7017,27.15827)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:1.09220433;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path12161"
+ sodipodi:cx="29.610096"
+ sodipodi:cy="-316.77872"
+ sodipodi:rx="2.2097087"
+ sodipodi:ry="2.2097087"
+ d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z"
+ transform="matrix(0.915572,0,0,0.915587,152.4091,103.5577)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:1.47481608;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path12163"
+ sodipodi:cx="29.610096"
+ sodipodi:cy="-316.77872"
+ sodipodi:rx="2.2097087"
+ sodipodi:ry="2.2097087"
+ d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z"
+ transform="matrix(0.672406,0,0,0.683742,153.0708,34.62149)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:1.4678179;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path12165"
+ sodipodi:cx="29.610096"
+ sodipodi:cy="-316.77872"
+ sodipodi:rx="2.2097087"
+ sodipodi:ry="2.2097087"
+ d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z"
+ transform="matrix(0.6823,0,0,0.680269,181.797,30.49471)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:0.89916825;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path12167"
+ sodipodi:cx="29.610096"
+ sodipodi:cy="-316.77872"
+ sodipodi:rx="2.2097087"
+ sodipodi:ry="2.2097087"
+ d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z"
+ transform="matrix(1.107132,0,0,1.117168,157.2177,164.9217)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:0.91822928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path12169"
+ sodipodi:cx="29.610096"
+ sodipodi:cy="-316.77872"
+ sodipodi:rx="2.2097087"
+ sodipodi:ry="2.2097087"
+ d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z"
+ transform="matrix(1.127592,0,0,1.05183,161.6119,151.3731)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:1.46413279;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path12171"
+ sodipodi:cx="29.610096"
+ sodipodi:cy="-316.77872"
+ sodipodi:rx="2.2097087"
+ sodipodi:ry="2.2097087"
+ d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z"
+ transform="matrix(0.685519,0,0,0.680487,164.6869,34.56369)" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/demos/embedded/weatherinfo/icons/weather-snow.svg b/demos/embedded/weatherinfo/icons/weather-snow.svg
new file mode 100644
index 0000000..6c7b4ad
--- /dev/null
+++ b/demos/embedded/weatherinfo/icons/weather-snow.svg
@@ -0,0 +1,1974 @@
+<?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="48px"
+ height="48px"
+ id="svg1306"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docbase="/home/rcollier/Work/Novell/Tango/weather"
+ sodipodi:docname="weather-snow.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs1308">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 24 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective253" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient10630"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient10628"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient10626"
+ gradientUnits="userSpaceOnUse"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient10624"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient10622"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient10620"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient10618"
+ gradientUnits="userSpaceOnUse"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient10616"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6549">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6551" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6553" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient10614"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6527">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6530" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6532" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient10612"
+ gradientUnits="userSpaceOnUse"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6538">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6540" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6542" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient10610"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6513">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6515" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6517" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient10608"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6497">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6499" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6501" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient10606"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6470">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6472" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6474" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient10604"
+ gradientUnits="userSpaceOnUse"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient7834">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop7836" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop7838" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7834"
+ id="linearGradient10602"
+ gradientUnits="userSpaceOnUse"
+ x1="-156.29044"
+ y1="-100.53421"
+ x2="-153.09810"
+ y2="-96.544556" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8397">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8400" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8402" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8397"
+ id="linearGradient10600"
+ gradientUnits="userSpaceOnUse"
+ x1="238.00478"
+ y1="-388.47476"
+ x2="245.65462"
+ y2="-382.64539" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8315">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8317" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8319" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8315"
+ id="linearGradient10598"
+ gradientUnits="userSpaceOnUse"
+ x1="230.87598"
+ y1="-390.43951"
+ x2="235.25652"
+ y2="-386.95901" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8381">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8383" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8385" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8381"
+ id="linearGradient10596"
+ gradientUnits="userSpaceOnUse"
+ x1="246.74042"
+ y1="-391.31381"
+ x2="252.69785"
+ y2="-385.35165" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8331">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8333" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8335" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8331"
+ id="linearGradient10594"
+ gradientUnits="userSpaceOnUse"
+ x1="240.07379"
+ y1="-393.40720"
+ x2="245.82706"
+ y2="-388.55029" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8302">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8304" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8306" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8302"
+ id="linearGradient10592"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(122.0230,102.0000)"
+ x1="228.50261"
+ y1="-392.30591"
+ x2="278.91510"
+ y2="-375.37952" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2298"
+ id="linearGradient7748"
+ gradientUnits="userSpaceOnUse"
+ x1="-27.006643"
+ y1="-37.550461"
+ x2="-34.700153"
+ y2="-4.4493785" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2527"
+ id="linearGradient7746"
+ gradientUnits="userSpaceOnUse"
+ x1="-25.137094"
+ y1="-1.2491118"
+ x2="-35.652866"
+ y2="-24.884460" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3478"
+ id="linearGradient7744"
+ gradientUnits="userSpaceOnUse"
+ x1="11.149398"
+ y1="-43.997444"
+ x2="4.9625983"
+ y2="-8.3080902" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4829">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop4831" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop4833" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3478">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3480" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3482" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2298">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2300" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2302" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3347">
+ <stop
+ style="stop-color:#edd400;stop-opacity:1;"
+ offset="0"
+ id="stop3349" />
+ <stop
+ style="stop-color:#edd400;stop-opacity:0;"
+ offset="1"
+ id="stop3351" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2527">
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:1;"
+ offset="0"
+ id="stop2529" />
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:0;"
+ offset="1"
+ id="stop2531" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2500">
+ <stop
+ style="stop-color:#fce94f;stop-opacity:1;"
+ offset="0"
+ id="stop2502" />
+ <stop
+ style="stop-color:#fce94f;stop-opacity:0;"
+ offset="1"
+ id="stop2504" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2392">
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1;"
+ offset="0"
+ id="stop2394" />
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:0;"
+ offset="1"
+ id="stop2396" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2254">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2256" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2258" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2263"
+ gradientUnits="userSpaceOnUse"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581"
+ gradientTransform="translate(-1.608757,3.097272)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2267"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.555020,0.968578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2271"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(9.263651,3.495228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2275"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(8.497184,-2.330824)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2279"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(14.46340,2.014073)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2283"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2287"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2291"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2295"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2299"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2303"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1.707748,-5.784024)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2311"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2350"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(16.14002,24.66420)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2352"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.932144,25.87240)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2354"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.356636,23.86870)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2356"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(11.19027,26.52035)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2358"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(10.30638,19.27251)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2360"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2362"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2364"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2366"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(4.207586,21.30544)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2372"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2392"
+ id="linearGradient2398"
+ x1="6.6651416"
+ y1="13.802798"
+ x2="41.403877"
+ y2="13.802798"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2426"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(14.46340,2.014073)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2428"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(8.497184,-2.330824)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2430"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1.608757,3.097272)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2432"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.555020,0.968578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2434"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(9.263651,3.495228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2436"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2438"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2440"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2442"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2444"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2446"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2392"
+ id="linearGradient2448"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
+ x1="6.6651416"
+ y1="13.802798"
+ x2="41.403877"
+ y2="13.802798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2392"
+ id="linearGradient2451"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
+ x1="6.6651416"
+ y1="13.802798"
+ x2="41.403877"
+ y2="13.802798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2457"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2460"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2463"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2469"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2472"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(12.51365,8.745228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2475"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(6.805020,6.218578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2478"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1.641243,8.347272)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2483"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0.842481,-3.998086)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2506"
+ x1="37.000000"
+ y1="-21.750000"
+ x2="53.750000"
+ y2="9.0000000"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2509"
+ gradientUnits="userSpaceOnUse"
+ x1="37.000000"
+ y1="-21.750000"
+ x2="53.750000"
+ y2="9.0000000"
+ gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2513"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
+ x1="38.857941"
+ y1="-18.407482"
+ x2="53.750000"
+ y2="9.0000000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2517"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
+ x1="37.000000"
+ y1="-21.750000"
+ x2="53.750000"
+ y2="9.0000000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2527"
+ id="linearGradient2533"
+ x1="-25.137094"
+ y1="-1.2491118"
+ x2="-35.652866"
+ y2="-24.884460"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2537"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(17.33814,3.415985)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2541"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(13.40064,1.353485)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2555"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-7.499805,1.708617)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2563"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.726830,2.481141)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3353"
+ x1="23.303862"
+ y1="29.115711"
+ x2="29.750000"
+ y2="46.092930"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3366"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(13.40064,1.353485)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1.641243,8.347272)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(6.805020,6.218578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3372"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(12.51365,8.745228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3374"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3376"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3383"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3386"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3389"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3392"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3395"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.674812,3.088370)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3398"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.033818,0.561720)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3401"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-7.197595,2.690414)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3405"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(4.561802,-4.303373)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient1514"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(88.49344,-9.697877)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient1516"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient1518"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2527"
+ id="linearGradient1520"
+ gradientUnits="userSpaceOnUse"
+ x1="-25.137094"
+ y1="-1.2491118"
+ x2="-35.652866"
+ y2="-24.884460" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient1522"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-7.197595,2.690414)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient1524"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.033818,0.561720)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient1526"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.674812,3.088370)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient1528"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient1530"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient1532"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient1534"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient1536"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient1538"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(57.97693,-10.56876)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2527"
+ id="linearGradient1557"
+ gradientUnits="userSpaceOnUse"
+ x1="-25.137094"
+ y1="-1.2491118"
+ x2="-35.652866"
+ y2="-24.884460" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4829"
+ id="radialGradient4835"
+ cx="-35.001785"
+ cy="-1.1439217"
+ fx="-35.001785"
+ fy="-1.1439217"
+ r="17.500893"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.565657,-5.564992e-15,-0.496855)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2298"
+ id="linearGradient1427"
+ gradientUnits="userSpaceOnUse"
+ x1="-27.006643"
+ y1="-37.550461"
+ x2="-34.700153"
+ y2="-4.4493785" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3478"
+ id="linearGradient1431"
+ gradientUnits="userSpaceOnUse"
+ x1="11.149398"
+ y1="-43.997444"
+ x2="4.9625983"
+ y2="-8.3080902" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3478"
+ id="linearGradient14128"
+ gradientUnits="userSpaceOnUse"
+ x1="11.149398"
+ y1="-43.997444"
+ x2="4.9625983"
+ y2="-8.3080902" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2527"
+ id="linearGradient14130"
+ gradientUnits="userSpaceOnUse"
+ x1="-25.137094"
+ y1="-1.2491118"
+ x2="-35.652866"
+ y2="-24.884460" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2298"
+ id="linearGradient14132"
+ gradientUnits="userSpaceOnUse"
+ x1="-27.006643"
+ y1="-37.550461"
+ x2="-34.700153"
+ y2="-4.4493785" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="8"
+ inkscape:cx="23.594384"
+ inkscape:cy="39.722629"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="859"
+ inkscape:window-height="818"
+ inkscape:window-x="0"
+ inkscape:window-y="30"
+ inkscape:showpageshadow="false" />
+ <metadata
+ id="metadata1311">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>weather-snow</dc:title>
+ <dc:date>January 2006</dc:date>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Ryan Collier (pseudo)</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title>http://www.tango-project.org</dc:title>
+ </cc:Agent>
+ </dc:publisher>
+ <dc:source>http://www.pseudocode.org</dc:source>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>weather</rdf:li>
+ <rdf:li>applet</rdf:li>
+ <rdf:li>notification</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/publicdomain/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <g
+ id="g9947"
+ transform="translate(-340.0455,298.0001)">
+ <path
+ id="path8718"
+ d="M 364.52300,-296.00000 C 361.75058,-296.00000 359.41477,-294.42629 358.11675,-292.18750 C 357.17239,-292.66254 356.15156,-293.00000 355.02300,-293.00000 C 351.15900,-293.00000 348.02300,-289.86400 348.02300,-286.00000 C 348.02300,-282.13600 351.15900,-279.00000 355.02300,-279.00000 C 357.44267,-279.00000 359.45309,-280.31932 360.71050,-282.18750 C 361.84470,-281.49788 363.09948,-281.00000 364.52300,-281.00000 C 365.43612,-281.00000 366.27595,-281.23202 367.08550,-281.53125 C 367.59544,-280.66352 368.26462,-279.95153 369.08550,-279.37500 C 369.07826,-279.24462 369.02300,-279.13218 369.02300,-279.00000 C 369.02300,-275.13600 372.15899,-272.00000 376.02300,-272.00000 C 379.88700,-272.00000 383.02300,-275.13600 383.02300,-279.00000 C 383.02300,-281.36969 381.76402,-283.35834 379.96050,-284.62500 C 379.96774,-284.75538 380.02300,-284.86782 380.02300,-285.00000 C 380.02300,-288.86400 376.88701,-292.00000 373.02300,-292.00000 C 372.40030,-292.00000 371.84781,-291.77781 371.27300,-291.62500 C 370.07847,-294.18384 367.53166,-296.00000 364.52300,-296.00000 z "
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ id="path8720"
+ d="M 364.52300,-295.00000 C 361.74252,-295.00000 359.38849,-293.23815 358.46050,-290.78125 C 357.47508,-291.49069 356.32907,-292.00000 355.02300,-292.00000 C 351.71100,-292.00000 349.02300,-289.31200 349.02300,-286.00000 C 349.02300,-282.68800 351.71100,-280.00000 355.02300,-280.00000 C 357.45075,-280.00000 359.51624,-281.45558 360.46050,-283.53125 C 361.58126,-282.61369 362.96264,-282.00000 364.52300,-282.00000 C 365.59754,-282.00000 366.56728,-282.31896 367.46050,-282.78125 C 367.85890,-281.78149 368.56164,-280.99493 369.39800,-280.34375 C 369.21799,-279.74813 369.02300,-279.15410 369.02300,-278.50000 C 369.02300,-274.91200 371.93500,-272.00000 375.52300,-272.00000 C 379.11100,-272.00000 382.02300,-274.91200 382.02300,-278.50000 C 382.02300,-280.86079 380.68867,-282.83019 378.80425,-283.96875 C 378.86684,-284.31598 379.02300,-284.63483 379.02300,-285.00000 C 379.02300,-288.31200 376.33500,-291.00000 373.02300,-291.00000 C 372.17002,-291.00000 371.35170,-290.82132 370.61675,-290.50000 C 369.76298,-293.09388 367.40151,-294.99999 364.52300,-295.00000 z "
+ style="opacity:1.0000000;fill:url(#linearGradient10592);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ transform="matrix(0.964447,0.000000,0.000000,0.964447,142.3115,91.52621)"
+ d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z"
+ sodipodi:ry="6.7396116"
+ sodipodi:rx="6.7396116"
+ sodipodi:cy="-383.66660"
+ sodipodi:cx="241.80843"
+ id="path8722"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <g
+ transform="translate(122.0230,102.0000)"
+ id="g8724">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path8726"
+ sodipodi:cx="243.95184"
+ sodipodi:cy="-389.30136"
+ sodipodi:rx="6.2313786"
+ sodipodi:ry="6.2313786"
+ d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z"
+ transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:url(#linearGradient10594);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path8728"
+ sodipodi:cx="243.95184"
+ sodipodi:cy="-389.30136"
+ sodipodi:rx="6.2313786"
+ sodipodi:ry="6.2313786"
+ d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z"
+ transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" />
+ </g>
+ <g
+ transform="translate(122.0230,102.0000)"
+ id="g8730">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path8732"
+ sodipodi:cx="251.22179"
+ sodipodi:cy="-385.78790"
+ sodipodi:rx="6.0325046"
+ sodipodi:ry="6.0325046"
+ d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z"
+ transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:url(#linearGradient10596);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path8734"
+ sodipodi:cx="251.22179"
+ sodipodi:cy="-385.78790"
+ sodipodi:rx="6.0325046"
+ sodipodi:ry="6.0325046"
+ d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z"
+ transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" />
+ </g>
+ <g
+ transform="translate(122.0230,102.0000)"
+ id="g8736">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path8738"
+ sodipodi:cx="233.43362"
+ sodipodi:cy="-387.88715"
+ sodipodi:rx="4.3752232"
+ sodipodi:ry="4.3752232"
+ d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z"
+ transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:url(#linearGradient10598);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path8740"
+ sodipodi:cx="233.43362"
+ sodipodi:cy="-387.88715"
+ sodipodi:rx="4.3752232"
+ sodipodi:ry="4.3752232"
+ d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z"
+ transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" />
+ </g>
+ <g
+ transform="translate(122.0230,102.0000)"
+ id="g8742">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path8744"
+ sodipodi:cx="241.80843"
+ sodipodi:cy="-383.66660"
+ sodipodi:rx="6.7396116"
+ sodipodi:ry="6.7396116"
+ d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z"
+ transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150940,14.48994)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:url(#linearGradient10600);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path8746"
+ sodipodi:cx="241.80843"
+ sodipodi:cy="-383.66660"
+ sodipodi:rx="6.7396116"
+ sodipodi:ry="6.7396116"
+ d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z"
+ transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150933,14.48993)" />
+ </g>
+ <g
+ style="stroke:none"
+ transform="matrix(0.935028,0.000000,0.000000,0.935028,499.8484,-187.6162)"
+ id="g8748">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:0.33115697;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path8750"
+ sodipodi:cx="-155.06250"
+ sodipodi:cy="-96.937500"
+ sodipodi:rx="3.1250000"
+ sodipodi:ry="3.1250000"
+ d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1 -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1 -151.93750 -96.937500 z"
+ transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8322,70.07649)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:url(#linearGradient10602);fill-opacity:1.0000000;stroke:none;stroke-width:0.45224530;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path8752"
+ sodipodi:cx="-155.06250"
+ sodipodi:cy="-96.937500"
+ sodipodi:rx="3.1250000"
+ sodipodi:ry="3.1250000"
+ d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1 -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1 -151.93750 -96.937500 z"
+ transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8948,70.01402)" />
+ </g>
+ <g
+ transform="translate(91.02300,162.0000)"
+ id="g8798">
+ <path
+ style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z "
+ id="path8800"
+ sodipodi:nodetypes="ccsscsssscsscc" />
+ <path
+ style="opacity:1.0000000;fill:url(#linearGradient10604);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z "
+ id="path8802"
+ sodipodi:nodetypes="ccsscsssscsscc" />
+ <g
+ id="g8804">
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path8806"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path8808"
+ style="opacity:1.0000000;fill:url(#linearGradient10606);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ <rect
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="rect8810"
+ width="20.000000"
+ height="9.0000000"
+ x="271.00000"
+ y="-438.00000" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path8812"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" />
+ <g
+ id="g8814">
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path8816"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path8818"
+ style="opacity:1.0000000;fill:url(#linearGradient10608);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g8820">
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path8822"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path8824"
+ style="opacity:1.0000000;fill:url(#linearGradient10610);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g8826"
+ transform="translate(-1.000000,0.000000)">
+ <path
+ id="path8828"
+ d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z "
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ id="path8830"
+ d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z "
+ style="opacity:1.0000000;fill:url(#linearGradient10612);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ </g>
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:url(#linearGradient10614);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path8832"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" />
+ <path
+ style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z "
+ id="path8834"
+ sodipodi:nodetypes="ccss" />
+ <g
+ id="g8836"
+ transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)">
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path8838"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path8840"
+ style="opacity:1.0000000;fill:url(#linearGradient10616);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ <g
+ transform="translate(76.02041,158.0000)"
+ id="g8754">
+ <path
+ style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z "
+ id="path8756"
+ sodipodi:nodetypes="ccsscsssscsscc" />
+ <path
+ style="opacity:1.0000000;fill:url(#linearGradient10618);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z "
+ id="path8758"
+ sodipodi:nodetypes="ccsscsssscsscc" />
+ <g
+ id="g8760">
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path8762"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path8764"
+ style="opacity:1.0000000;fill:url(#linearGradient10620);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ <rect
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="rect8766"
+ width="20.000000"
+ height="9.0000000"
+ x="271.00000"
+ y="-438.00000" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path8768"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" />
+ <g
+ id="g8770">
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path8772"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path8774"
+ style="opacity:1.0000000;fill:url(#linearGradient10622);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g8776">
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path8778"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path8780"
+ style="opacity:1.0000000;fill:url(#linearGradient10624);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g8782"
+ transform="translate(-1.000000,0.000000)">
+ <path
+ id="path8784"
+ d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z "
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ id="path8786"
+ d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z "
+ style="opacity:1.0000000;fill:url(#linearGradient10626);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ </g>
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:url(#linearGradient10628);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path8788"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" />
+ <path
+ style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z "
+ id="path8790"
+ sodipodi:nodetypes="ccss" />
+ <g
+ id="g8792"
+ transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)">
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path8794"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path8796"
+ style="opacity:1.0000000;fill:url(#linearGradient10630);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ </g>
+ <g
+ id="g12157"
+ transform="translate(-163.0077,222.0147)">
+ <path
+ transform="matrix(0.685520,0.000000,0.000000,0.685520,151.7017,27.15827)"
+ d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z"
+ sodipodi:ry="2.2097087"
+ sodipodi:rx="2.2097087"
+ sodipodi:cy="-316.77872"
+ sodipodi:cx="29.610096"
+ id="path12159"
+ style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:1.4587468;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.915572,0.000000,0.000000,0.915587,152.4091,103.5577)"
+ d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z"
+ sodipodi:ry="2.2097087"
+ sodipodi:rx="2.2097087"
+ sodipodi:cy="-316.77872"
+ sodipodi:cx="29.610096"
+ id="path12161"
+ style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:1.0922043;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.672406,0.000000,0.000000,0.683742,153.0708,34.62149)"
+ d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z"
+ sodipodi:ry="2.2097087"
+ sodipodi:rx="2.2097087"
+ sodipodi:cy="-316.77872"
+ sodipodi:cx="29.610096"
+ id="path12163"
+ style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:1.4748161;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.682300,0.000000,0.000000,0.680269,181.7970,30.49471)"
+ d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z"
+ sodipodi:ry="2.2097087"
+ sodipodi:rx="2.2097087"
+ sodipodi:cy="-316.77872"
+ sodipodi:cx="29.610096"
+ id="path12165"
+ style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:1.4678179;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.107132,0.000000,0.000000,1.117168,157.2177,164.9217)"
+ d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z"
+ sodipodi:ry="2.2097087"
+ sodipodi:rx="2.2097087"
+ sodipodi:cy="-316.77872"
+ sodipodi:cx="29.610096"
+ id="path12167"
+ style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:0.89916825;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.127592,0.000000,0.000000,1.051830,161.6119,151.3731)"
+ d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z"
+ sodipodi:ry="2.2097087"
+ sodipodi:rx="2.2097087"
+ sodipodi:cy="-316.77872"
+ sodipodi:cx="29.610096"
+ id="path12169"
+ style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:0.91822928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.685519,0.000000,0.000000,0.680487,164.6869,34.56369)"
+ d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z"
+ sodipodi:ry="2.2097087"
+ sodipodi:rx="2.2097087"
+ sodipodi:cy="-316.77872"
+ sodipodi:cx="29.610096"
+ id="path12171"
+ style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:1.4641328;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+</svg>
diff --git a/demos/embedded/weatherinfo/icons/weather-storm.svg b/demos/embedded/weatherinfo/icons/weather-storm.svg
new file mode 100644
index 0000000..4d8bfec
--- /dev/null
+++ b/demos/embedded/weatherinfo/icons/weather-storm.svg
@@ -0,0 +1,4308 @@
+<?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="48px"
+ height="48px"
+ id="svg1306"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docbase="/home/rcollier/Work/Novell/Tango/weather"
+ sodipodi:docname="weather-storm.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs1308">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 24 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective488" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8397">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8400" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8402" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8397"
+ id="linearGradient13503"
+ gradientUnits="userSpaceOnUse"
+ x1="238.00478"
+ y1="-388.47476"
+ x2="245.65462"
+ y2="-382.64539" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8315">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8317" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8319" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8315"
+ id="linearGradient13501"
+ gradientUnits="userSpaceOnUse"
+ x1="230.87598"
+ y1="-390.43951"
+ x2="235.25652"
+ y2="-386.95901" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8381">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8383" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8385" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8381"
+ id="linearGradient13499"
+ gradientUnits="userSpaceOnUse"
+ x1="246.74042"
+ y1="-391.31381"
+ x2="252.69785"
+ y2="-385.35165" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8331">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8333" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8335" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8331"
+ id="linearGradient13497"
+ gradientUnits="userSpaceOnUse"
+ x1="240.07379"
+ y1="-393.40720"
+ x2="245.82706"
+ y2="-388.55029" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8302">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8304" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8306" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8302"
+ id="linearGradient13495"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(69.00000,155.0000)"
+ x1="228.50261"
+ y1="-392.30591"
+ x2="266.36395"
+ y2="-379.26862" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient13143"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient13141"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient13139"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-35.00007,207.0001)"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient13137"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient13135"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient13133"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient13131"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-34.00007,207.0001)"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8874"
+ id="linearGradient11195"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(14.15871,7.082841)"
+ x1="-190.47688"
+ y1="-332.51181"
+ x2="-196.19046"
+ y2="-328.53433" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8904"
+ id="linearGradient11193"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(13.80516,2.840199)"
+ x1="-191.28896"
+ y1="-328.07861"
+ x2="-192.41396"
+ y2="-315.32861" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8874">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8876" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8878" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8874"
+ id="linearGradient11191"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(14.15871,7.082841)"
+ x1="-190.47688"
+ y1="-332.51181"
+ x2="-196.19046"
+ y2="-328.53433" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8904">
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:1;"
+ offset="0"
+ id="stop8906" />
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:0;"
+ offset="1"
+ id="stop8908" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8904"
+ id="linearGradient11189"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(13.80516,2.840199)"
+ x1="-191.28896"
+ y1="-328.07861"
+ x2="-192.41396"
+ y2="-315.32861" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5123"
+ id="radialGradient13211"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,245.3644,184.9256)"
+ cx="-229.75000"
+ cy="-343.95554"
+ fx="-229.75000"
+ fy="-343.95554"
+ r="14.501380" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient13157"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6549">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6551" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6553" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient13155"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6527">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6530" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6532" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient13153"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-35.00007,207.0001)"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6538">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6540" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6542" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient13151"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6513">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6515" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6517" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient13149"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6497">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6499" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6501" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient13147"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6470">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6472" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6474" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient13145"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-34.00007,207.0001)"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5123">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5125" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop5127" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5123"
+ id="radialGradient13068"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,229.9269,180.9261)"
+ cx="-229.75000"
+ cy="-343.95554"
+ fx="-229.75000"
+ fy="-343.95554"
+ r="14.501380" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6840">
+ <stop
+ style="stop-color:#ad7fa8;stop-opacity:1;"
+ offset="0"
+ id="stop6842" />
+ <stop
+ style="stop-color:#ad7fa8;stop-opacity:0;"
+ offset="1"
+ id="stop6844" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6828">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6830" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6832" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6537">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6539" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6541" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2298">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2300" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2302" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3347">
+ <stop
+ style="stop-color:#edd400;stop-opacity:1;"
+ offset="0"
+ id="stop3349" />
+ <stop
+ style="stop-color:#edd400;stop-opacity:0;"
+ offset="1"
+ id="stop3351" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2527">
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:1;"
+ offset="0"
+ id="stop2529" />
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:0;"
+ offset="1"
+ id="stop2531" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2500">
+ <stop
+ style="stop-color:#fce94f;stop-opacity:1;"
+ offset="0"
+ id="stop2502" />
+ <stop
+ style="stop-color:#fce94f;stop-opacity:0;"
+ offset="1"
+ id="stop2504" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2392">
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1;"
+ offset="0"
+ id="stop2394" />
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:0;"
+ offset="1"
+ id="stop2396" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2254">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2256" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2258" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2263"
+ gradientUnits="userSpaceOnUse"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581"
+ gradientTransform="translate(-1.608757,3.097272)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2267"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.555020,0.968578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2271"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(9.263651,3.495228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2275"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(8.497184,-2.330824)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2279"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(14.46340,2.014073)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2283"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2287"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2291"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2295"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2299"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2303"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1.707748,-5.784024)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2311"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2350"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(16.14002,24.66420)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2352"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.932144,25.87240)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2354"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.356636,23.86870)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2356"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(11.19027,26.52035)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2358"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(10.30638,19.27251)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2360"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2362"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2364"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2366"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(4.207586,21.30544)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2372"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2392"
+ id="linearGradient2398"
+ x1="6.6651416"
+ y1="13.802798"
+ x2="41.403877"
+ y2="13.802798"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2426"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(14.46340,2.014073)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2428"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(8.497184,-2.330824)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2430"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1.608757,3.097272)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2432"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.555020,0.968578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2434"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(9.263651,3.495228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2436"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2438"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2440"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2442"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2444"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2446"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2392"
+ id="linearGradient2448"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
+ x1="6.6651416"
+ y1="13.802798"
+ x2="41.403877"
+ y2="13.802798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2392"
+ id="linearGradient2451"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
+ x1="6.6651416"
+ y1="13.802798"
+ x2="41.403877"
+ y2="13.802798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2457"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2460"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2463"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2469"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2472"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(12.51365,8.745228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2475"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(6.805020,6.218578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2478"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1.641243,8.347272)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2483"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0.842481,-3.998086)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2506"
+ x1="37.000000"
+ y1="-21.750000"
+ x2="53.750000"
+ y2="9.0000000"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2509"
+ gradientUnits="userSpaceOnUse"
+ x1="37.000000"
+ y1="-21.750000"
+ x2="53.750000"
+ y2="9.0000000"
+ gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2513"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
+ x1="38.857941"
+ y1="-18.407482"
+ x2="53.750000"
+ y2="9.0000000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2517"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
+ x1="37.000000"
+ y1="-21.750000"
+ x2="53.750000"
+ y2="9.0000000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2527"
+ id="linearGradient2533"
+ x1="-25.137094"
+ y1="-1.2491118"
+ x2="-35.652866"
+ y2="-24.884460"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2537"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(17.33814,3.415985)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2541"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(13.40064,1.353485)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2555"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-7.499805,1.708617)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2563"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.726830,2.481141)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3353"
+ x1="23.303862"
+ y1="29.115711"
+ x2="29.750000"
+ y2="46.092930"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3366"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(13.40064,1.353485)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1.641243,8.347272)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(6.805020,6.218578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3372"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(12.51365,8.745228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3374"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3376"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3383"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3386"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3389"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3392"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3395"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.674812,3.088370)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3398"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.033818,0.561720)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3401"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-7.197595,2.690414)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3405"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(4.561802,-4.303373)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="-4.4493785"
+ x2="-34.700153"
+ y1="-37.550461"
+ x1="-27.006643"
+ id="linearGradient2916"
+ xlink:href="#linearGradient2298"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2914"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(57.97693,-10.56876)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2912"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2910"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2908"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2906"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2904"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2902"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.674812,3.088370)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2900"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-2.033818,0.561720)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2898"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.197595,2.690414)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2896"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2894"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2892"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2890"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(88.49344,-9.697877)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2888"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(4.561802,-4.303373)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2886"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.197595,2.690414)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2884"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-2.033818,0.561720)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2882"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.674812,3.088370)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2880"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2878"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2876"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2874"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2872"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2870"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2868"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2866"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2864"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(12.51365,8.745228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2862"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(6.805020,6.218578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2860"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.641243,8.347272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2858"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(13.40064,1.353485)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2856"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="46.092930"
+ x2="29.750000"
+ y1="29.115711"
+ x1="23.303862"
+ id="linearGradient2854"
+ xlink:href="#linearGradient3347"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-0.726830,2.481141)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2852"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.499805,1.708617)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2850"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(13.40064,1.353485)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2848"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(17.33814,3.415985)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2846"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ id="linearGradient2844"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2842"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-18.407482"
+ x1="38.857941"
+ gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2840"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)"
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2838"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ id="linearGradient2836"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(0.842481,-3.998086)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2834"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.641243,8.347272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2832"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(6.805020,6.218578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2830"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(12.51365,8.745228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2828"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2826"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2824"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2822"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2820"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2818"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2816"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2814"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2812"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2810"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2808"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2806"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2804"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(9.263651,3.495228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2802"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.555020,0.968578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2800"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-1.608757,3.097272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2798"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(8.497184,-2.330824)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2796"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(14.46340,2.014073)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2794"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
+ gradientUnits="userSpaceOnUse"
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ id="linearGradient2792"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2790"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(4.207586,21.30544)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2788"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2786"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2784"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2782"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2780"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2778"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(10.30638,19.27251)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2776"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(11.19027,26.52035)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2774"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(5.356636,23.86870)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2772"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-0.932144,25.87240)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2770"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(16.14002,24.66420)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2768"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2766"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.707748,-5.784024)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2764"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2762"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2760"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2758"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2756"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2754"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(14.46340,2.014073)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2752"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(8.497184,-2.330824)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2750"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(9.263651,3.495228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2748"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.555020,0.968578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2746"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(-1.608757,3.097272)"
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2744"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="-4.4493785"
+ x2="-34.700153"
+ y1="-37.550461"
+ x1="-27.006643"
+ id="linearGradient2304"
+ xlink:href="#linearGradient2298"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1557"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(57.97693,-10.56876)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1538"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1536"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1534"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1532"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1530"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1528"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.674812,3.088370)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1526"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-2.033818,0.561720)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1524"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.197595,2.690414)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1522"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1520"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1518"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1516"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(88.49344,-9.697877)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1514"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(4.561802,-4.303373)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5957"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.197595,2.690414)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5955"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-2.033818,0.561720)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5953"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.674812,3.088370)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5951"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5949"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5947"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5945"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5943"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5941"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5939"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5937"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5935"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(12.51365,8.745228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5933"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(6.805020,6.218578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5931"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.641243,8.347272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5929"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(13.40064,1.353485)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5927"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="46.092930"
+ x2="29.750000"
+ y1="29.115711"
+ x1="23.303862"
+ id="linearGradient5925"
+ xlink:href="#linearGradient3347"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-0.726830,2.481141)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5923"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.499805,1.708617)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5921"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(13.40064,1.353485)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5919"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(17.33814,3.415985)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5917"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ id="linearGradient5915"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5913"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-18.407482"
+ x1="38.857941"
+ gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5911"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)"
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5909"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ id="linearGradient5907"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(0.842481,-3.998086)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5905"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.641243,8.347272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5903"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(6.805020,6.218578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5901"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(12.51365,8.745228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5899"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5897"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5895"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5893"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5891"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5889"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5887"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5885"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5883"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5881"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5879"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5877"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5875"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(9.263651,3.495228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5873"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.555020,0.968578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5871"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-1.608757,3.097272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5869"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(8.497184,-2.330824)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5867"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(14.46340,2.014073)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5865"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
+ gradientUnits="userSpaceOnUse"
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ id="linearGradient5863"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5861"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(4.207586,21.30544)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5859"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5857"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5855"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5853"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5851"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5849"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(10.30638,19.27251)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5847"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(11.19027,26.52035)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5845"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(5.356636,23.86870)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5843"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-0.932144,25.87240)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5841"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(16.14002,24.66420)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5839"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5837"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.707748,-5.784024)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5835"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5833"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5831"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5829"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5827"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5825"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(14.46340,2.014073)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5823"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(8.497184,-2.330824)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5821"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(9.263651,3.495228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5819"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.555020,0.968578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5817"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(-1.608757,3.097272)"
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5815"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6098"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-9.002513,11.93373)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6101"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6118"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6121"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6124"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(21.51400,12.80461)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6179"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-7.197595,2.690414)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6181"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.033818,0.561720)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6183"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.674812,3.088370)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6185"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6187"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6189"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6191"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2527"
+ id="linearGradient6193"
+ gradientUnits="userSpaceOnUse"
+ x1="-25.137094"
+ y1="-1.2491118"
+ x2="-35.652866"
+ y2="-24.884460" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6196"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6199"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6202"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-4.372193,11.95105)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6208"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.088919,7.833409)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6211"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.619711,5.306759)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6214"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-5.783488,7.435453)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6242"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-5.783488,7.435453)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6244"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.619711,5.306759)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6246"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.088919,7.833409)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6248"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6250"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6252"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6254"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-9.002513,11.93373)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6257"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.297112,4.275205)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6260"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6263"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6266"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6269"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(13.79432,0.174884)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6272"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(8.085690,-2.351766)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6275"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(2.921913,-0.223072)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6311"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(21.51400,12.80461)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6313"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6315"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6317"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6319"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6321"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-5.783488,7.435453)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6323"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.619711,5.306759)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6325"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.088919,7.833409)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6329"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6331"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6333"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-9.002513,11.93373)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6335"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(2.921913,-0.223072)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6337"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(8.085690,-2.351766)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6339"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(13.79432,0.174884)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6341"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6343"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6543"
+ x1="27.320963"
+ y1="44.228481"
+ x2="52.328316"
+ y2="44.228481"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.526962,0.000000,-2.763717e-17,0.972572,16.13182,0.843286)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6547"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,25.91493,0.633642)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="52.328316"
+ y2="44.228481" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6551"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,36.25638,0.633643)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="45.115814"
+ y2="44.228455" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6559"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.526962,0.000000,-2.332577e-16,0.972572,16.13182,0.843286)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="52.328316"
+ y2="44.228481" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6561"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,25.91493,0.633642)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="52.328316"
+ y2="44.228481" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6563"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,36.25638,0.633643)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="45.115814"
+ y2="44.228455" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6566"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.577744,0.000000,-6.388715e-16,1.006703,39.04124,-0.702889)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="45.115814"
+ y2="44.228455" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6569"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.577744,0.000000,-6.388715e-16,1.006703,27.70322,-0.702890)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="52.328316"
+ y2="44.228481" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6572"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.577744,0.000000,-1.880005e-16,1.006703,16.97734,-0.485889)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="52.328316"
+ y2="44.228481" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6576"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.132431,0.000000,0.000000,1.016132,10.54485,-4.728138)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6579"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.853605,0.000000,0.000000,1.016132,19.23518,-2.625202)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6582"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,13.49182,-7.781819)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6585"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,7.650036,-10.34923)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6588"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,2.365814,-8.186195)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.999079,0.000000,0.000000,1.016132,56.82188,9.371753)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6603"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-1.807925,-9.493960)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6606"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.314274,0.000000,0.000000,1.016132,12.05438,11.66070)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6609"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-11.59870,2.312158)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6612"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,21.39156,5.051653)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6618"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,16.09471,2.948843)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6622"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,11.32174,9.047633)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6624"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-5.783488,7.435453)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6626"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.619711,5.306759)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6628"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.088919,7.833409)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6630"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6632"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6634"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6636"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-9.002513,11.93373)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6828"
+ id="radialGradient6834"
+ cx="15.147860"
+ cy="23.822156"
+ fx="15.147860"
+ fy="23.822156"
+ r="12.852140"
+ gradientTransform="matrix(0.654874,0.000000,0.000000,0.398574,2.663540,12.14676)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6840"
+ id="radialGradient6846"
+ cx="32.583473"
+ cy="25.240442"
+ fx="32.583473"
+ fy="25.240442"
+ r="8.4165270"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.503823,-15.00000,6.042836)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6828"
+ id="radialGradient6852"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.654874,0.000000,0.000000,0.398574,44.33646,16.14676)"
+ cx="15.147860"
+ cy="23.822156"
+ fx="15.147860"
+ fy="23.822156"
+ r="12.852140" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6840"
+ id="radialGradient6854"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.000000,0.000000,0.000000,0.503823,62.00000,10.04284)"
+ cx="32.583473"
+ cy="25.240442"
+ fx="32.583473"
+ fy="25.240442"
+ r="8.4165270" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.313708"
+ inkscape:cx="19.667589"
+ inkscape:cy="18.541776"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="1200"
+ inkscape:window-height="704"
+ inkscape:window-x="186"
+ inkscape:window-y="144"
+ inkscape:showpageshadow="false" />
+ <metadata
+ id="metadata1311">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>weather-storm</dc:title>
+ <dc:date>January 2006</dc:date>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Ryan Collier</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title>http://www.tango-project.org</dc:title>
+ </cc:Agent>
+ </dc:publisher>
+ <dc:source>http://www.pseudocode.org</dc:source>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>weather</rdf:li>
+ <rdf:li>applet</rdf:li>
+ <rdf:li>notify</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/publicdomain/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <g
+ id="g12825"
+ transform="translate(-287.0204,244.9995)">
+ <path
+ id="path12827"
+ d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z "
+ style="opacity:1.0000000;fill:#555753;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ id="path12829"
+ d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z "
+ style="opacity:1.0000000;fill:url(#linearGradient13495);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)"
+ d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z"
+ sodipodi:ry="6.7396116"
+ sodipodi:rx="6.7396116"
+ sodipodi:cy="-383.66660"
+ sodipodi:cx="241.80843"
+ id="path12831"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <g
+ id="g12833">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12835"
+ sodipodi:cx="243.95184"
+ sodipodi:cy="-389.30136"
+ sodipodi:rx="6.2313786"
+ sodipodi:ry="6.2313786"
+ d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z"
+ transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.49444440;fill:url(#linearGradient13497);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12837"
+ sodipodi:cx="243.95184"
+ sodipodi:cy="-389.30136"
+ sodipodi:rx="6.2313786"
+ sodipodi:ry="6.2313786"
+ d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z"
+ transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" />
+ </g>
+ <g
+ id="g12839">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12841"
+ sodipodi:cx="251.22179"
+ sodipodi:cy="-385.78790"
+ sodipodi:rx="6.0325046"
+ sodipodi:ry="6.0325046"
+ d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z"
+ transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.49444440;fill:url(#linearGradient13499);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12843"
+ sodipodi:cx="251.22179"
+ sodipodi:cy="-385.78790"
+ sodipodi:rx="6.0325046"
+ sodipodi:ry="6.0325046"
+ d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z"
+ transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" />
+ </g>
+ <g
+ id="g12845">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12847"
+ sodipodi:cx="233.43362"
+ sodipodi:cy="-387.88715"
+ sodipodi:rx="4.3752232"
+ sodipodi:ry="4.3752232"
+ d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z"
+ transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.49444440;fill:url(#linearGradient13501);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12849"
+ sodipodi:cx="233.43362"
+ sodipodi:cy="-387.88715"
+ sodipodi:rx="4.3752232"
+ sodipodi:ry="4.3752232"
+ d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z"
+ transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" />
+ </g>
+ <g
+ id="g12851">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12853"
+ sodipodi:cx="241.80843"
+ sodipodi:cy="-383.66660"
+ sodipodi:rx="6.7396116"
+ sodipodi:ry="6.7396116"
+ d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z"
+ transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.49444440;fill:url(#linearGradient13503);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12855"
+ sodipodi:cx="241.80843"
+ sodipodi:cy="-383.66660"
+ sodipodi:rx="6.7396116"
+ sodipodi:ry="6.7396116"
+ d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z"
+ transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)" />
+ </g>
+ </g>
+ <g
+ id="g11177"
+ transform="translate(208.8564,357.8851)">
+ <path
+ sodipodi:nodetypes="cccccccc"
+ id="path11179"
+ d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z "
+ style="fill:#edd400;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient11189);stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
+ <path
+ sodipodi:nodetypes="cccccccc"
+ id="path11181"
+ d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z "
+ style="opacity:1.0000000;fill:url(#linearGradient11191);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
+ </g>
+ <g
+ id="g12857"
+ transform="translate(-215.0060,252.9994)">
+ <path
+ sodipodi:nodetypes="ccsscsssscsscc"
+ id="path12859"
+ d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z "
+ style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ sodipodi:nodetypes="ccsscsssscsscc"
+ id="path12861"
+ d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z "
+ style="opacity:1.0000000;fill:url(#linearGradient13131);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path12863"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path12865"
+ style="opacity:0.47777775;fill:url(#linearGradient13133);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <rect
+ y="-230.99992"
+ x="236.99994"
+ height="9.0000000"
+ width="20.000000"
+ id="rect12867"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path12869"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path12871"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path12873"
+ style="opacity:0.47777775;fill:url(#linearGradient13135);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path12875"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path12877"
+ style="opacity:0.47777775;fill:url(#linearGradient13137);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ id="path12879"
+ d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z "
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ id="path12881"
+ d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z "
+ style="opacity:0.47777775;fill:url(#linearGradient13139);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path12883"
+ style="opacity:0.47777775;fill:url(#linearGradient13141);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="ccss"
+ id="path12885"
+ d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z "
+ style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
+ <path
+ transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path12887"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path12889"
+ style="opacity:0.47777775;fill:url(#linearGradient13143);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g11183"
+ transform="translate(192.8564,354.8851)">
+ <path
+ sodipodi:nodetypes="cccccccc"
+ id="path11185"
+ d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z "
+ style="fill:#edd400;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient11193);stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
+ <path
+ sodipodi:nodetypes="cccccccc"
+ id="path11187"
+ d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z "
+ style="opacity:1.0000000;fill:url(#linearGradient11195);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
+ </g>
+ <path
+ style="opacity:1.0000000;fill:url(#radialGradient13211);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000004;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ d="M 31.626355,14.999520 C 29.626255,14.999520 27.940775,16.079020 27.095785,17.614460 C 26.500875,17.392550 25.851145,17.261090 25.169835,17.261090 C 22.339625,17.261090 20.052305,19.379260 20.052305,21.978590 C 20.052305,22.432340 20.196835,22.835420 20.327445,23.250720 C 18.945125,24.115990 17.979615,25.504290 17.979615,27.155450 C 17.979615,29.808280 18.631235,32.148800 23.207195,31.961300 C 23.252315,31.959450 40.658675,32.058280 40.907605,31.943270 C 43.992815,32.169220 44.979615,29.497540 44.979615,27.243810 C 44.979615,25.543300 44.142675,24.193960 42.670345,23.366220 C 42.718305,23.107660 42.631785,22.815030 42.631785,22.543970 C 42.631785,19.944650 40.326135,17.826480 37.495915,17.826480 C 37.102425,17.826480 36.763515,17.961300 36.395375,18.038500 C 35.656915,16.270380 33.810365,14.999520 31.626355,14.999520 z "
+ id="path13209"
+ sodipodi:nodetypes="ccsscsscscsscc" />
+ <g
+ id="g12891"
+ transform="translate(-230.0203,248.9834)">
+ <path
+ sodipodi:nodetypes="ccsscsssscsscc"
+ id="path12893"
+ d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z "
+ style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ sodipodi:nodetypes="ccsscsssscsscc"
+ id="path12895"
+ d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z "
+ style="opacity:1.0000000;fill:url(#linearGradient13145);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path12897"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path12899"
+ style="opacity:0.47777775;fill:url(#linearGradient13147);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <rect
+ y="-230.99992"
+ x="236.99994"
+ height="9.0000000"
+ width="20.000000"
+ id="rect12901"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path12903"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path12905"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path12907"
+ style="opacity:0.47777775;fill:url(#linearGradient13149);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path12909"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path12911"
+ style="opacity:0.47777775;fill:url(#linearGradient13151);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ id="path12913"
+ d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z "
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ id="path12915"
+ d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z "
+ style="opacity:0.47777775;fill:url(#linearGradient13153);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path12917"
+ style="opacity:0.47777775;fill:url(#linearGradient13155);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="ccss"
+ id="path12919"
+ d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z "
+ style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
+ <path
+ transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path12921"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path12923"
+ style="opacity:0.47777775;fill:url(#linearGradient13157);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ <path
+ style="opacity:1.0000000;fill:url(#radialGradient13068);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000004;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+ d="M 16.188855,11.000000 C 14.188755,11.000000 12.503275,12.079500 11.658285,13.614940 C 11.063375,13.393030 10.413645,13.261570 9.7323346,13.261570 C 6.9021246,13.261570 4.6148046,15.379740 4.6148046,17.979070 C 4.6148046,18.432820 4.7593346,18.835900 4.8899446,19.251200 C 3.5076246,20.116470 2.5421146,21.504770 2.5421146,23.155930 C 2.5421146,25.808760 3.1937346,28.149280 7.7696946,27.961780 C 7.8148146,27.959930 25.221175,28.058760 25.470105,27.943750 C 28.555315,28.169700 29.542115,25.498020 29.542115,23.244290 C 29.542115,21.543780 28.705175,20.194440 27.232845,19.366700 C 27.280805,19.108140 27.194285,18.815510 27.194285,18.544450 C 27.194285,15.945130 24.888635,13.826960 22.058415,13.826960 C 21.664925,13.826960 21.326015,13.961780 20.957875,14.038980 C 20.219415,12.270860 18.372865,11.000000 16.188855,11.000000 z "
+ id="path11418"
+ sodipodi:nodetypes="ccsscsscscsscc" />
+ </g>
+</svg>
diff --git a/demos/embedded/weatherinfo/icons/weather-sunny-very-few-clouds.svg b/demos/embedded/weatherinfo/icons/weather-sunny-very-few-clouds.svg
new file mode 100644
index 0000000..93b0009
--- /dev/null
+++ b/demos/embedded/weatherinfo/icons/weather-sunny-very-few-clouds.svg
@@ -0,0 +1,593 @@
+<?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="48px"
+ height="48px"
+ id="svg1306"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docbase="/home/garrett/Source/tango-icon-theme/scalable/status"
+ sodipodi:docname="weather-sunny-very-few-clouds.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs1308">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 24 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective27908" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient6724"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient6722"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient6720"
+ gradientUnits="userSpaceOnUse"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient6718"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient6716"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient6714"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient6712"
+ gradientUnits="userSpaceOnUse"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient6839"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6549">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6551" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6553" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient6837"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6527">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6530" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6532" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient6835"
+ gradientUnits="userSpaceOnUse"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6538">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6540" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6542" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient6833"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6513">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6515" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6517" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient6831"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6497">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6499" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6501" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient6829"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6470">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6472" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6474" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient6827"
+ gradientUnits="userSpaceOnUse"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ id="linearGradient4083">
+ <stop
+ id="stop4085"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="0.75"
+ id="stop4089" />
+ <stop
+ id="stop4087"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4032">
+ <stop
+ id="stop4034"
+ offset="0"
+ style="stop-color:#fff7c2;stop-opacity:0.63829786" />
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:0.18348624;"
+ offset="0.59394139"
+ id="stop4036" />
+ <stop
+ id="stop4038"
+ offset="0.83850551"
+ style="stop-color:#fcaf3e;stop-opacity:0.50458717;" />
+ <stop
+ id="stop4040"
+ offset="1"
+ style="stop-color:#fcaf3e;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4026">
+ <stop
+ id="stop4028"
+ offset="0"
+ style="stop-color:#fff9c6;stop-opacity:1" />
+ <stop
+ style="stop-color:#fff28c;stop-opacity:1;"
+ offset="0.54166669"
+ id="stop4042" />
+ <stop
+ id="stop4030"
+ offset="1"
+ style="stop-color:#ffea85;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4026"
+ id="linearGradient3168"
+ gradientUnits="userSpaceOnUse"
+ x1="-28.968945"
+ y1="-25.326815"
+ x2="-37.19698"
+ y2="-9.5590506" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4032"
+ id="radialGradient4020"
+ cx="-33.519073"
+ cy="-22.113297"
+ fx="-33.519073"
+ fy="-22.113297"
+ r="9.5"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.487739,1.292402,-1.10267,0.497242,-41.77393,32.41492)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4083"
+ id="radialGradient4081"
+ cx="23.99999"
+ cy="23.381506"
+ fx="23.99999"
+ fy="23.381506"
+ r="19.141981"
+ gradientTransform="matrix(1.006701,2.235326e-16,-2.23715e-16,1.007522,-0.160816,0.426981)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16.270833"
+ inkscape:cx="24"
+ inkscape:cy="24"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="982"
+ inkscape:window-height="965"
+ inkscape:window-x="1280"
+ inkscape:window-y="28"
+ inkscape:showpageshadow="false" />
+ <metadata
+ id="metadata1311">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>weather-clear</dc:title>
+ <dc:date>January 2006</dc:date>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Ryan Collier (pseudo)</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title>http://www.tango-project.org</dc:title>
+ </cc:Agent>
+ </dc:publisher>
+ <dc:source>http://www.pseudocode.org</dc:source>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>weather</rdf:li>
+ <rdf:li>applet</rdf:li>
+ <rdf:li>notification</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title>Garrett LeSage</dc:title>
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Attribution" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <g
+ id="g3936">
+ <g
+ style="opacity:0.7"
+ id="g4091">
+ <path
+ style="fill:#fce94f;fill-opacity:1;stroke:#fcaf3e;stroke-width:0.73732895;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 24 2.5 L 21.625 9.1875 C 22.399034 9.0641318 23.191406 9 24 9 C 24.808594 9 25.600966 9.0641317 26.375 9.1875 L 24 2.5 z M 8.8125 8.78125 L 11.84375 15.21875 C 12.779034 13.928569 13.928569 12.779034 15.21875 11.84375 L 8.8125 8.78125 z M 39.21875 8.78125 L 32.78125 11.84375 C 34.071431 12.779034 35.220966 13.928569 36.15625 15.21875 L 39.21875 8.78125 z M 9.1875 21.59375 L 2.5 23.96875 L 9.1875 26.34375 C 9.0673373 25.57952 9 24.797813 9 24 C 9 23.180625 9.0608858 22.377571 9.1875 21.59375 z M 38.8125 21.625 C 38.935868 22.399034 39 23.191406 39 24 C 39 24.808594 38.935868 25.600966 38.8125 26.375 L 45.5 24 L 38.8125 21.625 z M 11.84375 32.78125 L 8.8125 39.1875 L 15.21875 36.15625 C 13.928569 35.220966 12.779034 34.071431 11.84375 32.78125 z M 36.15625 32.78125 C 35.229789 34.05926 34.087617 35.194799 32.8125 36.125 L 39.21875 39.1875 L 36.15625 32.78125 z M 21.625 38.8125 L 24 45.5 L 26.375 38.8125 C 25.600966 38.935868 24.808594 39 24 39 C 23.191406 39 22.399034 38.935868 21.625 38.8125 z "
+ id="path7492" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:url(#radialGradient4081);stroke-width:0.84646249;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 24 5.25 L 22.65625 9.0625 C 23.098888 9.0231486 23.547187 9 24 9 C 24.452813 9 24.901112 9.0231486 25.34375 9.0625 L 24 5.25 z M 10.78125 10.75 L 12.5 14.375 C 13.071538 13.694089 13.724004 13.038745 14.40625 12.46875 L 10.78125 10.75 z M 37.25 10.75 L 33.625 12.46875 C 34.304675 13.038189 34.961811 13.695325 35.53125 14.375 L 37.25 10.75 z M 9.0625 22.625 L 5.28125 23.96875 L 9.0625 25.3125 C 9.024981 24.880146 9 24.442031 9 24 C 9 23.536406 9.0212735 23.077908 9.0625 22.625 z M 38.9375 22.65625 C 38.976851 23.098888 39 23.547187 39 24 C 39 24.452813 38.976851 24.901112 38.9375 25.34375 L 42.71875 24 L 38.9375 22.65625 z M 35.53125 33.59375 C 34.958293 34.27954 34.309985 34.957363 33.625 35.53125 L 37.25 37.25 L 35.53125 33.59375 z M 12.5 33.625 L 10.78125 37.21875 L 14.375 35.5 C 13.702932 34.935884 13.064116 34.297068 12.5 33.625 z M 22.65625 38.9375 L 24 42.71875 L 25.34375 38.9375 C 24.901112 38.976851 24.452813 39 24 39 C 23.547187 39 23.098888 38.976851 22.65625 38.9375 z "
+ id="path7494" />
+ </g>
+ <g
+ id="g4046">
+ <g
+ id="g3931">
+ <path
+ inkscape:r_cy="true"
+ inkscape:r_cx="true"
+ transform="matrix(0.778062,-1.061285,1.061287,0.778062,67.47952,3.641324)"
+ d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z"
+ sodipodi:ry="9.5"
+ sodipodi:rx="9.5"
+ sodipodi:cy="-17.5"
+ sodipodi:cx="-32"
+ id="path7498"
+ style="fill:#ffee54;fill-opacity:1;stroke:#fcaf3e;stroke-width:0.75991178;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ inkscape:r_cy="true"
+ inkscape:r_cx="true"
+ transform="matrix(1.244257,-0.167707,0.216642,1.251844,67.61648,40.527)"
+ d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z"
+ sodipodi:ry="9.5"
+ sodipodi:rx="9.5"
+ sodipodi:cy="-17.5"
+ sodipodi:cx="-32"
+ id="path7500"
+ style="fill:url(#radialGradient4020);fill-opacity:1;stroke:none;stroke-width:1.01737845;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ inkscape:r_cy="true"
+ inkscape:r_cx="true"
+ transform="matrix(0.715791,-0.976349,0.97635,0.715792,64.00044,5.269544)"
+ d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z"
+ sodipodi:ry="9.5"
+ sodipodi:rx="9.5"
+ sodipodi:cy="-17.5"
+ sodipodi:cx="-32"
+ id="path7502"
+ style="fill:none;fill-opacity:1;stroke:url(#linearGradient3168);stroke-width:0.82601947;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ </g>
+ <g
+ id="g6783"
+ transform="translate(-263.99,459.9855)">
+ <path
+ sodipodi:nodetypes="ccsscsssscsscc"
+ id="path6785"
+ d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z "
+ style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ sodipodi:nodetypes="ccsscsssscsscc"
+ id="path6787"
+ d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z "
+ style="opacity:1.0000000;fill:url(#linearGradient6827);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <g
+ id="g6789">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path6791"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:url(#linearGradient6829);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path6793"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" />
+ </g>
+ <rect
+ y="-438.00000"
+ x="271.00000"
+ height="9.0000000"
+ width="20.000000"
+ id="rect6795"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+ <path
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path6797"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <g
+ id="g6799">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path6801"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:url(#linearGradient6831);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path6803"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" />
+ </g>
+ <g
+ id="g6805">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path6807"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:url(#linearGradient6833);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path6809"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" />
+ </g>
+ <g
+ transform="translate(-1.000000,0.000000)"
+ id="g6811">
+ <path
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z "
+ id="path6813" />
+ <path
+ style="opacity:1.0000000;fill:url(#linearGradient6835);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z "
+ id="path6815" />
+ </g>
+ <path
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ sodipodi:ry="3.3125000"
+ sodipodi:rx="3.3125000"
+ sodipodi:cy="-437.59375"
+ sodipodi:cx="288.37500"
+ id="path6817"
+ style="opacity:1.0000000;fill:url(#linearGradient6837);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="ccss"
+ id="path6819"
+ d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z "
+ style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
+ <g
+ transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"
+ id="g6821">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path6823"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:url(#linearGradient6839);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path6825"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/demos/embedded/weatherinfo/icons/weather-sunny.svg b/demos/embedded/weatherinfo/icons/weather-sunny.svg
new file mode 100644
index 0000000..0360ac7
--- /dev/null
+++ b/demos/embedded/weatherinfo/icons/weather-sunny.svg
@@ -0,0 +1,1330 @@
+<?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="48px"
+ height="48px"
+ id="svg1306"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docbase="/home/garrett/Source/tango-icon-theme/scalable/status"
+ sodipodi:docname="weather-sunny.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs1308">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 24 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective37214" />
+ <linearGradient
+ id="linearGradient4083">
+ <stop
+ id="stop4085"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="0.75"
+ id="stop4089" />
+ <stop
+ id="stop4087"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4032">
+ <stop
+ id="stop4034"
+ offset="0"
+ style="stop-color:#fff7c2;stop-opacity:0.63829786" />
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:0.18348624;"
+ offset="0.59394139"
+ id="stop4036" />
+ <stop
+ id="stop4038"
+ offset="0.83850551"
+ style="stop-color:#fcaf3e;stop-opacity:0.50458717;" />
+ <stop
+ id="stop4040"
+ offset="1"
+ style="stop-color:#fcaf3e;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4026">
+ <stop
+ id="stop4028"
+ offset="0"
+ style="stop-color:#fff9c6;stop-opacity:1" />
+ <stop
+ style="stop-color:#fff28c;stop-opacity:1;"
+ offset="0.54166669"
+ id="stop4042" />
+ <stop
+ id="stop4030"
+ offset="1"
+ style="stop-color:#ffea85;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2298"
+ id="linearGradient7748"
+ gradientUnits="userSpaceOnUse"
+ x1="-27.006643"
+ y1="-37.550461"
+ x2="-34.700153"
+ y2="-4.4493785" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2527"
+ id="linearGradient7746"
+ gradientUnits="userSpaceOnUse"
+ x1="-25.137094"
+ y1="-1.2491118"
+ x2="-35.652866"
+ y2="-24.884460" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3478"
+ id="linearGradient7744"
+ gradientUnits="userSpaceOnUse"
+ x1="11.149398"
+ y1="-43.997444"
+ x2="4.9625983"
+ y2="-8.3080902" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4829">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop4831" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop4833" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3478">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3480" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3482" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2298">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2300" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2302" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3347">
+ <stop
+ style="stop-color:#edd400;stop-opacity:1;"
+ offset="0"
+ id="stop3349" />
+ <stop
+ style="stop-color:#edd400;stop-opacity:0;"
+ offset="1"
+ id="stop3351" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2527">
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:0;"
+ offset="0"
+ id="stop2529" />
+ <stop
+ id="stop4022"
+ offset="0.66644967"
+ style="stop-color:#fcaf3e;stop-opacity:0.17431192;" />
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:0.55963302;"
+ offset="0.86458337"
+ id="stop4024" />
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:1;"
+ offset="1"
+ id="stop2531" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2500">
+ <stop
+ style="stop-color:#fce94f;stop-opacity:1;"
+ offset="0"
+ id="stop2502" />
+ <stop
+ style="stop-color:#fce94f;stop-opacity:0;"
+ offset="1"
+ id="stop2504" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2392">
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1;"
+ offset="0"
+ id="stop2394" />
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:0;"
+ offset="1"
+ id="stop2396" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2254">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2256" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2258" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2263"
+ gradientUnits="userSpaceOnUse"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581"
+ gradientTransform="translate(-1.608757,3.097272)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2267"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.555020,0.968578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2271"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(9.263651,3.495228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2275"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(8.497184,-2.330824)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2279"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(14.46340,2.014073)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2283"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2287"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2291"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2295"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2299"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2303"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1.707748,-5.784024)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2311"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2350"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(16.14002,24.66420)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2352"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.932144,25.87240)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2354"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.356636,23.86870)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2356"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(11.19027,26.52035)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2358"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(10.30638,19.27251)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2360"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2362"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2364"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2366"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(4.207586,21.30544)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2372"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2392"
+ id="linearGradient2398"
+ x1="6.6651416"
+ y1="13.802798"
+ x2="41.403877"
+ y2="13.802798"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2426"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(14.46340,2.014073)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2428"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(8.497184,-2.330824)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2430"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1.608757,3.097272)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2432"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.555020,0.968578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2434"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(9.263651,3.495228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2436"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2438"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2440"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2442"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2444"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2446"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2392"
+ id="linearGradient2448"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
+ x1="6.6651416"
+ y1="13.802798"
+ x2="41.403877"
+ y2="13.802798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2392"
+ id="linearGradient2451"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
+ x1="6.6651416"
+ y1="13.802798"
+ x2="41.403877"
+ y2="13.802798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2457"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2460"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2463"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2469"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2472"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(12.51365,8.745228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2475"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(6.805020,6.218578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2478"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1.641243,8.347272)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2483"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0.842481,-3.998086)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2506"
+ x1="37.000000"
+ y1="-21.750000"
+ x2="53.750000"
+ y2="9.0000000"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2509"
+ gradientUnits="userSpaceOnUse"
+ x1="37.000000"
+ y1="-21.750000"
+ x2="53.750000"
+ y2="9.0000000"
+ gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2513"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
+ x1="38.857941"
+ y1="-18.407482"
+ x2="53.750000"
+ y2="9.0000000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2517"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
+ x1="37.000000"
+ y1="-21.750000"
+ x2="53.750000"
+ y2="9.0000000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2527"
+ id="linearGradient2533"
+ x1="-25.137094"
+ y1="-1.2491118"
+ x2="-35.652866"
+ y2="-24.884460"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2537"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(17.33814,3.415985)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2541"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(13.40064,1.353485)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2555"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-7.499805,1.708617)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2563"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.726830,2.481141)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3353"
+ x1="23.303862"
+ y1="29.115711"
+ x2="29.750000"
+ y2="46.092930"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3366"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(13.40064,1.353485)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1.641243,8.347272)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(6.805020,6.218578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3372"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(12.51365,8.745228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3374"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3376"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3383"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3386"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3389"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3392"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3395"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.674812,3.088370)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3398"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.033818,0.561720)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3401"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-7.197595,2.690414)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3405"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(4.561802,-4.303373)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient1514"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(88.49344,-9.697877)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient1516"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient1518"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2527"
+ id="linearGradient1520"
+ gradientUnits="userSpaceOnUse"
+ x1="-25.137094"
+ y1="-1.2491118"
+ x2="-35.652866"
+ y2="-24.884460" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient1522"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-7.197595,2.690414)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient1524"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.033818,0.561720)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient1526"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.674812,3.088370)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient1528"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient1530"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient1532"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient1534"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient1536"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient1538"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(57.97693,-10.56876)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2527"
+ id="linearGradient1557"
+ gradientUnits="userSpaceOnUse"
+ x1="-25.137094"
+ y1="-1.2491118"
+ x2="-35.652866"
+ y2="-24.884460" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4829"
+ id="radialGradient4835"
+ cx="-35.001785"
+ cy="-1.1439217"
+ fx="-35.001785"
+ fy="-1.1439217"
+ r="17.500893"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.565657,-5.564992e-15,-0.496855)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2298"
+ id="linearGradient1427"
+ gradientUnits="userSpaceOnUse"
+ x1="-27.006643"
+ y1="-37.550461"
+ x2="-34.700153"
+ y2="-4.4493785" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3478"
+ id="linearGradient1431"
+ gradientUnits="userSpaceOnUse"
+ x1="11.149398"
+ y1="-43.997444"
+ x2="4.9625983"
+ y2="-8.3080902" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3478"
+ id="linearGradient14128"
+ gradientUnits="userSpaceOnUse"
+ x1="11.149398"
+ y1="-43.997444"
+ x2="4.9625983"
+ y2="-8.3080902" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2527"
+ id="linearGradient14130"
+ gradientUnits="userSpaceOnUse"
+ x1="-25.137094"
+ y1="-1.2491118"
+ x2="-35.652866"
+ y2="-24.884460" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2298"
+ id="linearGradient14132"
+ gradientUnits="userSpaceOnUse"
+ x1="-27.006643"
+ y1="-37.550461"
+ x2="-34.700153"
+ y2="-4.4493785" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2527"
+ id="linearGradient3151"
+ gradientUnits="userSpaceOnUse"
+ x1="-25.137094"
+ y1="-1.2491118"
+ x2="-35.652866"
+ y2="-24.884460" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2298"
+ id="linearGradient3153"
+ gradientUnits="userSpaceOnUse"
+ x1="-27.006643"
+ y1="-37.550461"
+ x2="-34.700153"
+ y2="-4.4493785" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3478"
+ id="linearGradient3155"
+ gradientUnits="userSpaceOnUse"
+ x1="11.149398"
+ y1="-43.997444"
+ x2="4.9625983"
+ y2="-8.3080902" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3478"
+ id="linearGradient3161"
+ gradientUnits="userSpaceOnUse"
+ x1="11.149398"
+ y1="-43.997444"
+ x2="4.9625983"
+ y2="-8.3080902" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4026"
+ id="linearGradient3168"
+ gradientUnits="userSpaceOnUse"
+ x1="-28.968945"
+ y1="-25.326815"
+ x2="-37.19698"
+ y2="-9.5590506" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4032"
+ id="radialGradient4020"
+ cx="-33.519073"
+ cy="-22.113297"
+ fx="-33.519073"
+ fy="-22.113297"
+ r="9.5"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.487739,1.292402,-1.10267,0.497242,-41.77393,32.41492)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3478"
+ id="linearGradient4057"
+ gradientUnits="userSpaceOnUse"
+ x1="11.149398"
+ y1="-43.997444"
+ x2="4.9625983"
+ y2="-8.3080902" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4083"
+ id="radialGradient4081"
+ cx="23.99999"
+ cy="23.381506"
+ fx="23.99999"
+ fy="23.381506"
+ r="19.141981"
+ gradientTransform="matrix(1.006701,2.235326e-16,-2.23715e-16,1.007522,-0.160816,0.426981)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="10.54135"
+ inkscape:cx="23.386176"
+ inkscape:cy="24.950603"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="1013"
+ inkscape:window-height="965"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:showpageshadow="false" />
+ <metadata
+ id="metadata1311">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>weather-clear</dc:title>
+ <dc:date>January 2006</dc:date>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Ryan Collier (pseudo)</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title>http://www.tango-project.org</dc:title>
+ </cc:Agent>
+ </dc:publisher>
+ <dc:source>http://www.pseudocode.org</dc:source>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>weather</rdf:li>
+ <rdf:li>applet</rdf:li>
+ <rdf:li>notification</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title>Garrett LeSage</dc:title>
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Attribution" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <g
+ id="g3936">
+ <g
+ style="opacity:0.7"
+ id="g4091">
+ <path
+ style="fill:#fce94f;fill-opacity:1;stroke:#fcaf3e;stroke-width:0.73732895;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 24 2.5 L 21.625 9.1875 C 22.399034 9.0641318 23.191406 9 24 9 C 24.808594 9 25.600966 9.0641317 26.375 9.1875 L 24 2.5 z M 8.8125 8.78125 L 11.84375 15.21875 C 12.779034 13.928569 13.928569 12.779034 15.21875 11.84375 L 8.8125 8.78125 z M 39.21875 8.78125 L 32.78125 11.84375 C 34.071431 12.779034 35.220966 13.928569 36.15625 15.21875 L 39.21875 8.78125 z M 9.1875 21.59375 L 2.5 23.96875 L 9.1875 26.34375 C 9.0673373 25.57952 9 24.797813 9 24 C 9 23.180625 9.0608858 22.377571 9.1875 21.59375 z M 38.8125 21.625 C 38.935868 22.399034 39 23.191406 39 24 C 39 24.808594 38.935868 25.600966 38.8125 26.375 L 45.5 24 L 38.8125 21.625 z M 11.84375 32.78125 L 8.8125 39.1875 L 15.21875 36.15625 C 13.928569 35.220966 12.779034 34.071431 11.84375 32.78125 z M 36.15625 32.78125 C 35.229789 34.05926 34.087617 35.194799 32.8125 36.125 L 39.21875 39.1875 L 36.15625 32.78125 z M 21.625 38.8125 L 24 45.5 L 26.375 38.8125 C 25.600966 38.935868 24.808594 39 24 39 C 23.191406 39 22.399034 38.935868 21.625 38.8125 z "
+ id="path7492" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:url(#radialGradient4081);stroke-width:0.84646249;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 24 5.25 L 22.65625 9.0625 C 23.098888 9.0231486 23.547187 9 24 9 C 24.452813 9 24.901112 9.0231486 25.34375 9.0625 L 24 5.25 z M 10.78125 10.75 L 12.5 14.375 C 13.071538 13.694089 13.724004 13.038745 14.40625 12.46875 L 10.78125 10.75 z M 37.25 10.75 L 33.625 12.46875 C 34.304675 13.038189 34.961811 13.695325 35.53125 14.375 L 37.25 10.75 z M 9.0625 22.625 L 5.28125 23.96875 L 9.0625 25.3125 C 9.024981 24.880146 9 24.442031 9 24 C 9 23.536406 9.0212735 23.077908 9.0625 22.625 z M 38.9375 22.65625 C 38.976851 23.098888 39 23.547187 39 24 C 39 24.452813 38.976851 24.901112 38.9375 25.34375 L 42.71875 24 L 38.9375 22.65625 z M 35.53125 33.59375 C 34.958293 34.27954 34.309985 34.957363 33.625 35.53125 L 37.25 37.25 L 35.53125 33.59375 z M 12.5 33.625 L 10.78125 37.21875 L 14.375 35.5 C 13.702932 34.935884 13.064116 34.297068 12.5 33.625 z M 22.65625 38.9375 L 24 42.71875 L 25.34375 38.9375 C 24.901112 38.976851 24.452813 39 24 39 C 23.547187 39 23.098888 38.976851 22.65625 38.9375 z "
+ id="path7494" />
+ </g>
+ <g
+ id="g4046">
+ <g
+ id="g3931">
+ <path
+ inkscape:r_cy="true"
+ inkscape:r_cx="true"
+ transform="matrix(0.778062,-1.061285,1.061287,0.778062,67.47952,3.641324)"
+ d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z"
+ sodipodi:ry="9.5"
+ sodipodi:rx="9.5"
+ sodipodi:cy="-17.5"
+ sodipodi:cx="-32"
+ id="path7498"
+ style="fill:#ffee54;fill-opacity:1;stroke:#fcaf3e;stroke-width:0.75991178;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ inkscape:r_cy="true"
+ inkscape:r_cx="true"
+ transform="matrix(1.244257,-0.167707,0.216642,1.251844,67.61648,40.527)"
+ d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z"
+ sodipodi:ry="9.5"
+ sodipodi:rx="9.5"
+ sodipodi:cy="-17.5"
+ sodipodi:cx="-32"
+ id="path7500"
+ style="fill:url(#radialGradient4020);fill-opacity:1;stroke:none;stroke-width:1.01737845;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ inkscape:r_cy="true"
+ inkscape:r_cx="true"
+ transform="matrix(0.715791,-0.976349,0.97635,0.715792,64.00044,5.269544)"
+ d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z"
+ sodipodi:ry="9.5"
+ sodipodi:rx="9.5"
+ sodipodi:cy="-17.5"
+ sodipodi:cx="-32"
+ id="path7502"
+ style="fill:none;fill-opacity:1;stroke:url(#linearGradient3168);stroke-width:0.82601947;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/demos/embedded/weatherinfo/icons/weather-thundershower.svg b/demos/embedded/weatherinfo/icons/weather-thundershower.svg
new file mode 100644
index 0000000..406abfa
--- /dev/null
+++ b/demos/embedded/weatherinfo/icons/weather-thundershower.svg
@@ -0,0 +1,4587 @@
+<?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="48px"
+ height="48px"
+ id="svg1306"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docbase="/home/rcollier/Work/Novell/Tango/weather"
+ sodipodi:docname="weather-thundershower.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs1308">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5358"
+ id="linearGradient12225"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
+ x1="6.8942904"
+ y1="-359.82382"
+ x2="27.400387"
+ y2="-381.30222" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5346"
+ id="radialGradient12223"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
+ cx="21.920311"
+ cy="-382.96454"
+ fx="21.920311"
+ fy="-382.96454"
+ r="21.743534" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5358"
+ id="linearGradient12213"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
+ x1="6.8942904"
+ y1="-359.82382"
+ x2="27.400387"
+ y2="-381.30222" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5346"
+ id="radialGradient12211"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
+ cx="21.920311"
+ cy="-382.96454"
+ fx="21.920311"
+ fy="-382.96454"
+ r="21.743534" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5358"
+ id="linearGradient12253"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
+ x1="6.8942904"
+ y1="-359.82382"
+ x2="27.400387"
+ y2="-381.30222" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5346"
+ id="radialGradient12251"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
+ cx="21.920311"
+ cy="-382.96454"
+ fx="21.920311"
+ fy="-382.96454"
+ r="21.743534" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5358"
+ id="linearGradient12249"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
+ x1="6.8942904"
+ y1="-359.82382"
+ x2="27.400387"
+ y2="-381.30222" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5346"
+ id="radialGradient12247"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
+ cx="21.920311"
+ cy="-382.96454"
+ fx="21.920311"
+ fy="-382.96454"
+ r="21.743534" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5358"
+ id="linearGradient12201"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
+ x1="6.8942904"
+ y1="-359.82382"
+ x2="27.400387"
+ y2="-381.30222" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5346"
+ id="radialGradient12199"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
+ cx="21.920311"
+ cy="-382.96454"
+ fx="21.920311"
+ fy="-382.96454"
+ r="21.743534" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5358">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5360" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop5362" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5358"
+ id="linearGradient12237"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
+ x1="6.8942904"
+ y1="-359.82382"
+ x2="27.400387"
+ y2="-381.30222" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5346">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5348" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop5350" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5346"
+ id="radialGradient12235"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
+ cx="21.920311"
+ cy="-382.96454"
+ fx="21.920311"
+ fy="-382.96454"
+ r="21.743534" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 24 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective22454" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8397">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8400" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8402" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8397"
+ id="linearGradient13503"
+ gradientUnits="userSpaceOnUse"
+ x1="238.00478"
+ y1="-388.47476"
+ x2="245.65462"
+ y2="-382.64539" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8315">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8317" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8319" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8315"
+ id="linearGradient13501"
+ gradientUnits="userSpaceOnUse"
+ x1="230.87598"
+ y1="-390.43951"
+ x2="235.25652"
+ y2="-386.95901" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8381">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8383" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8385" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8381"
+ id="linearGradient13499"
+ gradientUnits="userSpaceOnUse"
+ x1="246.74042"
+ y1="-391.31381"
+ x2="252.69785"
+ y2="-385.35165" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8331">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8333" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8335" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8331"
+ id="linearGradient13497"
+ gradientUnits="userSpaceOnUse"
+ x1="240.07379"
+ y1="-393.40720"
+ x2="245.82706"
+ y2="-388.55029" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8302">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8304" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8306" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8302"
+ id="linearGradient13495"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(69.00000,155.0000)"
+ x1="228.50261"
+ y1="-392.30591"
+ x2="266.36395"
+ y2="-379.26862" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient13143"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient13141"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient13139"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-35.00007,207.0001)"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient13137"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient13135"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient13133"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient13131"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-34.00007,207.0001)"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8874"
+ id="linearGradient11195"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(14.15871,7.082841)"
+ x1="-190.47688"
+ y1="-332.51181"
+ x2="-196.19046"
+ y2="-328.53433" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8904"
+ id="linearGradient11193"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(13.80516,2.840199)"
+ x1="-191.28896"
+ y1="-328.07861"
+ x2="-192.41396"
+ y2="-315.32861" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8874">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8876" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8878" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8874"
+ id="linearGradient11191"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(14.15871,7.082841)"
+ x1="-190.47688"
+ y1="-332.51181"
+ x2="-196.19046"
+ y2="-328.53433" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8904">
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:1;"
+ offset="0"
+ id="stop8906" />
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:0;"
+ offset="1"
+ id="stop8908" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8904"
+ id="linearGradient11189"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(13.80516,2.840199)"
+ x1="-191.28896"
+ y1="-328.07861"
+ x2="-192.41396"
+ y2="-315.32861" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5123"
+ id="radialGradient13211"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,245.3644,184.9256)"
+ cx="-229.75000"
+ cy="-343.95554"
+ fx="-229.75000"
+ fy="-343.95554"
+ r="14.501380" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient13157"
+ gradientUnits="userSpaceOnUse"
+ x1="284.80219"
+ y1="-441.23294"
+ x2="288.89954"
+ y2="-436.83109" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6549">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6551" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6553" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6549"
+ id="linearGradient13155"
+ gradientUnits="userSpaceOnUse"
+ x1="286.66589"
+ y1="-439.48358"
+ x2="289.76562"
+ y2="-436.70703" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6527">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6530" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6532" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6527"
+ id="linearGradient13153"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-35.00007,207.0001)"
+ x1="275.94193"
+ y1="-437.10501"
+ x2="279.97546"
+ y2="-431.91833" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6538">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6540" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6542" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6538"
+ id="linearGradient13151"
+ gradientUnits="userSpaceOnUse"
+ x1="285.94086"
+ y1="-439.93900"
+ x2="289.39124"
+ y2="-436.44290" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6513">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6515" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6517" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6513"
+ id="linearGradient13149"
+ gradientUnits="userSpaceOnUse"
+ x1="286.51172"
+ y1="-441.29074"
+ x2="289.85379"
+ y2="-436.14453" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6497">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6499" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6501" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6497"
+ id="linearGradient13147"
+ gradientUnits="userSpaceOnUse"
+ x1="287.51730"
+ y1="-439.75281"
+ x2="289.67633"
+ y2="-436.32199" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6470">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6472" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6474" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6470"
+ id="linearGradient13145"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-34.00007,207.0001)"
+ x1="271.02170"
+ y1="-441.05182"
+ x2="285.02859"
+ y2="-431.96991" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5123">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5125" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop5127" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5123"
+ id="radialGradient13068"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,229.9269,180.9261)"
+ cx="-229.75000"
+ cy="-343.95554"
+ fx="-229.75000"
+ fy="-343.95554"
+ r="14.501380" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6840">
+ <stop
+ style="stop-color:#ad7fa8;stop-opacity:1;"
+ offset="0"
+ id="stop6842" />
+ <stop
+ style="stop-color:#ad7fa8;stop-opacity:0;"
+ offset="1"
+ id="stop6844" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6828">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6830" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6832" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6537">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6539" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6541" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2298">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2300" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2302" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3347">
+ <stop
+ style="stop-color:#edd400;stop-opacity:1;"
+ offset="0"
+ id="stop3349" />
+ <stop
+ style="stop-color:#edd400;stop-opacity:0;"
+ offset="1"
+ id="stop3351" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2527">
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:1;"
+ offset="0"
+ id="stop2529" />
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:0;"
+ offset="1"
+ id="stop2531" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2500">
+ <stop
+ style="stop-color:#fce94f;stop-opacity:1;"
+ offset="0"
+ id="stop2502" />
+ <stop
+ style="stop-color:#fce94f;stop-opacity:0;"
+ offset="1"
+ id="stop2504" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2392">
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1;"
+ offset="0"
+ id="stop2394" />
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:0;"
+ offset="1"
+ id="stop2396" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2254">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2256" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2258" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2263"
+ gradientUnits="userSpaceOnUse"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581"
+ gradientTransform="translate(-1.608757,3.097272)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2267"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.555020,0.968578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2271"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(9.263651,3.495228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2275"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(8.497184,-2.330824)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2279"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(14.46340,2.014073)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2283"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2287"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2291"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2295"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2299"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2303"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1.707748,-5.784024)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2311"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2350"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(16.14002,24.66420)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2352"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.932144,25.87240)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2354"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.356636,23.86870)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2356"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(11.19027,26.52035)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2358"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(10.30638,19.27251)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2360"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2362"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2364"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2366"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(4.207586,21.30544)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2372"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2392"
+ id="linearGradient2398"
+ x1="6.6651416"
+ y1="13.802798"
+ x2="41.403877"
+ y2="13.802798"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2426"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(14.46340,2.014073)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2428"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(8.497184,-2.330824)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2430"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1.608757,3.097272)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2432"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.555020,0.968578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2434"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(9.263651,3.495228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2436"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2438"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2440"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2442"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2444"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2446"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2392"
+ id="linearGradient2448"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
+ x1="6.6651416"
+ y1="13.802798"
+ x2="41.403877"
+ y2="13.802798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2392"
+ id="linearGradient2451"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
+ x1="6.6651416"
+ y1="13.802798"
+ x2="41.403877"
+ y2="13.802798" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2457"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2460"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2463"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2469"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2472"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(12.51365,8.745228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2475"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(6.805020,6.218578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2478"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1.641243,8.347272)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2483"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0.842481,-3.998086)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2506"
+ x1="37.000000"
+ y1="-21.750000"
+ x2="53.750000"
+ y2="9.0000000"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2509"
+ gradientUnits="userSpaceOnUse"
+ x1="37.000000"
+ y1="-21.750000"
+ x2="53.750000"
+ y2="9.0000000"
+ gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2513"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
+ x1="38.857941"
+ y1="-18.407482"
+ x2="53.750000"
+ y2="9.0000000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2500"
+ id="linearGradient2517"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
+ x1="37.000000"
+ y1="-21.750000"
+ x2="53.750000"
+ y2="9.0000000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2527"
+ id="linearGradient2533"
+ x1="-25.137094"
+ y1="-1.2491118"
+ x2="-35.652866"
+ y2="-24.884460"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2537"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(17.33814,3.415985)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2541"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(13.40064,1.353485)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2555"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-7.499805,1.708617)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient2563"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.726830,2.481141)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3347"
+ id="linearGradient3353"
+ x1="23.303862"
+ y1="29.115711"
+ x2="29.750000"
+ y2="46.092930"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3366"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(13.40064,1.353485)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1.641243,8.347272)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(6.805020,6.218578)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3372"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(12.51365,8.745228)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3374"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3376"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3383"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3386"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3389"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3392"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3395"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.674812,3.088370)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3398"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.033818,0.561720)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3401"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-7.197595,2.690414)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient3405"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(4.561802,-4.303373)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="-4.4493785"
+ x2="-34.700153"
+ y1="-37.550461"
+ x1="-27.006643"
+ id="linearGradient2916"
+ xlink:href="#linearGradient2298"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2914"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(57.97693,-10.56876)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2912"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2910"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2908"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2906"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2904"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2902"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.674812,3.088370)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2900"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-2.033818,0.561720)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2898"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.197595,2.690414)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2896"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2894"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2892"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2890"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(88.49344,-9.697877)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2888"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(4.561802,-4.303373)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2886"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.197595,2.690414)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2884"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-2.033818,0.561720)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2882"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.674812,3.088370)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2880"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2878"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2876"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2874"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2872"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2870"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2868"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2866"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2864"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(12.51365,8.745228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2862"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(6.805020,6.218578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2860"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.641243,8.347272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2858"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(13.40064,1.353485)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2856"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="46.092930"
+ x2="29.750000"
+ y1="29.115711"
+ x1="23.303862"
+ id="linearGradient2854"
+ xlink:href="#linearGradient3347"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-0.726830,2.481141)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2852"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.499805,1.708617)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2850"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(13.40064,1.353485)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2848"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(17.33814,3.415985)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2846"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ id="linearGradient2844"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2842"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-18.407482"
+ x1="38.857941"
+ gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2840"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)"
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2838"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ id="linearGradient2836"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(0.842481,-3.998086)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2834"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.641243,8.347272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2832"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(6.805020,6.218578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2830"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(12.51365,8.745228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2828"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2826"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2824"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2822"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2820"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2818"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2816"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2814"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2812"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2810"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2808"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2806"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2804"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(9.263651,3.495228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2802"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.555020,0.968578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2800"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-1.608757,3.097272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2798"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(8.497184,-2.330824)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2796"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(14.46340,2.014073)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2794"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
+ gradientUnits="userSpaceOnUse"
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ id="linearGradient2792"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2790"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(4.207586,21.30544)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2788"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2786"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2784"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2782"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2780"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2778"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(10.30638,19.27251)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2776"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(11.19027,26.52035)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2774"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(5.356636,23.86870)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2772"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-0.932144,25.87240)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2770"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(16.14002,24.66420)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2768"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2766"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.707748,-5.784024)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2764"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2762"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2760"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2758"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2756"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2754"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(14.46340,2.014073)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2752"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(8.497184,-2.330824)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2750"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(9.263651,3.495228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2748"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.555020,0.968578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2746"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(-1.608757,3.097272)"
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2744"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="-4.4493785"
+ x2="-34.700153"
+ y1="-37.550461"
+ x1="-27.006643"
+ id="linearGradient2304"
+ xlink:href="#linearGradient2298"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1557"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(57.97693,-10.56876)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1538"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1536"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1534"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1532"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1530"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1528"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.674812,3.088370)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1526"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-2.033818,0.561720)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1524"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.197595,2.690414)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1522"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1520"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1518"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1516"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(88.49344,-9.697877)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1514"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(4.561802,-4.303373)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5957"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.197595,2.690414)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5955"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-2.033818,0.561720)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5953"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.674812,3.088370)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5951"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5949"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5947"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5945"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5943"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5941"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5939"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5937"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5935"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(12.51365,8.745228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5933"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(6.805020,6.218578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5931"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.641243,8.347272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5929"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(13.40064,1.353485)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5927"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="46.092930"
+ x2="29.750000"
+ y1="29.115711"
+ x1="23.303862"
+ id="linearGradient5925"
+ xlink:href="#linearGradient3347"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-0.726830,2.481141)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5923"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-7.499805,1.708617)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5921"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(13.40064,1.353485)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5919"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(17.33814,3.415985)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5917"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="-24.884460"
+ x2="-35.652866"
+ y1="-1.2491118"
+ x1="-25.137094"
+ id="linearGradient5915"
+ xlink:href="#linearGradient2527"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5913"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-18.407482"
+ x1="38.857941"
+ gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5911"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)"
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5909"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="9.0000000"
+ x2="53.750000"
+ y1="-21.750000"
+ x1="37.000000"
+ id="linearGradient5907"
+ xlink:href="#linearGradient2500"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(0.842481,-3.998086)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5905"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.641243,8.347272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5903"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(6.805020,6.218578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5901"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(12.51365,8.745228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5899"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5897"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5895"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5893"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5891"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5889"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5887"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5885"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5883"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5881"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5879"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5877"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5875"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(9.263651,3.495228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5873"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.555020,0.968578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5871"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-1.608757,3.097272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5869"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(8.497184,-2.330824)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5867"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(14.46340,2.014073)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5865"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)"
+ gradientUnits="userSpaceOnUse"
+ y2="13.802798"
+ x2="41.403877"
+ y1="13.802798"
+ x1="6.6651416"
+ id="linearGradient5863"
+ xlink:href="#linearGradient2392"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5861"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(4.207586,21.30544)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5859"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5857"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5855"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5853"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5851"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5849"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(10.30638,19.27251)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5847"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(11.19027,26.52035)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5845"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(5.356636,23.86870)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5843"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(-0.932144,25.87240)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5841"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(16.14002,24.66420)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5839"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5837"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(1.707748,-5.784024)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5835"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5833"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5831"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5829"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5827"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5825"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(14.46340,2.014073)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5823"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(8.497184,-2.330824)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5821"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(9.263651,3.495228)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5819"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientTransform="translate(3.555020,0.968578)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5817"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(-1.608757,3.097272)"
+ y2="16.268581"
+ x2="16.851845"
+ y1="9.2859020"
+ x1="14.260854"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5815"
+ xlink:href="#linearGradient2254"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6098"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-9.002513,11.93373)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6101"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6118"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6121"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6124"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(21.51400,12.80461)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6179"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-7.197595,2.690414)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6181"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.033818,0.561720)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6183"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.674812,3.088370)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6185"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6187"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6189"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6191"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2527"
+ id="linearGradient6193"
+ gradientUnits="userSpaceOnUse"
+ x1="-25.137094"
+ y1="-1.2491118"
+ x2="-35.652866"
+ y2="-24.884460" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6196"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6199"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6202"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-4.372193,11.95105)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6208"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.088919,7.833409)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6211"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.619711,5.306759)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6214"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-5.783488,7.435453)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6242"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-5.783488,7.435453)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6244"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.619711,5.306759)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6246"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.088919,7.833409)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6248"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6250"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6252"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6254"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-9.002513,11.93373)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6257"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.297112,4.275205)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6260"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6263"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6266"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6269"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(13.79432,0.174884)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6272"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(8.085690,-2.351766)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6275"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(2.921913,-0.223072)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6311"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(21.51400,12.80461)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6313"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6315"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6317"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6319"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6321"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-5.783488,7.435453)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6323"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.619711,5.306759)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6325"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.088919,7.833409)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6329"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6331"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6333"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-9.002513,11.93373)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6335"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(2.921913,-0.223072)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6337"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(8.085690,-2.351766)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6339"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(13.79432,0.174884)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6341"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6343"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6543"
+ x1="27.320963"
+ y1="44.228481"
+ x2="52.328316"
+ y2="44.228481"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.526962,0.000000,-2.763717e-17,0.972572,16.13182,0.843286)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6547"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,25.91493,0.633642)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="52.328316"
+ y2="44.228481" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6551"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,36.25638,0.633643)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="45.115814"
+ y2="44.228455" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6559"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.526962,0.000000,-2.332577e-16,0.972572,16.13182,0.843286)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="52.328316"
+ y2="44.228481" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6561"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,25.91493,0.633642)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="52.328316"
+ y2="44.228481" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6563"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,36.25638,0.633643)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="45.115814"
+ y2="44.228455" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6566"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.577744,0.000000,-6.388715e-16,1.006703,39.04124,-0.702889)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="45.115814"
+ y2="44.228455" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6569"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.577744,0.000000,-6.388715e-16,1.006703,27.70322,-0.702890)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="52.328316"
+ y2="44.228481" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6537"
+ id="linearGradient6572"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.577744,0.000000,-1.880005e-16,1.006703,16.97734,-0.485889)"
+ x1="27.320963"
+ y1="44.228481"
+ x2="52.328316"
+ y2="44.228481" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6576"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.132431,0.000000,0.000000,1.016132,10.54485,-4.728138)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6579"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.853605,0.000000,0.000000,1.016132,19.23518,-2.625202)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6582"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,13.49182,-7.781819)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6585"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,7.650036,-10.34923)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6588"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,2.365814,-8.186195)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.999079,0.000000,0.000000,1.016132,56.82188,9.371753)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6603"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-1.807925,-9.493960)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6606"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.314274,0.000000,0.000000,1.016132,12.05438,11.66070)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6609"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-11.59870,2.312158)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6612"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,21.39156,5.051653)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6618"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,16.09471,2.948843)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6622"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,11.32174,9.047633)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6624"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-5.783488,7.435453)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6626"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.619711,5.306759)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6628"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.088919,7.833409)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6630"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6632"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6634"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2254"
+ id="linearGradient6636"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-9.002513,11.93373)"
+ x1="14.260854"
+ y1="9.2859020"
+ x2="16.851845"
+ y2="16.268581" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6828"
+ id="radialGradient6834"
+ cx="15.147860"
+ cy="23.822156"
+ fx="15.147860"
+ fy="23.822156"
+ r="12.852140"
+ gradientTransform="matrix(0.654874,0.000000,0.000000,0.398574,2.663540,12.14676)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6840"
+ id="radialGradient6846"
+ cx="32.583473"
+ cy="25.240442"
+ fx="32.583473"
+ fy="25.240442"
+ r="8.4165270"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.503823,-15.00000,6.042836)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6828"
+ id="radialGradient6852"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.654874,0.000000,0.000000,0.398574,44.33646,16.14676)"
+ cx="15.147860"
+ cy="23.822156"
+ fx="15.147860"
+ fy="23.822156"
+ r="12.852140" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6840"
+ id="radialGradient6854"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.000000,0.000000,0.000000,0.503823,62.00000,10.04284)"
+ cx="32.583473"
+ cy="25.240442"
+ fx="32.583473"
+ fy="25.240442"
+ r="8.4165270" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5346"
+ id="radialGradient23739"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
+ cx="21.920311"
+ cy="-382.96454"
+ fx="21.920311"
+ fy="-382.96454"
+ r="21.743534" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5358"
+ id="linearGradient23741"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
+ x1="6.8942904"
+ y1="-359.82382"
+ x2="27.400387"
+ y2="-381.30222" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5346"
+ id="radialGradient23743"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
+ cx="21.920311"
+ cy="-382.96454"
+ fx="21.920311"
+ fy="-382.96454"
+ r="21.743534" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5358"
+ id="linearGradient23745"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
+ x1="6.8942904"
+ y1="-359.82382"
+ x2="27.400387"
+ y2="-381.30222" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5346"
+ id="radialGradient23747"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)"
+ cx="21.920311"
+ cy="-382.96454"
+ fx="21.920311"
+ fy="-382.96454"
+ r="21.743534" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5358"
+ id="linearGradient23749"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)"
+ x1="6.8942904"
+ y1="-359.82382"
+ x2="27.400387"
+ y2="-381.30222" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="24"
+ inkscape:cy="24"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="982"
+ inkscape:window-height="965"
+ inkscape:window-x="1280"
+ inkscape:window-y="28"
+ inkscape:showpageshadow="false" />
+ <metadata
+ id="metadata1311">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>weather-storm</dc:title>
+ <dc:date>January 2006</dc:date>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Ryan Collier</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title>http://www.tango-project.org</dc:title>
+ </cc:Agent>
+ </dc:publisher>
+ <dc:source>http://www.pseudocode.org</dc:source>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>weather</rdf:li>
+ <rdf:li>applet</rdf:li>
+ <rdf:li>notify</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Attribution" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <g
+ id="g15505">
+ <g
+ transform="translate(-287.0204,244.9995)"
+ id="g12825">
+ <path
+ style="opacity:1.0000000;fill:#555753;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z "
+ id="path12827" />
+ <path
+ style="opacity:1.0000000;fill:url(#linearGradient13495);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z "
+ id="path12829" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12831"
+ sodipodi:cx="241.80843"
+ sodipodi:cy="-383.66660"
+ sodipodi:rx="6.7396116"
+ sodipodi:ry="6.7396116"
+ d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z"
+ transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)" />
+ <g
+ id="g12833">
+ <path
+ transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)"
+ d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z"
+ sodipodi:ry="6.2313786"
+ sodipodi:rx="6.2313786"
+ sodipodi:cy="-389.30136"
+ sodipodi:cx="243.95184"
+ id="path12835"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)"
+ d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z"
+ sodipodi:ry="6.2313786"
+ sodipodi:rx="6.2313786"
+ sodipodi:cy="-389.30136"
+ sodipodi:cx="243.95184"
+ id="path12837"
+ style="opacity:0.49444440;fill:url(#linearGradient13497);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g12839">
+ <path
+ transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)"
+ d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z"
+ sodipodi:ry="6.0325046"
+ sodipodi:rx="6.0325046"
+ sodipodi:cy="-385.78790"
+ sodipodi:cx="251.22179"
+ id="path12841"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)"
+ d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z"
+ sodipodi:ry="6.0325046"
+ sodipodi:rx="6.0325046"
+ sodipodi:cy="-385.78790"
+ sodipodi:cx="251.22179"
+ id="path12843"
+ style="opacity:0.49444440;fill:url(#linearGradient13499);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g12845">
+ <path
+ transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)"
+ d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z"
+ sodipodi:ry="4.3752232"
+ sodipodi:rx="4.3752232"
+ sodipodi:cy="-387.88715"
+ sodipodi:cx="233.43362"
+ id="path12847"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)"
+ d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z"
+ sodipodi:ry="4.3752232"
+ sodipodi:rx="4.3752232"
+ sodipodi:cy="-387.88715"
+ sodipodi:cx="233.43362"
+ id="path12849"
+ style="opacity:0.49444440;fill:url(#linearGradient13501);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g12851">
+ <path
+ transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)"
+ d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z"
+ sodipodi:ry="6.7396116"
+ sodipodi:rx="6.7396116"
+ sodipodi:cy="-383.66660"
+ sodipodi:cx="241.80843"
+ id="path12853"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)"
+ d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z"
+ sodipodi:ry="6.7396116"
+ sodipodi:rx="6.7396116"
+ sodipodi:cy="-383.66660"
+ sodipodi:cx="241.80843"
+ id="path12855"
+ style="opacity:0.49444440;fill:url(#linearGradient13503);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ <g
+ transform="translate(208.8564,357.8851)"
+ id="g11177">
+ <path
+ style="fill:#edd400;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient11189);stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z "
+ id="path11179"
+ sodipodi:nodetypes="cccccccc" />
+ <path
+ style="opacity:1.0000000;fill:url(#linearGradient11191);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z "
+ id="path11181"
+ sodipodi:nodetypes="cccccccc" />
+ </g>
+ <g
+ transform="translate(-215.0060,252.9994)"
+ id="g12857">
+ <path
+ style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z "
+ id="path12859"
+ sodipodi:nodetypes="ccsscsssscsscc" />
+ <path
+ style="opacity:1.0000000;fill:url(#linearGradient13131);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z "
+ id="path12861"
+ sodipodi:nodetypes="ccsscsssscsscc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12863"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.47777775;fill:url(#linearGradient13133);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12865"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" />
+ <rect
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="rect12867"
+ width="20.000000"
+ height="9.0000000"
+ x="236.99994"
+ y="-230.99992" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12869"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12871"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.47777775;fill:url(#linearGradient13135);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12873"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12875"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.47777775;fill:url(#linearGradient13137);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12877"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" />
+ <path
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z "
+ id="path12879" />
+ <path
+ style="opacity:0.47777775;fill:url(#linearGradient13139);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z "
+ id="path12881" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.47777775;fill:url(#linearGradient13141);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12883"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" />
+ <path
+ style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z "
+ id="path12885"
+ sodipodi:nodetypes="ccss" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12887"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.47777775;fill:url(#linearGradient13143);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12889"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" />
+ </g>
+ <g
+ transform="translate(192.8564,354.8851)"
+ id="g11183">
+ <path
+ style="fill:#edd400;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient11193);stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z "
+ id="path11185"
+ sodipodi:nodetypes="cccccccc" />
+ <path
+ style="opacity:1.0000000;fill:url(#linearGradient11195);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z "
+ id="path11187"
+ sodipodi:nodetypes="cccccccc" />
+ </g>
+ <path
+ sodipodi:nodetypes="ccsscsscscsscc"
+ id="path13209"
+ d="M 31.626355,14.999520 C 29.626255,14.999520 27.940775,16.079020 27.095785,17.614460 C 26.500875,17.392550 25.851145,17.261090 25.169835,17.261090 C 22.339625,17.261090 20.052305,19.379260 20.052305,21.978590 C 20.052305,22.432340 20.196835,22.835420 20.327445,23.250720 C 18.945125,24.115990 17.979615,25.504290 17.979615,27.155450 C 17.979615,29.808280 18.631235,32.148800 23.207195,31.961300 C 23.252315,31.959450 40.658675,32.058280 40.907605,31.943270 C 43.992815,32.169220 44.979615,29.497540 44.979615,27.243810 C 44.979615,25.543300 44.142675,24.193960 42.670345,23.366220 C 42.718305,23.107660 42.631785,22.815030 42.631785,22.543970 C 42.631785,19.944650 40.326135,17.826480 37.495915,17.826480 C 37.102425,17.826480 36.763515,17.961300 36.395375,18.038500 C 35.656915,16.270380 33.810365,14.999520 31.626355,14.999520 z "
+ style="opacity:1.0000000;fill:url(#radialGradient13211);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000004;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <g
+ transform="translate(-230.0203,248.9834)"
+ id="g12891">
+ <path
+ style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z "
+ id="path12893"
+ sodipodi:nodetypes="ccsscsssscsscc" />
+ <path
+ style="opacity:1.0000000;fill:url(#linearGradient13145);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z "
+ id="path12895"
+ sodipodi:nodetypes="ccsscsssscsscc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12897"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.47777775;fill:url(#linearGradient13147);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12899"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" />
+ <rect
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="rect12901"
+ width="20.000000"
+ height="9.0000000"
+ x="236.99994"
+ y="-230.99992" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12903"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12905"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.47777775;fill:url(#linearGradient13149);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12907"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12909"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.47777775;fill:url(#linearGradient13151);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12911"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" />
+ <path
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z "
+ id="path12913" />
+ <path
+ style="opacity:0.47777775;fill:url(#linearGradient13153);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z "
+ id="path12915" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.47777775;fill:url(#linearGradient13155);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12917"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" />
+ <path
+ style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z "
+ id="path12919"
+ sodipodi:nodetypes="ccss" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12921"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.47777775;fill:url(#linearGradient13157);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="path12923"
+ sodipodi:cx="288.37500"
+ sodipodi:cy="-437.59375"
+ sodipodi:rx="3.3125000"
+ sodipodi:ry="3.3125000"
+ d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z"
+ transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" />
+ </g>
+ <path
+ sodipodi:nodetypes="ccsscsscscsscc"
+ id="path11418"
+ d="M 16.188855,11.000000 C 14.188755,11.000000 12.503275,12.079500 11.658285,13.614940 C 11.063375,13.393030 10.413645,13.261570 9.7323346,13.261570 C 6.9021246,13.261570 4.6148046,15.379740 4.6148046,17.979070 C 4.6148046,18.432820 4.7593346,18.835900 4.8899446,19.251200 C 3.5076246,20.116470 2.5421146,21.504770 2.5421146,23.155930 C 2.5421146,25.808760 3.1937346,28.149280 7.7696946,27.961780 C 7.8148146,27.959930 25.221175,28.058760 25.470105,27.943750 C 28.555315,28.169700 29.542115,25.498020 29.542115,23.244290 C 29.542115,21.543780 28.705175,20.194440 27.232845,19.366700 C 27.280805,19.108140 27.194285,18.815510 27.194285,18.544450 C 27.194285,15.945130 24.888635,13.826960 22.058415,13.826960 C 21.664925,13.826960 21.326015,13.961780 20.957875,14.038980 C 20.219415,12.270860 18.372865,11.000000 16.188855,11.000000 z "
+ style="opacity:1.0000000;fill:url(#radialGradient13068);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000004;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+ <g
+ transform="translate(-212.91035,271.43)"
+ id="g12227">
+ <path
+ style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z"
+ id="path12229"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="opacity:0.46111109;fill:url(#radialGradient23739);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z"
+ id="path12231"
+ sodipodi:nodetypes="csscc" />
+ <path
+ style="opacity:1;fill:url(#linearGradient23741);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z"
+ id="path12233"
+ sodipodi:nodetypes="ccc" />
+ </g>
+ <g
+ transform="translate(-193.78094,269.3383)"
+ id="g12239">
+ <path
+ style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z"
+ id="path12241"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="opacity:0.46111109;fill:url(#radialGradient23743);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z"
+ id="path12243"
+ sodipodi:nodetypes="csscc" />
+ <path
+ style="opacity:1;fill:url(#linearGradient23745);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z"
+ id="path12245"
+ sodipodi:nodetypes="ccc" />
+ </g>
+ <g
+ transform="translate(-225.96722,264.58414)"
+ id="g12186">
+ <path
+ style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z"
+ id="path6059"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="opacity:0.46111109;fill:url(#radialGradient23747);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z"
+ id="path6061"
+ sodipodi:nodetypes="csscc" />
+ <path
+ style="opacity:1;fill:url(#linearGradient23749);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z"
+ id="path6063"
+ sodipodi:nodetypes="ccc" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/demos/embedded/weatherinfo/weatherinfo.cpp b/demos/embedded/weatherinfo/weatherinfo.cpp
new file mode 100644
index 0000000..0762644
--- /dev/null
+++ b/demos/embedded/weatherinfo/weatherinfo.cpp
@@ -0,0 +1,511 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the demonstration applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtCore>
+#include <QtGui>
+#include <QtNetwork>
+#include <QtSvg>
+
+#if defined (Q_OS_SYMBIAN)
+#include "sym_iap_util.h"
+#endif
+
+class WeatherInfo: public QMainWindow
+{
+ Q_OBJECT
+
+private:
+
+ QGraphicsView *m_view;
+ QGraphicsScene m_scene;
+ QString city;
+ QGraphicsRectItem *m_statusItem;
+ QGraphicsTextItem *m_temperatureItem;
+ QGraphicsTextItem *m_conditionItem;
+ QGraphicsSvgItem *m_iconItem;
+ QList<QGraphicsRectItem*> m_forecastItems;
+ QList<QGraphicsTextItem*> m_dayItems;
+ QList<QGraphicsSvgItem*> m_conditionItems;
+ QList<QGraphicsTextItem*> m_rangeItems;
+ QTimeLine m_timeLine;
+ QHash<QString, QString> m_icons;
+
+public:
+ WeatherInfo(QWidget *parent = 0): QMainWindow(parent) {
+
+ m_view = new QGraphicsView(this);
+ setCentralWidget(m_view);
+
+ setupScene();
+ m_view->setScene(&m_scene);
+ m_view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ m_view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+
+ m_view->setFrameShape(QFrame::NoFrame);
+ setWindowTitle("Weather Info");
+
+ QStringList cities;
+ cities << "Oslo";
+ cities << "Berlin";
+ cities << "Brisbane";
+ cities << "Helsinki";
+ cities << "San Diego";
+ for (int i = 0; i < cities.count(); ++i) {
+ QAction *action = new QAction(cities[i], this);
+ connect(action, SIGNAL(triggered()), SLOT(chooseCity()));
+ addAction(action);
+#if defined(Q_OS_SYMBIAN)
+ menuBar()->addAction(action);
+#endif
+ }
+ setContextMenuPolicy(Qt::ActionsContextMenu);
+
+ QTimer::singleShot(0, this, SLOT(delayedInit()));
+ }
+
+private slots:
+ void delayedInit() {
+#if defined(Q_OS_SYMBIAN)
+ qt_SetDefaultIap();
+#else
+ request("Oslo");
+#endif
+ }
+
+private slots:
+
+ void chooseCity() {
+ QAction *action = qobject_cast<QAction*>(sender());
+ if (action)
+ request(action->text());
+ }
+
+ void handleNetworkData(QNetworkReply *networkReply) {
+ QUrl url = networkReply->url();
+ if (!networkReply->error())
+ digest(QString::fromUtf8(networkReply->readAll()));
+ networkReply->deleteLater();
+ networkReply->manager()->deleteLater();
+ }
+
+ void animate(int frame) {
+ qreal progress = static_cast<qreal>(frame) / 100;
+#if QT_VERSION >= 0x040500
+ m_iconItem->setOpacity(progress);
+#endif
+ qreal hw = width() / 2.0;
+ m_statusItem->setPos(-hw + hw * progress, 0);
+ for (int i = 0; i < m_forecastItems.count(); ++i) {
+ qreal ofs = i * 0.5 / m_forecastItems.count();
+ qreal alpha = qBound(qreal(0), 2 * (progress - ofs), qreal(1));
+#if QT_VERSION >= 0x040500
+ m_conditionItems[i]->setOpacity(alpha);
+#endif
+ QPointF pos = m_forecastItems[i]->pos();
+ if (width() > height()) {
+ qreal fx = width() - width() * 0.4 * alpha;
+ m_forecastItems[i]->setPos(fx, pos.y());
+ } else {
+ qreal fx = height() - height() * 0.5 * alpha;
+ m_forecastItems[i]->setPos(pos.x(), fx);
+ }
+ }
+ }
+
+private:
+
+ void setupScene() {
+
+ QColor textColor = palette().color(QPalette::WindowText);
+ QFont textFont = font();
+ textFont.setBold(true);
+ textFont.setPointSize(textFont.pointSize() * 2);
+
+ m_temperatureItem = m_scene.addText(QString(), textFont);
+ m_temperatureItem->setDefaultTextColor(textColor);
+
+ m_conditionItem = m_scene.addText(QString(), textFont);
+ m_conditionItem->setDefaultTextColor(textColor);
+
+ m_iconItem = new QGraphicsSvgItem;
+ m_scene.addItem(m_iconItem);
+
+ m_statusItem = m_scene.addRect(0, 0, 10, 10);
+ m_statusItem->setPen(Qt::NoPen);
+ m_statusItem->setBrush(Qt::NoBrush);
+ m_temperatureItem->setParentItem(m_statusItem);
+ m_conditionItem->setParentItem(m_statusItem);
+ m_iconItem->setParentItem(m_statusItem);
+
+ connect(&m_timeLine, SIGNAL(frameChanged(int)), SLOT(animate(int)));
+ m_timeLine.setDuration(1100);
+ m_timeLine.setFrameRange(0, 100);
+ m_timeLine.setCurveShape(QTimeLine::EaseInCurve);
+ }
+
+ void request(const QString &location) {
+ QUrl url("http://www.google.com/ig/api");
+ url.addEncodedQueryItem("hl", "en");
+ url.addEncodedQueryItem("weather", QUrl::toPercentEncoding(location));
+
+ QNetworkAccessManager *manager = new QNetworkAccessManager(this);
+ connect(manager, SIGNAL(finished(QNetworkReply*)),
+ this, SLOT(handleNetworkData(QNetworkReply*)));
+ manager->get(QNetworkRequest(url));
+
+ city = QString();
+ setWindowTitle("Loading...");
+ }
+
+ QString extractIcon(const QString &data) {
+ if (m_icons.isEmpty()) {
+ m_icons["mostly_cloudy"] = "weather-few-clouds";
+ m_icons["cloudy"] = "weather-overcast";
+ m_icons["mostly_sunny"] = "weather-sunny-very-few-clouds";
+ m_icons["partly_cloudy"] = "weather-sunny-very-few-clouds";
+ m_icons["sunny"] = "weather-sunny";
+ m_icons["flurries"] = "weather-snow";
+ m_icons["fog"] = "weather-fog";
+ m_icons["haze"] = "weather-haze";
+ m_icons["icy"] = "weather-icy";
+ m_icons["sleet"] = "weather-sleet";
+ m_icons["chance_of_sleet"] = "weather-sleet";
+ m_icons["snow"] = "weather-snow";
+ m_icons["chance_of_snow"] = "weather-snow";
+ m_icons["mist"] = "weather-showers";
+ m_icons["rain"] = "weather-showers";
+ m_icons["chance_of_rain"] = "weather-showers";
+ m_icons["storm"] = "weather-storm";
+ m_icons["chance_of_storm"] = "weather-storm";
+ m_icons["thunderstorm"] = "weather-thundershower";
+ m_icons["chance_of_tstorm"] = "weather-thundershower";
+ }
+ QRegExp regex("([\\w]+).gif$");
+ if (regex.indexIn(data) != -1) {
+ QString i = regex.cap();
+ i = i.left(i.length() - 4);
+ QString name = m_icons.value(i);
+ if (!name.isEmpty()) {
+ name.prepend(":/icons/");
+ name.append(".svg");
+ return name;
+ }
+ }
+ return QString();
+ }
+
+ static QString toCelcius(QString t, QString unit) {
+ bool ok = false;
+ int degree = t.toInt(&ok);
+ if (!ok)
+ return QString();
+ if (unit != "SI")
+ degree = ((degree - 32) * 5 + 8)/ 9;
+ return QString::number(degree) + QChar(176);
+ }
+
+
+#define GET_DATA_ATTR xml.attributes().value("data").toString()
+
+ void digest(const QString &data) {
+
+ QColor textColor = palette().color(QPalette::WindowText);
+ QString unitSystem;
+
+ delete m_iconItem;
+ m_iconItem = new QGraphicsSvgItem();
+ m_scene.addItem(m_iconItem);
+ m_iconItem->setParentItem(m_statusItem);
+ qDeleteAll(m_dayItems);
+ qDeleteAll(m_conditionItems);
+ qDeleteAll(m_rangeItems);
+ qDeleteAll(m_forecastItems);
+ m_dayItems.clear();
+ m_conditionItems.clear();
+ m_rangeItems.clear();
+ m_forecastItems.clear();
+
+ QXmlStreamReader xml(data);
+ while (!xml.atEnd()) {
+ xml.readNext();
+ if (xml.tokenType() == QXmlStreamReader::StartElement) {
+ if (xml.name() == "city") {
+ city = GET_DATA_ATTR;
+ setWindowTitle(city);
+ }
+ if (xml.name() == "unit_system")
+ unitSystem = xml.attributes().value("data").toString();
+ // Parse current weather conditions
+ if (xml.name() == "current_conditions") {
+ while (!xml.atEnd()) {
+ xml.readNext();
+ if (xml.name() == "current_conditions")
+ break;
+ if (xml.tokenType() == QXmlStreamReader::StartElement) {
+ if (xml.name() == "condition") {
+ m_conditionItem->setPlainText(GET_DATA_ATTR);
+ }
+ if (xml.name() == "icon") {
+ QString name = extractIcon(GET_DATA_ATTR);
+ if (!name.isEmpty()) {
+ delete m_iconItem;
+ m_iconItem = new QGraphicsSvgItem(name);
+ m_scene.addItem(m_iconItem);
+ m_iconItem->setParentItem(m_statusItem);
+ }
+ }
+ if (xml.name() == "temp_c") {
+ QString s = GET_DATA_ATTR + QChar(176);
+ m_temperatureItem->setPlainText(s);
+ }
+ }
+ }
+ }
+ // Parse and collect the forecast conditions
+ if (xml.name() == "forecast_conditions") {
+ QGraphicsTextItem *dayItem = 0;
+ QGraphicsSvgItem *statusItem = 0;
+ QString lowT, highT;
+ while (!xml.atEnd()) {
+ xml.readNext();
+ if (xml.name() == "forecast_conditions") {
+ if (dayItem && statusItem &&
+ !lowT.isEmpty() && !highT.isEmpty()) {
+ m_dayItems << dayItem;
+ m_conditionItems << statusItem;
+ QString txt = highT + '/' + lowT;
+ QGraphicsTextItem* rangeItem;
+ rangeItem = m_scene.addText(txt);
+ rangeItem->setDefaultTextColor(textColor);
+ m_rangeItems << rangeItem;
+ QGraphicsRectItem *box;
+ box = m_scene.addRect(0, 0, 10, 10);
+ box->setPen(Qt::NoPen);
+ box->setBrush(Qt::NoBrush);
+ m_forecastItems << box;
+ dayItem->setParentItem(box);
+ statusItem->setParentItem(box);
+ rangeItem->setParentItem(box);
+ } else {
+ delete dayItem;
+ delete statusItem;
+ }
+ break;
+ }
+ if (xml.tokenType() == QXmlStreamReader::StartElement) {
+ if (xml.name() == "day_of_week") {
+ QString s = GET_DATA_ATTR;
+ dayItem = m_scene.addText(s.left(3));
+ dayItem->setDefaultTextColor(textColor);
+ }
+ if (xml.name() == "icon") {
+ QString name = extractIcon(GET_DATA_ATTR);
+ if (!name.isEmpty()) {
+ statusItem = new QGraphicsSvgItem(name);
+ m_scene.addItem(statusItem);
+ }
+ }
+ if (xml.name() == "low")
+ lowT = toCelcius(GET_DATA_ATTR, unitSystem);
+ if (xml.name() == "high")
+ highT = toCelcius(GET_DATA_ATTR, unitSystem);
+ }
+ }
+ }
+
+ }
+ }
+
+ m_timeLine.stop();
+ layoutItems();
+ animate(0);
+ m_timeLine.start();
+ }
+
+ void layoutItems() {
+ m_scene.setSceneRect(0, 0, width() - 1, height() - 1);
+ m_view->centerOn(width() / 2, height() / 2);
+ if (width() > height())
+ layoutItemsLandscape();
+ else
+ layoutItemsPortrait();
+ }
+
+ void layoutItemsLandscape() {
+ m_statusItem->setRect(0, 0, width() / 2 - 1, height() - 1);
+
+ if (!m_iconItem->boundingRect().isEmpty()) {
+ qreal dim = qMin(width() * 0.6, height() * 0.8);
+ qreal pad = (height() - dim) / 2;
+ qreal sw = dim / m_iconItem->boundingRect().width();
+ qreal sh = dim / m_iconItem->boundingRect().height();
+ m_iconItem->setTransform(QTransform().scale(sw, sh));
+ m_iconItem->setPos(1, pad);
+ }
+
+ m_temperatureItem->setPos(2, 2);
+ qreal h = m_conditionItem->boundingRect().height();
+ m_conditionItem->setPos(10, height() - h);
+
+ if (m_dayItems.count()) {
+ qreal left = width() * 0.6;
+ qreal h = height() / m_dayItems.count();
+ QFont textFont = font();
+ textFont.setPixelSize(static_cast<int>(h * 0.3));
+ qreal statusWidth = 0;
+ qreal rangeWidth = 0;
+ for (int i = 0; i < m_dayItems.count(); ++i) {
+ m_dayItems[i]->setFont(textFont);
+ QRectF brect = m_dayItems[i]->boundingRect();
+ statusWidth = qMax(statusWidth, brect.width());
+ brect = m_rangeItems[i]->boundingRect();
+ rangeWidth = qMax(rangeWidth, brect.width());
+ }
+ qreal space = width() - left - statusWidth - rangeWidth;
+ qreal dim = qMin(h, space);
+ qreal pad = statusWidth + (space - dim) / 2;
+ for (int i = 0; i < m_dayItems.count(); ++i) {
+ qreal base = h * i;
+ m_forecastItems[i]->setPos(left, base);
+ m_forecastItems[i]->setRect(0, 0, width() - left, h);
+ QRectF brect = m_dayItems[i]->boundingRect();
+ qreal ofs = (h - brect.height()) / 2;
+ m_dayItems[i]->setPos(0, ofs);
+ brect = m_rangeItems[i]->boundingRect();
+ ofs = (h - brect.height()) / 2;
+ m_rangeItems[i]->setPos(width() - rangeWidth - left, ofs);
+ brect = m_conditionItems[i]->boundingRect();
+ ofs = (h - dim) / 2;
+ m_conditionItems[i]->setPos(pad, ofs);
+ if (brect.isEmpty())
+ continue;
+ qreal sw = dim / brect.width();
+ qreal sh = dim / brect.height();
+ m_conditionItems[i]->setTransform(QTransform().scale(sw, sh));
+ }
+ }
+ }
+
+ void layoutItemsPortrait() {
+
+ m_statusItem->setRect(0, 0, width() - 1, height() / 2 - 1);
+
+ if (!m_iconItem->boundingRect().isEmpty()) {
+ qreal dim = qMin(width() * 0.8, height() * 0.4);
+ qreal ofsy = (height() / 2 - dim) / 2;
+ qreal ofsx = (width() - dim) / 3;
+ qreal sw = dim / m_iconItem->boundingRect().width();
+ qreal sh = dim / m_iconItem->boundingRect().height();
+ m_iconItem->setTransform(QTransform().scale(sw, sh));
+ m_iconItem->setPos(ofsx, ofsy);
+ }
+
+ m_temperatureItem->setPos(2, 2);
+ qreal ch = m_conditionItem->boundingRect().height();
+ qreal cw = m_conditionItem->boundingRect().width();
+ m_conditionItem->setPos(width() - cw , height() / 2 - ch - 20);
+
+ if (m_dayItems.count()) {
+ qreal top = height() * 0.5;
+ qreal w = width() / m_dayItems.count();
+ qreal statusHeight = 0;
+ qreal rangeHeight = 0;
+ for (int i = 0; i < m_dayItems.count(); ++i) {
+ m_dayItems[i]->setFont(font());
+ QRectF brect = m_dayItems[i]->boundingRect();
+ statusHeight = qMax(statusHeight, brect.height());
+ brect = m_rangeItems[i]->boundingRect();
+ rangeHeight = qMax(rangeHeight, brect.height());
+ }
+ qreal space = height() - top - statusHeight - rangeHeight;
+ qreal dim = qMin(w, space);
+
+ qreal boxh = statusHeight + rangeHeight + dim;
+ qreal pad = (height() - top - boxh) / 2;
+
+ for (int i = 0; i < m_dayItems.count(); ++i) {
+ qreal base = w * i;
+ m_forecastItems[i]->setPos(base, top);
+ m_forecastItems[i]->setRect(0, 0, w, boxh);
+ QRectF brect = m_dayItems[i]->boundingRect();
+ qreal ofs = (w - brect.width()) / 2;
+ m_dayItems[i]->setPos(ofs, pad);
+
+ brect = m_rangeItems[i]->boundingRect();
+ ofs = (w - brect.width()) / 2;
+ m_rangeItems[i]->setPos(ofs, pad + statusHeight + dim);
+
+ brect = m_conditionItems[i]->boundingRect();
+ ofs = (w - dim) / 2;
+ m_conditionItems[i]->setPos(ofs, pad + statusHeight);
+ if (brect.isEmpty())
+ continue;
+ qreal sw = dim / brect.width();
+ qreal sh = dim / brect.height();
+ m_conditionItems[i]->setTransform(QTransform().scale(sw, sh));
+ }
+ }
+ }
+
+
+ void resizeEvent(QResizeEvent *event) {
+ Q_UNUSED(event);
+ layoutItems();
+ }
+
+};
+
+#include "weatherinfo.moc"
+
+int main(int argc, char *argv[])
+{
+ QApplication app(argc, argv);
+
+ WeatherInfo w;
+#if defined(Q_OS_SYMBIAN)
+ w.showMaximized();
+#else
+ w.resize(520, 288);
+ w.show();
+#endif
+
+ return app.exec();
+}
diff --git a/demos/embedded/weatherinfo/weatherinfo.pro b/demos/embedded/weatherinfo/weatherinfo.pro
new file mode 100644
index 0000000..a89acba
--- /dev/null
+++ b/demos/embedded/weatherinfo/weatherinfo.pro
@@ -0,0 +1,11 @@
+TEMPLATE = app
+TARGET = weatherinfo
+SOURCES = weatherinfo.cpp
+RESOURCES = weatherinfo.qrc
+QT += network svg
+
+symbian {
+ HEADERS += $$QT_SOURCE_TREE/examples/network/ftp/sym_iap_util.h
+ LIBS += -lesock -lconnmon
+ TARGET.CAPABILITY = NetworkServices
+}
diff --git a/demos/embedded/weatherinfo/weatherinfo.qrc b/demos/embedded/weatherinfo/weatherinfo.qrc
new file mode 100644
index 0000000..6e9d224
--- /dev/null
+++ b/demos/embedded/weatherinfo/weatherinfo.qrc
@@ -0,0 +1,16 @@
+<RCC>
+ <qresource prefix="/" >
+ <file>icons/weather-few-clouds.svg</file>
+ <file>icons/weather-fog.svg</file>
+ <file>icons/weather-haze.svg</file>
+ <file>icons/weather-icy.svg</file>
+ <file>icons/weather-overcast.svg</file>
+ <file>icons/weather-showers.svg</file>
+ <file>icons/weather-sleet.svg</file>
+ <file>icons/weather-snow.svg</file>
+ <file>icons/weather-storm.svg</file>
+ <file>icons/weather-sunny.svg</file>
+ <file>icons/weather-sunny-very-few-clouds.svg</file>
+ <file>icons/weather-thundershower.svg</file>
+ </qresource>
+</RCC>
diff --git a/demos/embeddeddialogs/embeddeddialogs.pro b/demos/embeddeddialogs/embeddeddialogs.pro
index a38e3e8..d3ef442 100644
--- a/demos/embeddeddialogs/embeddeddialogs.pro
+++ b/demos/embeddeddialogs/embeddeddialogs.pro
@@ -15,3 +15,5 @@ target.path = $$[QT_INSTALL_DEMOS]/embeddeddialogs
sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.png *.jpg *.plist *.icns *.ico *.rc *.pro *.html *.doc images
sources.path = $$[QT_INSTALL_DEMOS]/embeddeddialogs
INSTALLS += target sources
+
+symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
diff --git a/demos/embeddeddialogs/main.cpp b/demos/embeddeddialogs/main.cpp
index bfda00e..9c54bf2 100644
--- a/demos/embeddeddialogs/main.cpp
+++ b/demos/embeddeddialogs/main.cpp
@@ -76,7 +76,6 @@ int main(int argc, char *argv[])
view.scale(0.5, 0.5);
view.setRenderHints(view.renderHints() | QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
view.setBackgroundBrush(QPixmap(":/No-Ones-Laughing-3.jpg"));
- view.setCacheMode(QGraphicsView::CacheBackground);
view.setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate);
view.show();
view.setWindowTitle("Embedded Dialogs Demo");
diff --git a/demos/gradients/gradients.pro b/demos/gradients/gradients.pro
index 167572b..21cd57d 100644
--- a/demos/gradients/gradients.pro
+++ b/demos/gradients/gradients.pro
@@ -16,3 +16,5 @@ target.path = $$[QT_INSTALL_DEMOS]/gradients
sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.html
sources.path = $$[QT_INSTALL_DEMOS]/gradients
INSTALLS += target sources
+
+symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
diff --git a/demos/interview/interview.pro b/demos/interview/interview.pro
index c013755..1e5f9b8 100644
--- a/demos/interview/interview.pro
+++ b/demos/interview/interview.pro
@@ -16,3 +16,4 @@ sources.files = $$SOURCES $$HEADERS $$RESOURCES README *.pro images
sources.path = $$[QT_INSTALL_DEMOS]/interview
INSTALLS += target sources
+symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
diff --git a/demos/macmainwindow/macmainwindow.pro b/demos/macmainwindow/macmainwindow.pro
index f5165a7..ba6ffbb 100644
--- a/demos/macmainwindow/macmainwindow.pro
+++ b/demos/macmainwindow/macmainwindow.pro
@@ -12,7 +12,7 @@ build_all:!build_pass {
CONFIG += release
}
-LIBS += -framework Cocoa
+LIBS += -framework Cocoa -framework Carbon
# install
mac {
diff --git a/demos/mainwindow/mainwindow.pro b/demos/mainwindow/mainwindow.pro
index 9853a55..8e9bdc2 100644
--- a/demos/mainwindow/mainwindow.pro
+++ b/demos/mainwindow/mainwindow.pro
@@ -14,3 +14,4 @@ sources.files = $$SOURCES $$HEADERS $$FORMS $$RESOURCES *.png *.jpg *.pro
sources.path = $$[QT_INSTALL_DEMOS]/mainwindow
INSTALLS += target sources
+symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
diff --git a/demos/mediaplayer/mediaplayer.pro b/demos/mediaplayer/mediaplayer.pro
index c64abd9..49a652e 100644
--- a/demos/mediaplayer/mediaplayer.pro
+++ b/demos/mediaplayer/mediaplayer.pro
@@ -25,4 +25,7 @@ wince*{
DEPLOYMENT_PLUGIN += phonon_ds9 phonon_waveout
}
-
+symbian {
+ include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
+ TARGET.UID3 = 0xA000C613
+}
diff --git a/demos/pathstroke/pathstroke.pro b/demos/pathstroke/pathstroke.pro
index 50b4de2..ac50842 100644
--- a/demos/pathstroke/pathstroke.pro
+++ b/demos/pathstroke/pathstroke.pro
@@ -18,3 +18,7 @@ sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.html
sources.path = $$[QT_INSTALL_DEMOS]/pathstroke
INSTALLS += target sources
+symbian {
+ include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
+ TARGET.UID3 = 0xA000A63E
+}
diff --git a/demos/qtdemo/colors.cpp b/demos/qtdemo/colors.cpp
index f98ec57..e63417c 100644
--- a/demos/qtdemo/colors.cpp
+++ b/demos/qtdemo/colors.cpp
@@ -72,10 +72,8 @@ int Colors::contentHeight = 510;
// Properties:
bool Colors::openGlRendering = false;
-bool Colors::direct3dRendering = false;
bool Colors::softwareRendering = false;
-bool Colors::openGlAwailable = true;
-bool Colors::direct3dAwailable = true;
+bool Colors::openGlAvailable = true;
bool Colors::xRenderPresent = true;
bool Colors::noTicker = false;
@@ -206,8 +204,6 @@ void Colors::parseArgs(int argc, char *argv[])
QString s(argv[i]);
if (s == "-opengl")
Colors::openGlRendering = true;
- else if (s == "-direct3d")
- Colors::direct3dRendering = true;
else if (s == "-software")
Colors::softwareRendering = true;
else if (s == "-no-opengl") // support old style
@@ -270,7 +266,7 @@ void Colors::parseArgs(int argc, char *argv[])
Colors::fps = int(parseFloat(s, "-fps"));
else if (s.startsWith("-h") || s.startsWith("-help")){
QMessageBox::warning(0, "Arguments",
- QString("Usage: qtdemo [-verbose] [-no-adapt] [-opengl] [-direct3d] [-software] [-fullscreen] [-ticker[0|1]] ")
+ QString("Usage: qtdemo [-verbose] [-no-adapt] [-opengl] [-software] [-fullscreen] [-ticker[0|1]] ")
+ "[-animations[0|1]] [-no-blending] [-no-sync] [-use-timer-update[0|1]] [-pause[0|1]] "
+ "[-use-window-mask] [-no-rescale] "
+ "[-use-pixmaps] [-show-fps] [-show-br] [-8bit[0|1]] [-menu<int>] [-use-loop] [-use-balls] "
@@ -290,7 +286,6 @@ void Colors::parseArgs(int argc, char *argv[])
void Colors::setLowSettings()
{
Colors::openGlRendering = false;
- Colors::direct3dRendering = false;
Colors::softwareRendering = true;
Colors::noTicker = true;
Colors::noTimerUpdate = true;
@@ -325,15 +320,11 @@ void Colors::detectSystemResources()
qDebug() << "- OpenGL not supported by current build of Qt";
#endif
{
- Colors::openGlAwailable = false;
+ Colors::openGlAvailable = false;
if (Colors::verbose)
qDebug("- OpenGL not recommended on this system");
}
-#if defined(Q_WS_WIN)
- Colors::direct3dAwailable = false; // for now.
-#endif
-
#if defined(Q_WS_X11)
// check if X render is present:
QPixmap tmp(1, 1);
@@ -369,21 +360,9 @@ void Colors::postConfigure()
}
}
-#if !defined(Q_WS_WIN)
- if (Colors::direct3dRendering){
- Colors::direct3dRendering = false;
- qDebug() << "- WARNING: Direct3D specified, but not supported on this platform";
- }
-#endif
-
- if (!Colors::openGlRendering && !Colors::direct3dRendering && !Colors::softwareRendering){
+ if (!Colors::openGlRendering && !Colors::softwareRendering){
// The user has not decided rendering system. So we do it instead:
-#if defined(Q_WS_WIN)
- if (Colors::direct3dAwailable)
- Colors::direct3dRendering = true;
- else
-#endif
- if (Colors::openGlAwailable)
+ if (Colors::openGlAvailable)
Colors::openGlRendering = true;
else
Colors::softwareRendering = true;
diff --git a/demos/qtdemo/colors.h b/demos/qtdemo/colors.h
index 3d2bb2a..c534649 100644
--- a/demos/qtdemo/colors.h
+++ b/demos/qtdemo/colors.h
@@ -81,11 +81,9 @@ public:
static int contentHeight;
// properties:
+ static bool openGlAvailable;
static bool openGlRendering;
- static bool direct3dRendering;
static bool softwareRendering;
- static bool openGlAwailable;
- static bool direct3dAwailable;
static bool xRenderPresent;
static bool noAdapt;
static bool noTicker;
diff --git a/demos/qtdemo/mainwindow.cpp b/demos/qtdemo/mainwindow.cpp
index 55e0b86..f8f4922 100644
--- a/demos/qtdemo/mainwindow.cpp
+++ b/demos/qtdemo/mainwindow.cpp
@@ -100,14 +100,8 @@ void MainWindow::setRenderingSystem()
{
QWidget *viewport = 0;
- if (Colors::direct3dRendering){
- viewport->setAttribute(Qt::WA_MSWindowsUseDirect3D);
- setCacheMode(QGraphicsView::CacheNone);
- if (Colors::verbose)
- qDebug() << "- using Direct3D";
- }
#ifndef QT_NO_OPENGL
- else if (Colors::openGlRendering){
+ if (Colors::openGlRendering) {
QGLWidget *glw = new QGLWidget(QGLFormat(QGL::SampleBuffers));
if (Colors::noScreenSync)
glw->format().setSwapInterval(0);
@@ -116,9 +110,10 @@ void MainWindow::setRenderingSystem()
setCacheMode(QGraphicsView::CacheNone);
if (Colors::verbose)
qDebug() << "- using OpenGL";
- }
+ } else // software rendering
#endif
- else{ // software rendering
+ {
+ // software rendering
viewport = new QWidget;
setCacheMode(QGraphicsView::CacheBackground);
if (Colors::verbose)
@@ -386,8 +381,6 @@ void MainWindow::keyPressEvent(QKeyEvent *event)
s += "Rendering system: ";
if (Colors::openGlRendering)
s += "OpenGL";
- else if (Colors::direct3dRendering)
- s += "Direct3D";
else
s += "software";
diff --git a/demos/qtdemo/qtdemo.pro b/demos/qtdemo/qtdemo.pro
index 163ed17..011ea0c 100644
--- a/demos/qtdemo/qtdemo.pro
+++ b/demos/qtdemo/qtdemo.pro
@@ -6,6 +6,8 @@ DESTDIR = $$DEMO_DESTDIR/bin
OBJECTS_DIR = .obj
MOC_DIR = .moc
INSTALLS += target sources
+
+
QT += xml network
contains(QT_CONFIG, opengl) {
@@ -67,6 +69,8 @@ ICON = qtdemo.icns
QMAKE_INFO_PLIST = Info_mac.plist
}
+symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
+
# install
target.path = $$[QT_INSTALL_BINS]
sources.files = $$SOURCES $$HEADERS $$FORMS $$RESOURCES qtdemo.pro images xml *.ico *.icns *.rc *.plist
diff --git a/demos/qtdemo/qtdemo.rc b/demos/qtdemo/qtdemo.rc
index 4cf2a63..882b355 100644
--- a/demos/qtdemo/qtdemo.rc
+++ b/demos/qtdemo/qtdemo.rc
@@ -1,2 +1,32 @@
+#include "winver.h"
+
IDI_ICON1 ICON DISCARDABLE "qtdemo.ico"
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,0,0,0
+ PRODUCTVERSION 1,0,0,0
+ FILEFLAGS 0x0L
+ FILEFLAGSMASK 0x3fL
+ FILEOS 0x00040004L
+ FILETYPE 0x1L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "000004b0"
+ BEGIN
+ VALUE "CompanyName", "Nokia Corporation and/or its subsidiary(-ies)"
+ VALUE "FileDescription", "Qt Examples and Demos"
+ VALUE "FileVersion", "1.0.0.0"
+ VALUE "LegalCopyright", "Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)."
+ VALUE "InternalName", "qtdemo"
+ VALUE "OriginalFilename", "qtdemo.exe"
+ VALUE "ProductName", "Qt Examples and Demos"
+ VALUE "ProductVersion", "1.0.0.0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x0, 1200
+ END
+END
diff --git a/demos/qtdemo/xml/examples.xml b/demos/qtdemo/xml/examples.xml
index 96a3e80..f598780 100644
--- a/demos/qtdemo/xml/examples.xml
+++ b/demos/qtdemo/xml/examples.xml
@@ -18,7 +18,16 @@
<example filename="browser" name="Browser" />
<example filename="mediaplayer" name="Media Player" />
<example filename="boxes" name="Boxes" />
+ <example filename="sub-attaq" name="Sub-attaq" />
</demos>
+ <category dirname="animation" name="Animation Framework">
+ <example filename="animatedtiles" name="Animated Tiles" />
+ <example filename="appchooser" name="Appchooser" />
+ <example filename="easing" name="Easing Curves" />
+ <example filename="moveblocks" name="Moving Blocks" />
+ <example filename="states" name="UI States" />
+ <example filename="stickman" name="Stickman" />
+ </category>
<category dirname="qtconcurrent" name="Concurrent Programming">
<example filename="map" name="Map" executable="false" />
<example filename="progressdialog" name="Progress Dialog" />
@@ -145,6 +154,11 @@
<category dirname="phonon" name="Phonon">
<example filename="musicplayer" name="Music Player" />
</category>
+ <category dirname="multimedia/audio" name="Multimedia">
+ <example filename="audiodevices" name="Audio Devices" />
+ <example filename="audiooutput" name="Audio Output" />
+ <example filename="audioinput" name="Audio Input" />
+ </category>
<category dirname="richtext" name="Rich Text">
<example filename="calendar" name="Calendar" />
<example filename="orderform" name="Order Form" />
@@ -167,6 +181,13 @@
<example filename="masterdetail" name="Music Archive" />
<example filename="sqlwidgetmapper" name="SQL Widget Mapper" />
</category>
+ <category dirname="statemachine" name="State Machine">
+ <example filename="eventtransitions" name="Event Transitions" />
+ <example filename="rogue" name="Rogue" />
+ <example filename="tankgame" name="Tank Game" />
+ <example filename="trafficlight" name="Traffic Light" />
+ <example filename="twowaybutton" name="Two-way Button" />
+ </category>
<category dirname="threads" name="Threading">
<example filename="mandelbrot" name="Mandelbrot" />
</category>
@@ -175,6 +196,7 @@
<example filename="completer" name="Completer" />
<example filename="customcompleter" name="Custom Completer" />
<example filename="i18n" name="Internationalization" />
+ <example filename="inputpanel" name="Input Panel" />
<example filename="plugandpaint" name="Plug and Paint" />
<example filename="regexp" name="Regular Expressions" />
<example filename="settingseditor" name="Settings Editor" />
@@ -231,5 +253,6 @@
<example filename="qobjectxmlmodel" name="QObjectXmlModel" />
<example filename="filetree" name="File Tree" />
<example filename="trafficinfo" name="Traffic Info" />
+ <example filename="schema" name="XML Schema Validation" />
</category>
</categories>
diff --git a/demos/shared/shared.pri b/demos/shared/shared.pri
index b551595..1541fa7 100644
--- a/demos/shared/shared.pri
+++ b/demos/shared/shared.pri
@@ -16,5 +16,6 @@ contains(CONFIG, debug_and_release_target) {
hpux-acc*:LIBS += $$SHARED_FOLDER/libdemo_shared.a
hpuxi-acc*:LIBS += $$SHARED_FOLDER/libdemo_shared.a
-!hpuxi-acc*:!hpux-acc*:LIBS += -ldemo_shared
+symbian:LIBS += -ldemo_shared.lib
+!hpuxi-acc*:!hpux-acc*:!symbian:LIBS += -ldemo_shared
diff --git a/demos/shared/shared.pro b/demos/shared/shared.pro
index cabce25..de29857 100644
--- a/demos/shared/shared.pro
+++ b/demos/shared/shared.pro
@@ -29,5 +29,10 @@ target.path = $$[QT_INSTALL_DEMOS]/shared
sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.pri images
sources.path = $$[QT_INSTALL_DEMOS]/shared
INSTALLS += sources
+
!cross_compile:INSTALLS += target
+symbian {
+ include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
+ TARGET.UID3 = 0xA000A63C
+}
diff --git a/demos/spreadsheet/spreadsheet.cpp b/demos/spreadsheet/spreadsheet.cpp
index ab2d4b1..644a4b6 100644
--- a/demos/spreadsheet/spreadsheet.cpp
+++ b/demos/spreadsheet/spreadsheet.cpp
@@ -481,7 +481,7 @@ void SpreadSheet::setupContents()
table->setItem(3, 0, new SpreadSheetItem("Lunch"));
table->setItem(4, 0, new SpreadSheetItem("Flight (LA)"));
table->setItem(5, 0, new SpreadSheetItem("Taxi"));
- table->setItem(6, 0, new SpreadSheetItem("Diinner"));
+ table->setItem(6, 0, new SpreadSheetItem("Dinner"));
table->setItem(7, 0, new SpreadSheetItem("Hotel"));
table->setItem(8, 0, new SpreadSheetItem("Flight (Oslo)"));
table->setItem(9, 0, new SpreadSheetItem("Total:"));
diff --git a/demos/spreadsheet/spreadsheet.pro b/demos/spreadsheet/spreadsheet.pro
index 6ed0016..6b38abe 100644
--- a/demos/spreadsheet/spreadsheet.pro
+++ b/demos/spreadsheet/spreadsheet.pro
@@ -31,3 +31,4 @@ sources.files = $$SOURCES $$RESOURCES *.pro images $$HEADERS
sources.path = $$[QT_INSTALL_DEMOS]/spreadsheet
INSTALLS += target sources
+symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
diff --git a/demos/sqlbrowser/sqlbrowser.pro b/demos/sqlbrowser/sqlbrowser.pro
index 920e8a0..3a8036d 100644
--- a/demos/sqlbrowser/sqlbrowser.pro
+++ b/demos/sqlbrowser/sqlbrowser.pro
@@ -18,6 +18,8 @@ sources.files = $$SOURCES $$HEADERS $$FORMS *.pro
sources.path = $$[QT_INSTALL_DEMOS]/sqlbrowser
INSTALLS += target sources
+symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
+
wince*: {
DEPLOYMENT_PLUGIN += qsqlite
}
diff --git a/demos/sub-attaq/animationmanager.cpp b/demos/sub-attaq/animationmanager.cpp
new file mode 100644
index 0000000..09a2a1b
--- /dev/null
+++ b/demos/sub-attaq/animationmanager.cpp
@@ -0,0 +1,93 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//Own
+#include "animationmanager.h"
+
+//Qt
+#include <QtCore/QAbstractAnimation>
+#include <QtCore/QDebug>
+
+// the universe's only animation manager
+AnimationManager *AnimationManager::instance = 0;
+
+AnimationManager::AnimationManager()
+{
+}
+
+AnimationManager *AnimationManager::self()
+{
+ if (!instance)
+ instance = new AnimationManager;
+ return instance;
+}
+
+void AnimationManager::registerAnimation(QAbstractAnimation *anim)
+{
+ animations.append(anim);
+}
+
+void AnimationManager::unregisterAnimation(QAbstractAnimation *anim)
+{
+ animations.removeAll(anim);
+}
+
+void AnimationManager::unregisterAllAnimations()
+{
+ animations.clear();
+}
+
+void AnimationManager::pauseAll()
+{
+ foreach (QAbstractAnimation* animation, animations)
+ {
+ if (animation->state() == QAbstractAnimation::Running)
+ animation->pause();
+ }
+}
+void AnimationManager::resumeAll()
+{
+ foreach (QAbstractAnimation* animation, animations)
+ {
+ if (animation->state() == QAbstractAnimation::Paused)
+ animation->resume();
+ }
+}
diff --git a/demos/sub-attaq/animationmanager.h b/demos/sub-attaq/animationmanager.h
new file mode 100644
index 0000000..f48fe34
--- /dev/null
+++ b/demos/sub-attaq/animationmanager.h
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef ANIMATIONMANAGER_H
+#define ANIMATIONMANAGER_H
+
+#include <QtCore/QObject>
+
+QT_BEGIN_NAMESPACE
+class QAbstractAnimation;
+QT_END_NAMESPACE
+
+class AnimationManager : public QObject
+{
+Q_OBJECT
+public:
+ AnimationManager();
+ void registerAnimation(QAbstractAnimation *anim);
+ void unregisterAnimation(QAbstractAnimation *anim);
+ void unregisterAllAnimations();
+ static AnimationManager *self();
+
+public slots:
+ void pauseAll();
+ void resumeAll();
+
+private:
+ static AnimationManager *instance;
+ QList<QAbstractAnimation *> animations;
+};
+
+#endif // ANIMATIONMANAGER_H
diff --git a/demos/sub-attaq/boat.cpp b/demos/sub-attaq/boat.cpp
new file mode 100644
index 0000000..5799743
--- /dev/null
+++ b/demos/sub-attaq/boat.cpp
@@ -0,0 +1,318 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//Own
+#include "boat.h"
+#include "boat_p.h"
+#include "bomb.h"
+#include "pixmapitem.h"
+#include "graphicsscene.h"
+#include "animationmanager.h"
+#include "custompropertyanimation.h"
+#include "qanimationstate.h"
+
+//Qt
+#include <QtCore/QPropertyAnimation>
+#include <QtCore/QStateMachine>
+#include <QtCore/QHistoryState>
+#include <QtCore/QFinalState>
+#include <QtCore/QState>
+#include <QtCore/QSequentialAnimationGroup>
+
+static QAbstractAnimation *setupDestroyAnimation(Boat *boat)
+{
+ QSequentialAnimationGroup *group = new QSequentialAnimationGroup(boat);
+#if QT_VERSION >=0x040500
+ PixmapItem *step1 = new PixmapItem(QString("explosion/boat/step1"),GraphicsScene::Big, boat);
+ step1->setZValue(6);
+ PixmapItem *step2 = new PixmapItem(QString("explosion/boat/step2"),GraphicsScene::Big, boat);
+ step2->setZValue(6);
+ PixmapItem *step3 = new PixmapItem(QString("explosion/boat/step3"),GraphicsScene::Big, boat);
+ step3->setZValue(6);
+ PixmapItem *step4 = new PixmapItem(QString("explosion/boat/step4"),GraphicsScene::Big, boat);
+ step4->setZValue(6);
+ step1->setOpacity(0);
+ step2->setOpacity(0);
+ step3->setOpacity(0);
+ step4->setOpacity(0);
+ CustomPropertyAnimation *anim1 = new CustomPropertyAnimation(boat);
+ anim1->setMemberFunctions((QGraphicsItem*)step1, &QGraphicsItem::opacity, &QGraphicsItem::setOpacity);
+ anim1->setDuration(100);
+ anim1->setEndValue(1);
+ CustomPropertyAnimation *anim2 = new CustomPropertyAnimation(boat);
+ anim2->setMemberFunctions((QGraphicsItem*)step2, &QGraphicsItem::opacity, &QGraphicsItem::setOpacity);
+ anim2->setDuration(100);
+ anim2->setEndValue(1);
+ CustomPropertyAnimation *anim3 = new CustomPropertyAnimation(boat);
+ anim3->setMemberFunctions((QGraphicsItem*)step3, &QGraphicsItem::opacity, &QGraphicsItem::setOpacity);
+ anim3->setDuration(100);
+ anim3->setEndValue(1);
+ CustomPropertyAnimation *anim4 = new CustomPropertyAnimation(boat);
+ anim4->setMemberFunctions((QGraphicsItem*)step4, &QGraphicsItem::opacity, &QGraphicsItem::setOpacity);
+ anim4->setDuration(100);
+ anim4->setEndValue(1);
+ CustomPropertyAnimation *anim5 = new CustomPropertyAnimation(boat);
+ anim5->setMemberFunctions((QGraphicsItem*)step1, &QGraphicsItem::opacity, &QGraphicsItem::setOpacity);
+ anim5->setDuration(100);
+ anim5->setEndValue(0);
+ CustomPropertyAnimation *anim6 = new CustomPropertyAnimation(boat);
+ anim6->setMemberFunctions((QGraphicsItem*)step2, &QGraphicsItem::opacity, &QGraphicsItem::setOpacity);
+ anim6->setDuration(100);
+ anim6->setEndValue(0);
+ CustomPropertyAnimation *anim7 = new CustomPropertyAnimation(boat);
+ anim7->setMemberFunctions((QGraphicsItem*)step3, &QGraphicsItem::opacity, &QGraphicsItem::setOpacity);
+ anim7->setDuration(100);
+ anim7->setEndValue(0);
+ CustomPropertyAnimation *anim8 = new CustomPropertyAnimation(boat);
+ anim8->setMemberFunctions((QGraphicsItem*)step4, &QGraphicsItem::opacity, &QGraphicsItem::setOpacity);
+ anim8->setDuration(100);
+ anim8->setEndValue(0);
+ group->addAnimation(anim1);
+ group->addAnimation(anim2);
+ group->addAnimation(anim3);
+ group->addAnimation(anim4);
+ group->addAnimation(anim5);
+ group->addAnimation(anim6);
+ group->addAnimation(anim7);
+ group->addAnimation(anim8);
+#else
+ // work around for a bug where we don't transition if the duration is zero.
+ QtPauseAnimation *anim = new QtPauseAnimation(group);
+ anim->setDuration(1);
+ group->addAnimation(anim);
+#endif
+ AnimationManager::self()->registerAnimation(group);
+ return group;
+}
+
+
+
+Boat::Boat(QGraphicsItem * parent, Qt::WindowFlags wFlags)
+ : QGraphicsWidget(parent,wFlags), speed(0), bombsAlreadyLaunched(0), direction(Boat::None), movementAnimation(0)
+{
+ pixmapItem = new PixmapItem(QString("boat"),GraphicsScene::Big, this);
+ setZValue(4);
+ setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+ setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsFocusable);
+ resize(pixmapItem->boundingRect().size());
+
+ //The movement animation used to animate the boat
+ movementAnimation = new QPropertyAnimation(this, "pos");
+
+ //The movement animation used to animate the boat
+ destroyAnimation = setupDestroyAnimation(this);
+
+ //We setup the state machien of the boat
+ machine = new QStateMachine(this);
+ QState *moving = new QState(machine);
+ StopState *stopState = new StopState(this, moving);
+ machine->setInitialState(moving);
+ moving->setInitialState(stopState);
+ MoveStateRight *moveStateRight = new MoveStateRight(this, moving);
+ MoveStateLeft *moveStateLeft = new MoveStateLeft(this, moving);
+ LaunchStateRight *launchStateRight = new LaunchStateRight(this, machine);
+ LaunchStateLeft *launchStateLeft = new LaunchStateLeft(this, machine);
+
+ //then setup the transitions for the rightMove state
+ KeyStopTransition *leftStopRight = new KeyStopTransition(this, QEvent::KeyPress, Qt::Key_Left);
+ leftStopRight->setTargetState(stopState);
+ KeyMoveTransition *leftMoveRight = new KeyMoveTransition(this, QEvent::KeyPress, Qt::Key_Left);
+ leftMoveRight->setTargetState(moveStateRight);
+ KeyMoveTransition *rightMoveRight = new KeyMoveTransition(this, QEvent::KeyPress, Qt::Key_Right);
+ rightMoveRight->setTargetState(moveStateRight);
+ KeyMoveTransition *rightMoveStop = new KeyMoveTransition(this, QEvent::KeyPress, Qt::Key_Right);
+ rightMoveStop->setTargetState(moveStateRight);
+
+ //then setup the transitions for the leftMove state
+ KeyStopTransition *rightStopLeft = new KeyStopTransition(this, QEvent::KeyPress, Qt::Key_Right);
+ rightStopLeft->setTargetState(stopState);
+ KeyMoveTransition *rightMoveLeft = new KeyMoveTransition(this, QEvent::KeyPress, Qt::Key_Right);
+ rightMoveLeft->setTargetState(moveStateLeft);
+ KeyMoveTransition *leftMoveLeft = new KeyMoveTransition(this, QEvent::KeyPress,Qt::Key_Left);
+ leftMoveLeft->setTargetState(moveStateLeft);
+ KeyMoveTransition *leftMoveStop = new KeyMoveTransition(this, QEvent::KeyPress,Qt::Key_Left);
+ leftMoveStop->setTargetState(moveStateLeft);
+
+ //We set up the right move state
+ moveStateRight->addTransition(leftStopRight);
+ moveStateRight->addTransition(leftMoveRight);
+ moveStateRight->addTransition(rightMoveRight);
+ stopState->addTransition(rightMoveStop);
+
+ //We set up the left move state
+ moveStateLeft->addTransition(rightStopLeft);
+ moveStateLeft->addTransition(leftMoveLeft);
+ moveStateLeft->addTransition(rightMoveLeft);
+ stopState->addTransition(leftMoveStop);
+
+ //The animation is finished, it means we reached the border of the screen, the boat is stopped so we move to the stop state
+ moveStateLeft->addTransition(movementAnimation, SIGNAL(finished()), stopState);
+ moveStateRight->addTransition(movementAnimation, SIGNAL(finished()), stopState);
+
+ //We set up the keys for dropping bombs
+ KeyLaunchTransition *upFireLeft = new KeyLaunchTransition(this, QEvent::KeyPress, Qt::Key_Up);
+ upFireLeft->setTargetState(launchStateRight);
+ KeyLaunchTransition *upFireRight = new KeyLaunchTransition(this, QEvent::KeyPress, Qt::Key_Up);
+ upFireRight->setTargetState(launchStateRight);
+ KeyLaunchTransition *upFireStop = new KeyLaunchTransition(this, QEvent::KeyPress, Qt::Key_Up);
+ upFireStop->setTargetState(launchStateRight);
+ KeyLaunchTransition *downFireLeft = new KeyLaunchTransition(this, QEvent::KeyPress, Qt::Key_Down);
+ downFireLeft->setTargetState(launchStateLeft);
+ KeyLaunchTransition *downFireRight = new KeyLaunchTransition(this, QEvent::KeyPress, Qt::Key_Down);
+ downFireRight->setTargetState(launchStateLeft);
+ KeyLaunchTransition *downFireMove = new KeyLaunchTransition(this, QEvent::KeyPress, Qt::Key_Down);
+ downFireMove->setTargetState(launchStateLeft);
+
+ //We set up transitions for fire up
+ moveStateRight->addTransition(upFireRight);
+ moveStateLeft->addTransition(upFireLeft);
+ stopState->addTransition(upFireStop);
+
+ //We set up transitions for fire down
+ moveStateRight->addTransition(downFireRight);
+ moveStateLeft->addTransition(downFireLeft);
+ stopState->addTransition(downFireMove);
+
+ //Finally the launch state should come back to its original state
+ QHistoryState *historyState = new QHistoryState(moving);
+ launchStateLeft->addTransition(historyState);
+ launchStateRight->addTransition(historyState);
+
+ QFinalState *final = new QFinalState(machine);
+
+ //This state play the destroyed animation
+ QAnimationState *destroyedState = new QAnimationState(machine);
+ destroyedState->setAnimation(destroyAnimation);
+
+ //Play a nice animation when the boat is destroyed
+ moving->addTransition(this, SIGNAL(boatDestroyed()),destroyedState);
+
+ //Transition to final state when the destroyed animation is finished
+ destroyedState->addTransition(destroyedState, SIGNAL(animationFinished()), final);
+
+ //The machine has finished to be executed, then the boat is dead
+ connect(machine,SIGNAL(finished()),this, SIGNAL(boatExecutionFinished()));
+
+}
+
+void Boat::run()
+{
+ //We register animations
+ AnimationManager::self()->registerAnimation(movementAnimation);
+ AnimationManager::self()->registerAnimation(destroyAnimation);
+ machine->start();
+}
+
+void Boat::stop()
+{
+ movementAnimation->stop();
+ machine->stop();
+}
+
+void Boat::updateBoatMovement()
+{
+ if (speed == 0 || direction == Boat::None) {
+ movementAnimation->stop();
+ return;
+ }
+
+ movementAnimation->stop();
+ movementAnimation->setStartValue(pos());
+
+ if (direction == Boat::Left) {
+ movementAnimation->setEndValue(QPointF(0,y()));
+ movementAnimation->setDuration(x()/speed*15);
+ }
+ else /*if (direction == Boat::Right)*/ {
+ movementAnimation->setEndValue(QPointF(scene()->width()-size().width(),y()));
+ movementAnimation->setDuration((scene()->width()-size().width()-x())/speed*15);
+ }
+ movementAnimation->start();
+}
+
+void Boat::destroy()
+{
+ movementAnimation->stop();
+ emit boatDestroyed();
+}
+
+int Boat::bombsLaunched() const
+{
+ return bombsAlreadyLaunched;
+}
+
+void Boat::setBombsLaunched(int number)
+{
+ if (number > MAX_BOMB) {
+ qWarning("Boat::setBombsLaunched : It impossible to launch that number of bombs");
+ return;
+ }
+ bombsAlreadyLaunched = number;
+}
+
+int Boat::currentSpeed() const
+{
+ return speed;
+}
+
+void Boat::setCurrentSpeed(int speed)
+{
+ if (speed > 3 || speed < 0) {
+ qWarning("Boat::setCurrentSpeed: The boat can't run on that speed");
+ return;
+ }
+ this->speed = speed;
+}
+
+enum Boat::Movement Boat::currentDirection() const
+{
+ return direction;
+}
+
+void Boat::setCurrentDirection(Movement direction)
+{
+ this->direction = direction;
+}
+
+int Boat::type() const
+{
+ return Type;
+}
diff --git a/demos/sub-attaq/boat.h b/demos/sub-attaq/boat.h
new file mode 100644
index 0000000..b80f6dc
--- /dev/null
+++ b/demos/sub-attaq/boat.h
@@ -0,0 +1,101 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef __BOAT__H__
+#define __BOAT__H__
+
+//Qt
+#include <QtCore/QObject>
+#include <QtGui/QKeyEvent>
+
+#include <QtGui/QGraphicsWidget>
+
+class PixmapItem;
+class Bomb;
+QT_BEGIN_NAMESPACE
+class QVariantAnimation;
+class QAbstractAnimation;
+class QStateMachine;
+QT_END_NAMESPACE
+
+class Boat : public QGraphicsWidget
+{
+Q_OBJECT
+public:
+ enum Movement {
+ None = 0,
+ Left,
+ Right
+ };
+ enum { Type = UserType + 2 };
+ Boat(QGraphicsItem *parent = 0, Qt::WindowFlags wFlags = 0);
+ void destroy();
+ void run();
+ void stop();
+
+ int bombsLaunched() const;
+ void setBombsLaunched(int number);
+
+ int currentSpeed() const;
+ void setCurrentSpeed(int speed);
+
+ enum Movement currentDirection() const;
+ void setCurrentDirection(Movement direction);
+
+ void updateBoatMovement();
+
+ virtual int type() const;
+
+signals:
+ void boatDestroyed();
+ void boatExecutionFinished();
+
+private:
+ int speed;
+ int bombsAlreadyLaunched;
+ Movement direction;
+ QVariantAnimation *movementAnimation;
+ QAbstractAnimation *destroyAnimation;
+ QStateMachine *machine;
+ PixmapItem *pixmapItem;
+};
+
+#endif //__BOAT__H__
diff --git a/demos/sub-attaq/boat_p.h b/demos/sub-attaq/boat_p.h
new file mode 100644
index 0000000..5fcde62
--- /dev/null
+++ b/demos/sub-attaq/boat_p.h
@@ -0,0 +1,256 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef BOAT_P_H
+#define BOAT_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+//Own
+#include "bomb.h"
+#include "graphicsscene.h"
+
+// Qt
+#include <QtGui/QKeyEventTransition>
+
+static const int MAX_BOMB = 5;
+
+
+//These transtion test if we have to stop the boat (i.e current speed is 1)
+class KeyStopTransition : public QKeyEventTransition
+{
+public:
+ KeyStopTransition(Boat *boat, QEvent::Type type, int key)
+ : QKeyEventTransition(boat, type, key)
+ {
+ this->boat = boat;
+ this->key = key;
+ }
+protected:
+ virtual bool eventTest(QEvent *event)
+ {
+ Q_UNUSED(event);
+ if (!QKeyEventTransition::eventTest(event))
+ return false;
+ if (boat->currentSpeed() == 1)
+ return true;
+ else
+ return false;
+ }
+private:
+ Boat * boat;
+ int key;
+};
+
+//These transtion test if we have to move the boat (i.e current speed was 0 or another value)
+ class KeyMoveTransition : public QKeyEventTransition
+{
+public:
+ KeyMoveTransition(Boat *boat, QEvent::Type type, int key)
+ : QKeyEventTransition(boat, type, key)
+ {
+ this->boat = boat;
+ this->key = key;
+ }
+protected:
+ virtual bool eventTest(QEvent *event)
+ {
+ Q_UNUSED(event);
+ if (!QKeyEventTransition::eventTest(event))
+ return false;
+ if (boat->currentSpeed() >= 0)
+ return true;
+ else
+ return false;
+
+ }
+ void onTransition(QEvent *)
+ {
+ //We decrease the speed if needed
+ if (key == Qt::Key_Left && boat->currentDirection() == Boat::Right)
+ boat->setCurrentSpeed(boat->currentSpeed() - 1);
+ else if (key == Qt::Key_Right && boat->currentDirection() == Boat::Left)
+ boat->setCurrentSpeed(boat->currentSpeed() - 1);
+ else if (boat->currentSpeed() < 3)
+ boat->setCurrentSpeed(boat->currentSpeed() + 1);
+ boat->updateBoatMovement();
+ }
+private:
+ Boat * boat;
+ int key;
+};
+
+//This transition trigger the bombs launch
+ class KeyLaunchTransition : public QKeyEventTransition
+{
+public:
+ KeyLaunchTransition(Boat *boat, QEvent::Type type, int key)
+ : QKeyEventTransition(boat, type, key)
+ {
+ this->boat = boat;
+ this->key = key;
+ }
+protected:
+ virtual bool eventTest(QEvent *event)
+ {
+ Q_UNUSED(event);
+ if (!QKeyEventTransition::eventTest(event))
+ return false;
+ //We have enough bomb?
+ if (boat->bombsLaunched() < MAX_BOMB)
+ return true;
+ else
+ return false;
+ }
+private:
+ Boat * boat;
+ int key;
+};
+
+//This state is describing when the boat is moving right
+class MoveStateRight : public QState
+{
+public:
+ MoveStateRight(Boat *boat,QState *parent = 0) : QState(parent)
+ {
+ this->boat = boat;
+ }
+protected:
+ void onEntry(QEvent *)
+ {
+ boat->setCurrentDirection(Boat::Right);
+ boat->updateBoatMovement();
+ }
+private:
+ Boat * boat;
+};
+
+ //This state is describing when the boat is moving left
+class MoveStateLeft : public QState
+{
+public:
+ MoveStateLeft(Boat *boat,QState *parent = 0) : QState(parent)
+ {
+ this->boat = boat;
+ }
+protected:
+ void onEntry(QEvent *)
+ {
+ boat->setCurrentDirection(Boat::Left);
+ boat->updateBoatMovement();
+ }
+private:
+ Boat * boat;
+};
+
+//This state is describing when the boat is in a stand by position
+class StopState : public QState
+{
+public:
+ StopState(Boat *boat,QState *parent = 0) : QState(parent)
+ {
+ this->boat = boat;
+ }
+protected:
+ void onEntry(QEvent *)
+ {
+ boat->setCurrentSpeed(0);
+ boat->setCurrentDirection(Boat::None);
+ boat->updateBoatMovement();
+ }
+private:
+ Boat * boat;
+};
+
+//This state is describing the launch of the torpedo on the right
+class LaunchStateRight : public QState
+{
+public:
+ LaunchStateRight(Boat *boat,QState *parent = 0) : QState(parent)
+ {
+ this->boat = boat;
+ }
+protected:
+ void onEntry(QEvent *)
+ {
+ Bomb *b = new Bomb();
+ b->setPos(boat->x()+boat->size().width(),boat->y());
+ GraphicsScene *scene = static_cast<GraphicsScene *>(boat->scene());
+ scene->addItem(b);
+ b->launch(Bomb::Right);
+ boat->setBombsLaunched(boat->bombsLaunched() + 1);
+ }
+private:
+ Boat * boat;
+};
+
+//This state is describing the launch of the torpedo on the left
+class LaunchStateLeft : public QState
+{
+public:
+ LaunchStateLeft(Boat *boat,QState *parent = 0) : QState(parent)
+ {
+ this->boat = boat;
+ }
+protected:
+ void onEntry(QEvent *)
+ {
+ Bomb *b = new Bomb();
+ b->setPos(boat->x() - b->size().width(), boat->y());
+ GraphicsScene *scene = static_cast<GraphicsScene *>(boat->scene());
+ scene->addItem(b);
+ b->launch(Bomb::Left);
+ boat->setBombsLaunched(boat->bombsLaunched() + 1);
+ }
+private:
+ Boat * boat;
+};
+
+#endif // BOAT_P_H
diff --git a/demos/sub-attaq/bomb.cpp b/demos/sub-attaq/bomb.cpp
new file mode 100644
index 0000000..b047341
--- /dev/null
+++ b/demos/sub-attaq/bomb.cpp
@@ -0,0 +1,124 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//Own
+#include "bomb.h"
+#include "submarine.h"
+#include "pixmapitem.h"
+#include "animationmanager.h"
+#include "qanimationstate.h"
+
+//Qt
+#include <QtCore/QSequentialAnimationGroup>
+#include <QtCore/QPropertyAnimation>
+#include <QtCore/QStateMachine>
+#include <QtCore/QFinalState>
+
+Bomb::Bomb(QGraphicsItem * parent, Qt::WindowFlags wFlags)
+ : QGraphicsWidget(parent,wFlags), launchAnimation(0)
+{
+ pixmapItem = new PixmapItem(QString("bomb"),GraphicsScene::Big, this);
+ setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+ setFlags(QGraphicsItem::ItemIsMovable);
+ setZValue(2);
+ resize(pixmapItem->boundingRect().size());
+}
+
+void Bomb::launch(Bomb::Direction direction)
+{
+ launchAnimation = new QSequentialAnimationGroup();
+ AnimationManager::self()->registerAnimation(launchAnimation);
+ qreal delta = direction == Right ? 20 : - 20;
+ QPropertyAnimation *anim = new QPropertyAnimation(this, "pos");
+ anim->setEndValue(QPointF(x() + delta,y() - 20));
+ anim->setDuration(150);
+ launchAnimation->addAnimation(anim);
+ anim = new QPropertyAnimation(this, "pos");
+ anim->setEndValue(QPointF(x() + delta*2, y() ));
+ anim->setDuration(150);
+ launchAnimation->addAnimation(anim);
+ anim = new QPropertyAnimation(this, "pos");
+ anim->setEndValue(QPointF(x() + delta*2,scene()->height()));
+ anim->setDuration(y()/2*60);
+ launchAnimation->addAnimation(anim);
+ connect(anim,SIGNAL(valueChanged(const QVariant &)),this,SLOT(onAnimationLaunchValueChanged(const QVariant &)));
+
+ //We setup the state machine of the bomb
+ QStateMachine *machine = new QStateMachine(this);
+
+ //This state is when the launch animation is playing
+ QAnimationState *launched = new QAnimationState(machine);
+ launched->setAnimation(launchAnimation);
+
+ //End
+ QFinalState *final = new QFinalState(machine);
+
+ machine->setInitialState(launched);
+
+ //### Add a nice animation when the bomb is destroyed
+ launched->addTransition(this, SIGNAL(bombExplosed()),final);
+
+ //If the animation is finished, then we move to the final state
+ launched->addTransition(launched, SIGNAL(animationFinished()), final);
+
+ //The machine has finished to be executed, then the boat is dead
+ connect(machine,SIGNAL(finished()),this, SIGNAL(bombExecutionFinished()));
+
+ machine->start();
+
+}
+
+void Bomb::onAnimationLaunchValueChanged(const QVariant &)
+{
+ foreach (QGraphicsItem * item , collidingItems(Qt::IntersectsItemBoundingRect)) {
+ if (item->type() == SubMarine::Type) {
+ SubMarine *s = static_cast<SubMarine *>(item);
+ destroy();
+ s->destroy();
+ }
+ }
+}
+
+void Bomb::destroy()
+{
+ launchAnimation->stop();
+ emit bombExplosed();
+}
diff --git a/demos/sub-attaq/bomb.h b/demos/sub-attaq/bomb.h
new file mode 100644
index 0000000..60d3fab
--- /dev/null
+++ b/demos/sub-attaq/bomb.h
@@ -0,0 +1,75 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef __BOMB__H__
+#define __BOMB__H__
+
+//Qt
+#include <QtGui/QGraphicsWidget>
+#include <QtCore/QAnimationGroup>
+
+class PixmapItem;
+
+class Bomb : public QGraphicsWidget
+{
+Q_OBJECT
+public:
+ enum Direction {
+ Left = 0,
+ Right
+ };
+ Bomb(QGraphicsItem * parent = 0, Qt::WindowFlags wFlags = 0);
+ void launch(Direction direction);
+ void destroy();
+
+signals:
+ void bombExplosed();
+ void bombExecutionFinished();
+
+private slots:
+ void onAnimationLaunchValueChanged(const QVariant &);
+
+private:
+ QAnimationGroup *launchAnimation;
+ PixmapItem *pixmapItem;
+};
+
+#endif //__BOMB__H__
diff --git a/demos/sub-attaq/custompropertyanimation.cpp b/demos/sub-attaq/custompropertyanimation.cpp
new file mode 100644
index 0000000..3975ce4
--- /dev/null
+++ b/demos/sub-attaq/custompropertyanimation.cpp
@@ -0,0 +1,108 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "custompropertyanimation.h"
+
+// Qt
+#include <QtCore/qdebug.h>
+
+CustomPropertyAnimation::CustomPropertyAnimation(QObject *parent) :
+ QVariantAnimation(parent), animProp(0)
+{
+}
+
+CustomPropertyAnimation::~CustomPropertyAnimation()
+{
+}
+
+void CustomPropertyAnimation::setProperty(AbstractProperty *_animProp)
+{
+ if (animProp == _animProp)
+ return;
+ delete animProp;
+ animProp = _animProp;
+}
+
+/*!
+ \reimp
+ */
+void CustomPropertyAnimation::updateCurrentValue(const QVariant &value)
+{
+ if (!animProp || state() == QAbstractAnimation::Stopped)
+ return;
+
+ animProp->write(value);
+}
+
+
+/*!
+ \reimp
+*/
+void CustomPropertyAnimation::updateState(QAbstractAnimation::State oldState, QAbstractAnimation::State newState)
+{
+ // Initialize start value
+ if (oldState == QAbstractAnimation::Stopped) {
+ if (!animProp)
+ return;
+ QVariant def = animProp->read();
+ if (def.isValid()) {
+ const int t = def.userType();
+ KeyValues values = keyValues();
+ //this ensures that all the keyValues are of type t
+ for (int i = 0; i < values.count(); ++i) {
+ QVariantAnimation::KeyValue &pair = values[i];
+ if (pair.second.userType() != t)
+ pair.second.convert(static_cast<QVariant::Type>(t));
+ }
+ //let's now update the key values
+ setKeyValues(values);
+ }
+
+ if ((animProp && !startValue().isValid() && currentTime() == 0)
+ || (currentTime() == duration() && currentLoop() == (loopCount() - 1))) {
+ setStartValue(def);
+ }
+ }
+
+ QVariantAnimation::updateState(oldState, newState);
+}
+
+#include "moc_custompropertyanimation.cpp"
diff --git a/demos/sub-attaq/custompropertyanimation.h b/demos/sub-attaq/custompropertyanimation.h
new file mode 100644
index 0000000..7146887
--- /dev/null
+++ b/demos/sub-attaq/custompropertyanimation.h
@@ -0,0 +1,114 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef CUSTOMPROPERTYANIMATION_H
+#define CUSTOMPROPERTYANIMATION_H
+
+#include <QtCore/qvariantanimation.h>
+
+QT_BEGIN_NAMESPACE
+class QGraphicsItem;
+QT_END_NAMESPACE
+
+struct AbstractProperty
+{
+ virtual QVariant read() const = 0;
+ virtual void write(const QVariant &value) = 0;
+};
+
+
+class CustomPropertyAnimation : public QVariantAnimation
+{
+ Q_OBJECT
+
+ template <typename Target, typename T, typename T2 = T>
+ class MemberFunctionProperty : public AbstractProperty
+ {
+ public:
+ typedef T (Target::*Getter)(void) const;
+ typedef void (Target::*Setter)(T2);
+
+ MemberFunctionProperty(Target* target, Getter getter, Setter setter)
+ : m_target(target), m_getter(getter), m_setter(setter) {}
+
+ virtual void write(const QVariant &value)
+ {
+ if (m_setter) (m_target->*m_setter)(qVariantValue<T>(value));
+ }
+
+ virtual QVariant read() const
+ {
+ if (m_getter) return qVariantFromValue<T>((m_target->*m_getter)());
+ return QVariant();
+ }
+
+ private:
+ Target *m_target;
+ Getter m_getter;
+ Setter m_setter;
+ };
+
+public:
+ CustomPropertyAnimation(QObject *parent = 0);
+ ~CustomPropertyAnimation();
+
+ template<class Target, typename T>
+ void setMemberFunctions(Target* target, T (Target::*getter)() const, void (Target::*setter)(const T& ))
+ {
+ setProperty(new MemberFunctionProperty<Target, T, const T&>(target, getter, setter));
+ }
+
+ template<class Target, typename T>
+ void setMemberFunctions(Target* target, T (Target::*getter)() const, void (Target::*setter)(T))
+ {
+ setProperty(new MemberFunctionProperty<Target, T>(target, getter, setter));
+ }
+
+ void updateCurrentValue(const QVariant &value);
+ void updateState(QAbstractAnimation::State oldState, QAbstractAnimation::State newState);
+ void setProperty(AbstractProperty *animProp);
+
+private:
+ Q_DISABLE_COPY(CustomPropertyAnimation);
+ AbstractProperty *animProp;
+};
+
+#endif // CUSTOMPROPERTYANIMATION_H
diff --git a/demos/sub-attaq/data.xml b/demos/sub-attaq/data.xml
new file mode 100644
index 0000000..0f30515
--- /dev/null
+++ b/demos/sub-attaq/data.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<subattaq>
+ <submarines>
+ <submarine type="0" points="10" name="Q1" />
+ <submarine type="1" points="20" name="Q2" />
+ </submarines>
+ <levels>
+ <level id="0" name="Seaman recruit">
+ <subinstance type="0" nb="1"/>
+ </level>
+ <level id="1" name="Seaman apprentice">
+ <subinstance type="0" nb="2"/>
+ </level>
+ <level id="2" name="Seaman">
+ <subinstance type="0" nb="4"/>
+ </level>
+ <level id="3" name="Petty Officer Third Class">
+ <subinstance type="0" nb="6"/>
+ </level>
+ <level id="4" name="Petty Officer Second Class">
+ <subinstance type="0" nb="6"/>
+ </level>
+ <level id="5" name="Petty Officer First Class">
+ <subinstance type="0" nb="8"/>
+ </level>
+ <level id="6" name="Lieutenant">
+ <subinstance type="0" nb="10"/>
+ </level>
+ <level id="7" name="Commander">
+ <subinstance type="0" nb="15"/>
+ </level>
+ <level id="8" name="Captain">
+ <subinstance type="0" nb="12"/>
+ </level>
+ <level id="9" name="Admiral">
+ <subinstance type="0" nb="12"/>
+ </level>
+ </levels>
+</subattaq>
diff --git a/demos/sub-attaq/graphicsscene.cpp b/demos/sub-attaq/graphicsscene.cpp
new file mode 100644
index 0000000..210cb0e
--- /dev/null
+++ b/demos/sub-attaq/graphicsscene.cpp
@@ -0,0 +1,374 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//Own
+#include "graphicsscene.h"
+#include "states.h"
+#include "boat.h"
+#include "submarine.h"
+#include "torpedo.h"
+#include "bomb.h"
+#include "pixmapitem.h"
+#include "custompropertyanimation.h"
+#include "animationmanager.h"
+#include "qanimationstate.h"
+#include "progressitem.h"
+
+//Qt
+#include <QtCore/QPropertyAnimation>
+#include <QtCore/QSequentialAnimationGroup>
+#include <QtCore/QParallelAnimationGroup>
+#include <QtCore/QStateMachine>
+#include <QtCore/QFinalState>
+#include <QtCore/QPauseAnimation>
+#include <QtGui/QAction>
+#include <QtCore/QDir>
+#include <QtGui/QApplication>
+#include <QtGui/QMessageBox>
+#include <QtGui/QGraphicsView>
+#include <QtGui/QGraphicsSceneMouseEvent>
+#include <QtCore/QXmlStreamReader>
+
+//helper function that creates an animation for position and inserts it into group
+static CustomPropertyAnimation *addGraphicsItemPosAnimation(QSequentialAnimationGroup *group,
+ QGraphicsItem *item, const QPointF &endPos)
+{
+ CustomPropertyAnimation *ret = new CustomPropertyAnimation(group);
+ ret->setMemberFunctions(item, &QGraphicsItem::pos, &QGraphicsItem::setPos);
+ ret->setEndValue(endPos);
+ ret->setDuration(200);
+ ret->setEasingCurve(QEasingCurve::OutElastic);
+ group->addPause(50);
+ return ret;
+}
+
+//helper function that creates an animation for opacity and inserts it into group
+static void addGraphicsItemFadeoutAnimation(QAnimationGroup *group, QGraphicsItem *item)
+{
+#if QT_VERSION >=0x040500
+ CustomPropertyAnimation *anim = new CustomPropertyAnimation(group);
+ anim->setMemberFunctions(item, &QGraphicsItem::opacity, &QGraphicsItem::setOpacity);
+ anim->setDuration(800);
+ anim->setEndValue(0);
+ anim->setEasingCurve(QEasingCurve::OutQuad);
+#else
+ // work around for a bug where we don't transition if the duration is zero.
+ QtPauseAnimation *anim = new QtPauseAnimation(group);
+ anim->setDuration(1);
+#endif
+}
+
+GraphicsScene::GraphicsScene(int x, int y, int width, int height, Mode mode)
+ : QGraphicsScene(x,y,width,height), mode(mode), newAction(0), quitAction(0), boat(0)
+{
+ backgroundItem = new PixmapItem(QString("background"),mode);
+ backgroundItem->setZValue(1);
+ backgroundItem->setPos(0,0);
+ addItem(backgroundItem);
+
+ PixmapItem *surfaceItem = new PixmapItem(QString("surface"),mode);
+ surfaceItem->setZValue(3);
+ surfaceItem->setPos(0,sealLevel() - surfaceItem->boundingRect().height()/2);
+ addItem(surfaceItem);
+
+ //The item that display score and level
+ progressItem = new ProgressItem(backgroundItem);
+
+ //We create the boat
+ boat = new Boat();
+ addItem(boat);
+ boat->setPos(this->width()/2, sealLevel() - boat->size().height());
+ boat->hide();
+
+ //parse the xml that contain all data of the game
+ QXmlStreamReader reader;
+ QFile file(":data.xml");
+ file.open(QIODevice::ReadOnly);
+ reader.setDevice(&file);
+ LevelDescription currentLevel;
+ while (!reader.atEnd()) {
+ reader.readNext();
+ if (reader.tokenType() == QXmlStreamReader::StartElement) {
+ if (reader.name() == "submarine")
+ {
+ SubmarineDescription desc;
+ desc.name = reader.attributes().value("name").toString();
+ desc.points = reader.attributes().value("points").toString().toInt();
+ desc.type = reader.attributes().value("type").toString().toInt();
+ submarinesData.append(desc);
+ }
+ if (reader.name() == "level")
+ {
+ currentLevel.id = reader.attributes().value("id").toString().toInt();
+ currentLevel.name = reader.attributes().value("name").toString();
+ }
+ if (reader.name() == "subinstance")
+ {
+ currentLevel.submarines.append(qMakePair(reader.attributes().value("type").toString().toInt(),reader.attributes().value("nb").toString().toInt()));
+ }
+ }
+ if (reader.tokenType() == QXmlStreamReader::EndElement) {
+ if (reader.name() == "level")
+ {
+ levelsData.insert(currentLevel.id,currentLevel);
+ currentLevel.submarines.clear();
+ }
+ }
+ }
+}
+
+qreal GraphicsScene::sealLevel() const
+{
+ if (mode == Big)
+ return 220;
+ else
+ return 160;
+}
+
+void GraphicsScene::setupScene(const QList<QAction *> &actions)
+{
+ newAction = actions.at(0);
+ quitAction = actions.at(1);
+
+ QGraphicsItem *logo_s = addWelcomeItem(QPixmap(":/logo-s"));
+ QGraphicsItem *logo_u = addWelcomeItem(QPixmap(":/logo-u"));
+ QGraphicsItem *logo_b = addWelcomeItem(QPixmap(":/logo-b"));
+ QGraphicsItem *logo_dash = addWelcomeItem(QPixmap(":/logo-dash"));
+ QGraphicsItem *logo_a = addWelcomeItem(QPixmap(":/logo-a"));
+ QGraphicsItem *logo_t = addWelcomeItem(QPixmap(":/logo-t"));
+ QGraphicsItem *logo_t2 = addWelcomeItem(QPixmap(":/logo-t2"));
+ QGraphicsItem *logo_a2 = addWelcomeItem(QPixmap(":/logo-a2"));
+ QGraphicsItem *logo_q = addWelcomeItem(QPixmap(":/logo-q"));
+ QGraphicsItem *logo_excl = addWelcomeItem(QPixmap(":/logo-excl"));
+ logo_s->setZValue(3);
+ logo_u->setZValue(4);
+ logo_b->setZValue(5);
+ logo_dash->setZValue(6);
+ logo_a->setZValue(7);
+ logo_t->setZValue(8);
+ logo_t2->setZValue(9);
+ logo_a2->setZValue(10);
+ logo_q->setZValue(11);
+ logo_excl->setZValue(12);
+ logo_s->setPos(QPointF(-1000, -1000));
+ logo_u->setPos(QPointF(-800, -1000));
+ logo_b->setPos(QPointF(-600, -1000));
+ logo_dash->setPos(QPointF(-400, -1000));
+ logo_a->setPos(QPointF(1000, 2000));
+ logo_t->setPos(QPointF(800, 2000));
+ logo_t2->setPos(QPointF(600, 2000));
+ logo_a2->setPos(QPointF(400, 2000));
+ logo_q->setPos(QPointF(200, 2000));
+ logo_excl->setPos(QPointF(0, 2000));
+
+ QSequentialAnimationGroup * lettersGroupMoving = new QSequentialAnimationGroup(this);
+ QParallelAnimationGroup * lettersGroupFading = new QParallelAnimationGroup(this);
+
+ //creation of the animations for moving letters
+ addGraphicsItemPosAnimation(lettersGroupMoving, logo_s, QPointF(300, 150));
+ addGraphicsItemPosAnimation(lettersGroupMoving, logo_u, QPointF(350, 150));
+ addGraphicsItemPosAnimation(lettersGroupMoving, logo_b, QPointF(400, 120));
+ addGraphicsItemPosAnimation(lettersGroupMoving, logo_dash, QPointF(460, 150));
+ addGraphicsItemPosAnimation(lettersGroupMoving, logo_a, QPointF(350, 250));
+ addGraphicsItemPosAnimation(lettersGroupMoving, logo_t, QPointF(400, 250));
+ addGraphicsItemPosAnimation(lettersGroupMoving, logo_t2, QPointF(430, 250));
+ addGraphicsItemPosAnimation(lettersGroupMoving, logo_a2, QPointF(465, 250));
+ addGraphicsItemPosAnimation(lettersGroupMoving, logo_q, QPointF(510, 250));
+ addGraphicsItemPosAnimation(lettersGroupMoving, logo_excl, QPointF(570, 220));
+
+ //creation of the animations for fading out the letters
+ addGraphicsItemFadeoutAnimation(lettersGroupFading, logo_s);
+ addGraphicsItemFadeoutAnimation(lettersGroupFading, logo_u);
+ addGraphicsItemFadeoutAnimation(lettersGroupFading, logo_b);
+ addGraphicsItemFadeoutAnimation(lettersGroupFading, logo_dash);
+ addGraphicsItemFadeoutAnimation(lettersGroupFading, logo_a);
+ addGraphicsItemFadeoutAnimation(lettersGroupFading, logo_t);
+ addGraphicsItemFadeoutAnimation(lettersGroupFading, logo_t2);
+ addGraphicsItemFadeoutAnimation(lettersGroupFading, logo_a2);
+ addGraphicsItemFadeoutAnimation(lettersGroupFading, logo_q);
+ addGraphicsItemFadeoutAnimation(lettersGroupFading, logo_excl);
+ connect(lettersGroupFading, SIGNAL(finished()), this, SLOT(onIntroAnimationFinished()));
+
+ QStateMachine *machine = new QStateMachine(this);
+
+ //This state is when the player is playing
+ PlayState *gameState = new PlayState(this,machine);
+
+ //Final state
+ QFinalState *final = new QFinalState(machine);
+
+ //Animation when the player enter in the game
+ QAnimationState *lettersMovingState = new QAnimationState(machine);
+ lettersMovingState->setAnimation(lettersGroupMoving);
+
+ //Animation when the welcome screen disappear
+ QAnimationState *lettersFadingState = new QAnimationState(machine);
+ lettersFadingState->setAnimation(lettersGroupFading);
+
+ //if new game then we fade out the welcome screen and start playing
+ lettersMovingState->addTransition(newAction, SIGNAL(triggered()),lettersFadingState);
+ lettersFadingState->addTransition(lettersFadingState, SIGNAL(animationFinished()),gameState);
+
+ //New Game is triggered then player start playing
+ gameState->addTransition(newAction, SIGNAL(triggered()),gameState);
+
+ //Wanna quit, then connect to CTRL+Q
+ gameState->addTransition(quitAction, SIGNAL(triggered()),final);
+ lettersMovingState->addTransition(quitAction, SIGNAL(triggered()),final);
+
+ //Welcome screen is the initial state
+ machine->setInitialState(lettersMovingState);
+
+ machine->start();
+
+ //We reach the final state, then we quit
+ connect(machine,SIGNAL(finished()),this, SLOT(onQuitGameTriggered()));
+}
+
+void GraphicsScene::addItem(Bomb *bomb)
+{
+ bombs.insert(bomb);
+ connect(bomb,SIGNAL(bombExecutionFinished()),this, SLOT(onBombExecutionFinished()));
+ QGraphicsScene::addItem(bomb);
+}
+
+void GraphicsScene::addItem(Torpedo *torpedo)
+{
+ torpedos.insert(torpedo);
+ connect(torpedo,SIGNAL(torpedoExecutionFinished()),this, SLOT(onTorpedoExecutionFinished()));
+ QGraphicsScene::addItem(torpedo);
+}
+
+void GraphicsScene::addItem(SubMarine *submarine)
+{
+ submarines.insert(submarine);
+ connect(submarine,SIGNAL(subMarineExecutionFinished()),this, SLOT(onSubMarineExecutionFinished()));
+ QGraphicsScene::addItem(submarine);
+}
+
+void GraphicsScene::addItem(QGraphicsItem *item)
+{
+ QGraphicsScene::addItem(item);
+}
+
+void GraphicsScene::mousePressEvent (QGraphicsSceneMouseEvent * event)
+{
+ event->ignore();
+}
+
+void GraphicsScene::onQuitGameTriggered()
+{
+ qApp->closeAllWindows();
+}
+
+void GraphicsScene::onBombExecutionFinished()
+{
+ Bomb *bomb = qobject_cast<Bomb *>(sender());
+ bombs.remove(bomb);
+ bomb->deleteLater();
+ if (boat)
+ boat->setBombsLaunched(boat->bombsLaunched() - 1);
+}
+
+void GraphicsScene::onTorpedoExecutionFinished()
+{
+ Torpedo *torpedo = qobject_cast<Torpedo *>(sender());
+ torpedos.remove(torpedo);
+ torpedo->deleteLater();
+}
+
+void GraphicsScene::onSubMarineExecutionFinished()
+{
+ SubMarine *submarine = qobject_cast<SubMarine *>(sender());
+ submarines.remove(submarine);
+ if (submarines.count() == 0) {
+ emit allSubMarineDestroyed(submarine->points());
+ } else {
+ emit subMarineDestroyed(submarine->points());
+ }
+ submarine->deleteLater();
+}
+
+int GraphicsScene::remainingSubMarines() const
+{
+ return submarines.count();
+}
+
+void GraphicsScene::clearScene()
+{
+ foreach (SubMarine *sub,submarines) {
+ sub->destroy();
+ sub->deleteLater();
+ }
+
+ foreach (Torpedo *torpedo,torpedos) {
+ torpedo->destroy();
+ torpedo->deleteLater();
+ }
+
+ foreach (Bomb *bomb,bombs) {
+ bomb->destroy();
+ bomb->deleteLater();
+ }
+
+ submarines.clear();
+ bombs.clear();
+ torpedos.clear();
+
+ AnimationManager::self()->unregisterAllAnimations();
+
+ boat->stop();
+ boat->hide();
+}
+
+QGraphicsPixmapItem *GraphicsScene::addWelcomeItem(const QPixmap &pm)
+{
+ QGraphicsPixmapItem *item = addPixmap(pm);
+ welcomeItems << item;
+ return item;
+}
+
+void GraphicsScene::onIntroAnimationFinished()
+{
+ qDeleteAll(welcomeItems);
+ welcomeItems.clear();
+}
+
diff --git a/demos/sub-attaq/graphicsscene.h b/demos/sub-attaq/graphicsscene.h
new file mode 100644
index 0000000..1501db8
--- /dev/null
+++ b/demos/sub-attaq/graphicsscene.h
@@ -0,0 +1,131 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef __GRAPHICSSCENE__H__
+#define __GRAPHICSSCENE__H__
+
+//Qt
+#include <QtGui/QGraphicsScene>
+#include <QtCore/QSet>
+#include <QtCore/QState>
+
+
+class Boat;
+class SubMarine;
+class Torpedo;
+class Bomb;
+class PixmapItem;
+class ProgressItem;
+QT_BEGIN_NAMESPACE
+class QAction;
+QT_END_NAMESPACE
+
+class GraphicsScene : public QGraphicsScene
+{
+Q_OBJECT
+public:
+ enum Mode {
+ Big = 0,
+ Small
+ };
+
+ struct SubmarineDescription {
+ int type;
+ int points;
+ QString name;
+ };
+
+ struct LevelDescription {
+ int id;
+ QString name;
+ QList<QPair<int,int> > submarines;
+ };
+
+ GraphicsScene(int x, int y, int width, int height, Mode mode = Big);
+ qreal sealLevel() const;
+ void setupScene(const QList<QAction *> &actions);
+ void addItem(Bomb *bomb);
+ void addItem(Torpedo *torpedo);
+ void addItem(SubMarine *submarine);
+ void addItem(QGraphicsItem *item);
+ int remainingSubMarines() const;
+ void clearScene();
+ QGraphicsPixmapItem *addWelcomeItem(const QPixmap &pm);
+
+signals:
+ void subMarineDestroyed(int);
+ void allSubMarineDestroyed(int);
+
+protected:
+ void mousePressEvent (QGraphicsSceneMouseEvent * event);
+
+private slots:
+ void onQuitGameTriggered();
+ void onBombExecutionFinished();
+ void onTorpedoExecutionFinished();
+ void onSubMarineExecutionFinished();
+ void onIntroAnimationFinished();
+
+private:
+ Mode mode;
+ PixmapItem *backgroundItem;
+ ProgressItem *progressItem;
+ QAction * newAction;
+ QAction * quitAction;
+ Boat *boat;
+ QSet<SubMarine *> submarines;
+ QSet<Bomb *> bombs;
+ QSet<Torpedo *> torpedos;
+ QVector<QGraphicsPixmapItem *> welcomeItems;
+ QVector<SubmarineDescription> submarinesData;
+ QHash<int, LevelDescription> levelsData;
+
+ friend class PauseState;
+ friend class PlayState;
+ friend class LevelState;
+ friend class LostState;
+ friend class WinState;
+ friend class WinTransition;
+ friend class UpdateScoreTransition;
+};
+
+#endif //__GRAPHICSSCENE__H__
+
diff --git a/demos/sub-attaq/main.cpp b/demos/sub-attaq/main.cpp
new file mode 100644
index 0000000..fc74471
--- /dev/null
+++ b/demos/sub-attaq/main.cpp
@@ -0,0 +1,57 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui>
+
+#include "mainwindow.h"
+
+int main(int argc, char *argv[])
+{
+ QApplication app(argc, argv);
+ Q_INIT_RESOURCE(subattaq);
+
+ qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
+
+ MainWindow w;
+ w.show();
+
+ return app.exec();
+}
diff --git a/demos/sub-attaq/mainwindow.cpp b/demos/sub-attaq/mainwindow.cpp
new file mode 100644
index 0000000..26cfc67
--- /dev/null
+++ b/demos/sub-attaq/mainwindow.cpp
@@ -0,0 +1,97 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//Own
+#include "mainwindow.h"
+#include "graphicsscene.h"
+
+//Qt
+#include <QGraphicsView>
+
+#ifdef QT_NO_OPENGL
+ #include <QtGui/QMenuBar>
+ #include <QtGui/QLayout>
+ #include <QtGui/QApplication>
+#else
+ #include <QtOpenGL/QtOpenGL>
+#endif
+
+MainWindow::MainWindow() : QMainWindow(0)
+{
+ QMenuBar *menuBar = new QMenuBar;
+ QMenu *file = new QMenu(tr("&File"),menuBar);
+
+ QAction *newAction = new QAction(tr("New Game"),file);
+ newAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_N));
+ file->addAction(newAction);
+ QAction *quitAction = new QAction(tr("Quit"),file);
+ quitAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_Q));
+ file->addAction(quitAction);
+
+ menuBar->addMenu(file);
+ setMenuBar(menuBar);
+
+ QStringList list = QApplication::arguments();
+ if (list.contains("-fullscreen")) {
+ scene = new GraphicsScene(0, 0, 750, 400,GraphicsScene::Small);
+ setWindowState(Qt::WindowFullScreen);
+ } else {
+ scene = new GraphicsScene(0, 0, 880, 630);
+ layout()->setSizeConstraint(QLayout::SetFixedSize);
+ }
+
+ view = new QGraphicsView(scene,this);
+ view->setAlignment(Qt::AlignLeft | Qt::AlignTop);
+ QList<QAction *> actions;
+ actions << newAction << quitAction;
+ scene->setupScene(actions);
+#ifndef QT_NO_OPENGL
+ view->setViewport(new QGLWidget(QGLFormat(QGL::SampleBuffers)));
+#endif
+
+ setCentralWidget(view);
+
+}
+
+MainWindow::~MainWindow()
+{
+}
+
diff --git a/demos/sub-attaq/mainwindow.h b/demos/sub-attaq/mainwindow.h
new file mode 100644
index 0000000..434b98c
--- /dev/null
+++ b/demos/sub-attaq/mainwindow.h
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef __MAINWINDOW__H__
+#define __MAINWINDOW__H__
+
+//Qt
+#include <QtGui/QMainWindow>
+class GraphicsScene;
+QT_BEGIN_NAMESPACE
+class QGraphicsView;
+QT_END_NAMESPACE
+
+class MainWindow : public QMainWindow
+{
+Q_OBJECT
+public:
+ MainWindow();
+ ~MainWindow();
+
+private:
+ GraphicsScene *scene;
+ QGraphicsView *view;
+};
+
+#endif //__MAINWINDOW__H__
diff --git a/demos/sub-attaq/pics/big/background.png b/demos/sub-attaq/pics/big/background.png
new file mode 100644
index 0000000..9f58157
--- /dev/null
+++ b/demos/sub-attaq/pics/big/background.png
Binary files differ
diff --git a/demos/sub-attaq/pics/big/boat.png b/demos/sub-attaq/pics/big/boat.png
new file mode 100644
index 0000000..be82dff
--- /dev/null
+++ b/demos/sub-attaq/pics/big/boat.png
Binary files differ
diff --git a/demos/sub-attaq/pics/big/bomb.png b/demos/sub-attaq/pics/big/bomb.png
new file mode 100644
index 0000000..3af5f2f
--- /dev/null
+++ b/demos/sub-attaq/pics/big/bomb.png
Binary files differ
diff --git a/demos/sub-attaq/pics/big/explosion/boat/step1.png b/demos/sub-attaq/pics/big/explosion/boat/step1.png
new file mode 100644
index 0000000..c9fd8b0
--- /dev/null
+++ b/demos/sub-attaq/pics/big/explosion/boat/step1.png
Binary files differ
diff --git a/demos/sub-attaq/pics/big/explosion/boat/step2.png b/demos/sub-attaq/pics/big/explosion/boat/step2.png
new file mode 100644
index 0000000..7528f2d
--- /dev/null
+++ b/demos/sub-attaq/pics/big/explosion/boat/step2.png
Binary files differ
diff --git a/demos/sub-attaq/pics/big/explosion/boat/step3.png b/demos/sub-attaq/pics/big/explosion/boat/step3.png
new file mode 100644
index 0000000..aae9c9c
--- /dev/null
+++ b/demos/sub-attaq/pics/big/explosion/boat/step3.png
Binary files differ
diff --git a/demos/sub-attaq/pics/big/explosion/boat/step4.png b/demos/sub-attaq/pics/big/explosion/boat/step4.png
new file mode 100644
index 0000000..d697c1b
--- /dev/null
+++ b/demos/sub-attaq/pics/big/explosion/boat/step4.png
Binary files differ
diff --git a/demos/sub-attaq/pics/big/explosion/submarine/step1.png b/demos/sub-attaq/pics/big/explosion/submarine/step1.png
new file mode 100644
index 0000000..88ca514
--- /dev/null
+++ b/demos/sub-attaq/pics/big/explosion/submarine/step1.png
Binary files differ
diff --git a/demos/sub-attaq/pics/big/explosion/submarine/step2.png b/demos/sub-attaq/pics/big/explosion/submarine/step2.png
new file mode 100644
index 0000000..524f589
--- /dev/null
+++ b/demos/sub-attaq/pics/big/explosion/submarine/step2.png
Binary files differ
diff --git a/demos/sub-attaq/pics/big/explosion/submarine/step3.png b/demos/sub-attaq/pics/big/explosion/submarine/step3.png
new file mode 100644
index 0000000..2cca1e8
--- /dev/null
+++ b/demos/sub-attaq/pics/big/explosion/submarine/step3.png
Binary files differ
diff --git a/demos/sub-attaq/pics/big/explosion/submarine/step4.png b/demos/sub-attaq/pics/big/explosion/submarine/step4.png
new file mode 100644
index 0000000..82100a8
--- /dev/null
+++ b/demos/sub-attaq/pics/big/explosion/submarine/step4.png
Binary files differ
diff --git a/demos/sub-attaq/pics/big/submarine.png b/demos/sub-attaq/pics/big/submarine.png
new file mode 100644
index 0000000..df435dc
--- /dev/null
+++ b/demos/sub-attaq/pics/big/submarine.png
Binary files differ
diff --git a/demos/sub-attaq/pics/big/surface.png b/demos/sub-attaq/pics/big/surface.png
new file mode 100644
index 0000000..4eba29e
--- /dev/null
+++ b/demos/sub-attaq/pics/big/surface.png
Binary files differ
diff --git a/demos/sub-attaq/pics/big/torpedo.png b/demos/sub-attaq/pics/big/torpedo.png
new file mode 100644
index 0000000..f9c2687
--- /dev/null
+++ b/demos/sub-attaq/pics/big/torpedo.png
Binary files differ
diff --git a/demos/sub-attaq/pics/scalable/background-n810.svg b/demos/sub-attaq/pics/scalable/background-n810.svg
new file mode 100644
index 0000000..ece9f7a
--- /dev/null
+++ b/demos/sub-attaq/pics/scalable/background-n810.svg
@@ -0,0 +1,171 @@
+<?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"
+ version="1.0"
+ width="744.09448"
+ height="1052.3622"
+ id="svg2588"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="background-n810.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <metadata
+ id="metadata28">
+ <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>
+ <sodipodi:namedview
+ inkscape:window-height="1141"
+ inkscape:window-width="1920"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:zoom="1.2399902"
+ inkscape:cx="375"
+ inkscape:cy="461.074"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:current-layer="layer1" />
+ <defs
+ id="defs2590">
+ <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="perspective30" />
+ <linearGradient
+ id="linearGradient3746">
+ <stop
+ id="stop3748"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3750"
+ style="stop-color:#0074b7;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ cx="82.966125"
+ cy="-178.42453"
+ r="526.79456"
+ fx="82.966125"
+ fy="-178.42453"
+ id="radialGradient3880"
+ xlink:href="#linearGradient3746"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4952094,0.2388475,-0.1040669,0.3734391,-208.61982,418.216)" />
+ <linearGradient
+ id="linearGradient3624">
+ <stop
+ id="stop3626"
+ style="stop-color:#3a8daf;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3636"
+ style="stop-color:#252525;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="552.98486"
+ y1="390.56842"
+ x2="549.39465"
+ y2="702.3479"
+ id="linearGradient3630"
+ xlink:href="#linearGradient3624"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.3373776,0,0,1.186038,-986.88716,67.776416)" />
+ <linearGradient
+ id="linearGradient3816">
+ <stop
+ id="stop3818"
+ style="stop-color:#ad8b00;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3820"
+ style="stop-color:#ad8b00;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="573"
+ y1="755.46222"
+ x2="573"
+ y2="700.13464"
+ id="linearGradient3826"
+ xlink:href="#linearGradient3816"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.2561681,-151.5,-34.518664)" />
+ <linearGradient
+ id="linearGradient5097">
+ <stop
+ id="stop5099"
+ style="stop-color:#19a2db;stop-opacity:0"
+ offset="0" />
+ <stop
+ id="stop5109"
+ style="stop-color:#1379a7;stop-opacity:0.49803922"
+ offset="0.30000001" />
+ <stop
+ id="stop5101"
+ style="stop-color:#0e5173;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="590.84674"
+ y1="274.57559"
+ x2="590.84674"
+ y2="334.01376"
+ id="linearGradient5103"
+ xlink:href="#linearGradient5097"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-151.5,156.75229)"
+ spreadMethod="pad" />
+ </defs>
+ <g
+ id="layer1">
+ <rect
+ width="1053.5891"
+ height="206.64989"
+ x="-151.79456"
+ y="330.16019"
+ id="rect3638"
+ style="opacity:1;fill:url(#radialGradient3880);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.1880002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ width="1054.4708"
+ height="364.81519"
+ x="-152.23541"
+ y="533.48895"
+ id="rect3622"
+ style="opacity:1;fill:url(#linearGradient3630);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13464069;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M -152.5,877.11847 C 120.5,865.81296 -202.86309,769.3663 109.5,871.29717 C 172.96247,892.00636 243.5,872.55334 297.5,871.29717 C 351.5,870.041 311.5,859.80335 358.5,876.13354 C 405.5,892.46372 553.5,861.09903 598.5,854.8182 C 643.5,848.53736 756.5,841.79698 795.5,853.10249 C 834.5,864.408 904.5,866.2725 904.5,866.2725 L 901.5,903.95754 L -154.5,902.70137 L -152.5,877.11847 z"
+ id="path3814"
+ style="fill:url(#linearGradient3826);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 902.20121,894.16261 C 632.01828,889.43035 756.73005,860.2801 614.20403,894.1311 C 596.58819,898.315 408.23621,883.21212 400.43291,894.1311 C 376.86263,927.11261 75.265447,868.1243 34.250926,886.79082 C 31.281885,888.14209 12.514878,884.22134 -12.264082,889.72008 C -48.555335,897.77353 -64.717178,885.62471 -103.31472,890.35697 C -141.91229,895.08922 -145.87102,891.93439 -145.87102,891.93439 L -152.79879,903.10131 L 892.3044,902.5755 L 902.20121,894.16261 z"
+ id="path3828"
+ style="fill:#ad8b00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/demos/sub-attaq/pics/scalable/background.svg b/demos/sub-attaq/pics/scalable/background.svg
new file mode 100644
index 0000000..0be2680
--- /dev/null
+++ b/demos/sub-attaq/pics/scalable/background.svg
@@ -0,0 +1,171 @@
+<?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"
+ version="1.0"
+ width="744.09448"
+ height="1052.3622"
+ id="svg2588"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="background.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <metadata
+ id="metadata28">
+ <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>
+ <sodipodi:namedview
+ inkscape:window-height="1141"
+ inkscape:window-width="1920"
+ 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.93884027"
+ inkscape:cx="473.72605"
+ inkscape:cy="538.63678"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:current-layer="layer1" />
+ <defs
+ id="defs2590">
+ <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="perspective30" />
+ <linearGradient
+ id="linearGradient3746">
+ <stop
+ id="stop3748"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3750"
+ style="stop-color:#0074b7;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ cx="82.966125"
+ cy="-178.42453"
+ r="526.79456"
+ fx="82.966125"
+ fy="-178.42453"
+ id="radialGradient3880"
+ xlink:href="#linearGradient3746"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4952094,0.3367191,-0.1040669,0.5264617,-208.61982,282.52272)" />
+ <linearGradient
+ id="linearGradient3624">
+ <stop
+ id="stop3626"
+ style="stop-color:#3a8daf;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3636"
+ style="stop-color:#252525;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="552.98486"
+ y1="390.56842"
+ x2="549.39465"
+ y2="702.3479"
+ id="linearGradient3630"
+ xlink:href="#linearGradient3624"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.3373776,0,0,1.5004634,-986.88716,-154.07447)" />
+ <linearGradient
+ id="linearGradient3816">
+ <stop
+ id="stop3818"
+ style="stop-color:#ad8b00;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3820"
+ style="stop-color:#ad8b00;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="573"
+ y1="755.46222"
+ x2="573"
+ y2="700.13464"
+ id="linearGradient3826"
+ xlink:href="#linearGradient3816"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.6033628,-151.5,-294.0167)" />
+ <linearGradient
+ id="linearGradient5097">
+ <stop
+ id="stop5099"
+ style="stop-color:#19a2db;stop-opacity:0"
+ offset="0" />
+ <stop
+ id="stop5109"
+ style="stop-color:#1379a7;stop-opacity:0.49803922"
+ offset="0.30000001" />
+ <stop
+ id="stop5101"
+ style="stop-color:#0e5173;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="590.84674"
+ y1="274.57559"
+ x2="590.84674"
+ y2="334.01376"
+ id="linearGradient5103"
+ xlink:href="#linearGradient5097"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-151.5,156.75229)"
+ spreadMethod="pad" />
+ </defs>
+ <g
+ id="layer1">
+ <rect
+ width="1053.5891"
+ height="291.32797"
+ x="-151.79456"
+ y="158.38464"
+ id="rect3638"
+ style="opacity:1;fill:url(#radialGradient3880);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.1880002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ width="1054.4708"
+ height="461.52972"
+ x="-152.23541"
+ y="435.10107"
+ id="rect3622"
+ style="opacity:1;fill:url(#linearGradient3630);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13464069;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M -152.5,869.5896 C 120.5,855.15934 -202.86309,732.0556 109.5,862.15934 C 172.96247,888.59238 243.5,863.7627 297.5,862.15934 C 351.5,860.55598 311.5,847.48872 358.5,868.33244 C 405.5,889.17615 553.5,849.14252 598.5,841.12571 C 643.5,833.1089 756.5,824.50553 795.5,838.9358 C 834.5,853.36606 904.5,855.74589 904.5,855.74589 L 901.5,903.84677 L -154.5,902.24341 L -152.5,869.5896 z"
+ id="path3814"
+ style="fill:url(#linearGradient3826);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 902.20121,891.3446 C 632.01828,885.30439 756.73005,848.09724 614.20403,891.30439 C 596.58819,896.64468 408.23621,877.36748 400.43291,891.30439 C 376.86263,933.40172 75.265447,858.10952 34.250926,881.93531 C 31.281885,883.66006 12.514878,878.65564 -12.264082,885.67419 C -48.555335,895.95355 -64.717178,880.4469 -103.31472,886.48711 C -141.91229,892.52732 -145.87102,888.50052 -145.87102,888.50052 L -152.79879,902.75389 L 892.3044,902.08275 L 902.20121,891.3446 z"
+ id="path3828"
+ style="fill:#ad8b00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/demos/sub-attaq/pics/scalable/boat.svg b/demos/sub-attaq/pics/scalable/boat.svg
new file mode 100644
index 0000000..5298821b
--- /dev/null
+++ b/demos/sub-attaq/pics/scalable/boat.svg
@@ -0,0 +1,279 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="1.0"
+ width="744.09448"
+ height="1052.3622"
+ id="svg2584">
+ <defs
+ id="defs2666">
+ <linearGradient
+ x1="542.5"
+ y1="222.59448"
+ x2="559"
+ y2="222.59448"
+ id="linearGradient3387"
+ xlink:href="#linearGradient3746"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-110.6791,190.19124)" />
+ <linearGradient
+ id="linearGradient3167">
+ <stop
+ id="stop3169"
+ style="stop-color:#464646;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3345"
+ style="stop-color:#848788;stop-opacity:1"
+ offset="0.44021741" />
+ <stop
+ id="stop3347"
+ style="stop-color:#9ca0a2;stop-opacity:1"
+ offset="0.56799388" />
+ <stop
+ id="stop3171"
+ style="stop-color:#b5babd;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="474.23065"
+ y1="229.92336"
+ x2="474.1944"
+ y2="218.27365"
+ id="linearGradient3416"
+ xlink:href="#linearGradient3167"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-125.98032,185.95625)" />
+ <linearGradient
+ id="linearGradient3692">
+ <stop
+ id="stop3694"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3696"
+ style="stop-color:#b6b6b6;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="573.5"
+ y1="244.2056"
+ x2="578.25"
+ y2="216.9556"
+ id="linearGradient3972"
+ xlink:href="#linearGradient3692"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-126.5541,188.56624)" />
+ <linearGradient
+ id="linearGradient3438">
+ <stop
+ id="stop3440"
+ style="stop-color:#939393;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3444"
+ style="stop-color:#d6d6d6;stop-opacity:1"
+ offset="0.12354442" />
+ <stop
+ id="stop3446"
+ style="stop-color:#dadada;stop-opacity:1"
+ offset="0.74055624" />
+ <stop
+ id="stop3442"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="660.29303"
+ y1="256.53284"
+ x2="444.79303"
+ y2="255.62085"
+ id="linearGradient3948"
+ xlink:href="#linearGradient3438"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-126.5541,185.56624)" />
+ <linearGradient
+ x1="542.5"
+ y1="222.59448"
+ x2="559"
+ y2="222.59448"
+ id="linearGradient3990"
+ xlink:href="#linearGradient3746"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-132.8041,190.19124)" />
+ <linearGradient
+ id="linearGradient3746">
+ <stop
+ id="stop3748"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3750"
+ style="stop-color:#0074b7;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="542.5"
+ y1="222.59448"
+ x2="559"
+ y2="222.59448"
+ id="linearGradient3994"
+ xlink:href="#linearGradient3746"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-88.054101,190.19124)" />
+ <linearGradient
+ id="linearGradient3428">
+ <stop
+ id="stop3430"
+ style="stop-color:#464646;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3432"
+ style="stop-color:#848788;stop-opacity:1"
+ offset="0.18306103" />
+ <stop
+ id="stop3434"
+ style="stop-color:#9ca0a2;stop-opacity:1"
+ offset="0.66368055" />
+ <stop
+ id="stop3436"
+ style="stop-color:#b5babd;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="592.92798"
+ y1="199.43727"
+ x2="557.05743"
+ y2="196.5448"
+ id="linearGradient3426"
+ xlink:href="#linearGradient3428"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-102.5217,149.09845)" />
+ </defs>
+ <g
+ id="layer1">
+ <g
+ id="boat">
+ <path
+ d="M 296.669,434.15623 C 376.12538,436.50959 448.282,436.46711 542.42304,434.15623 C 542.42304,434.15623 544.22253,425.03531 542.42304,422.57953 C 432.90655,403.86953 296.669,418.12547 296.669,422.57953 L 296.669,434.15623 z"
+ id="path3469"
+ style="fill:#a9a9a9;fill-opacity:1;fill-rule:nonzero;stroke:#484848;stroke-width:3.4975698;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" />
+ <rect
+ width="3.4280596"
+ height="29.611124"
+ x="647.59613"
+ y="173.91156"
+ transform="matrix(0.9327494,0.3605254,-0.3633626,0.9316478,0,0)"
+ id="rect3408"
+ style="opacity:1;fill:#333333;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ width="48.499989"
+ height="8.5"
+ x="318.48221"
+ y="405.82172"
+ transform="matrix(0.9999952,3.0887777e-3,-3.0887777e-3,0.9999952,0,0)"
+ id="rect3376"
+ style="opacity:1;fill:url(#linearGradient3416);fill-opacity:1;fill-rule:nonzero;stroke:#484848;stroke-width:2.99999928;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 382.4459,430.66072 C 382.4459,430.66072 420.85999,388.74829 397.4459,385.66072 L 488.4459,397.66072 L 488.4459,432.66072 L 382.4459,430.66072 z"
+ id="path3952"
+ style="fill:url(#linearGradient3972);fill-opacity:1;fill-rule:evenodd;stroke:#323232;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 301.4459,429.66072 C 301.4459,429.66072 330.46329,468.66072 343.4459,468.66072 C 355.42851,471.91072 507.57644,473.70653 525.4459,465.91072 C 534.58031,461.59104 537.90602,455.58662 539.4459,429.66072 C 473.70193,439.43306 371.2651,439.78219 301.4459,429.66072 z"
+ id="path3938"
+ style="fill:url(#linearGradient3948);fill-opacity:1;fill-rule:evenodd;stroke:#545454;stroke-width:3.0999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 339.44863,416.12222 L 357.69854,416.17859 L 368.1622,427.96097 L 339.41234,427.87217 L 339.44863,416.12222 z"
+ id="rect3378"
+ style="fill:#dedede;fill-opacity:1;fill-rule:nonzero;stroke:#484848;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" />
+ <rect
+ width="13.5"
+ height="17"
+ x="411.19589"
+ y="404.28574"
+ id="rect3974"
+ style="opacity:1;fill:url(#linearGradient3990);fill-opacity:1;fill-rule:nonzero;stroke:#323232;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ width="13.5"
+ height="17"
+ x="455.94589"
+ y="404.28574"
+ id="rect3992"
+ style="opacity:1;fill:url(#linearGradient3994);fill-opacity:1;fill-rule:nonzero;stroke:#323232;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 295.6959,421.91072 C 360.77923,430.41072 446.61257,432.91072 541.9459,421.91072 C 541.9459,421.91072 543.74902,428.6076 541.9459,430.41072 C 432.20839,444.14823 295.6959,433.68104 295.6959,430.41072 L 295.6959,421.91072 z"
+ id="rect2558"
+ style="fill:#dedede;fill-opacity:1;fill-rule:nonzero;stroke:#484848;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" />
+ <rect
+ width="94.427879"
+ height="7.236649"
+ x="437.10614"
+ y="342.2645"
+ transform="matrix(0.9947793,0.1020501,-0.1079723,0.9941539,0,0)"
+ id="rect2569"
+ style="opacity:1;fill:#c1c1c1;fill-opacity:1;fill-rule:nonzero;stroke:#404040;stroke-width:3.0365274;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ width="13.5"
+ height="17"
+ x="433.32089"
+ y="404.28574"
+ id="rect3385"
+ style="opacity:1;fill:url(#linearGradient3387);fill-opacity:1;fill-rule:nonzero;stroke:#323232;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 402.86916,380.21847 L 489.80407,388.85485 L 491.52271,394.54919 L 397.58781,384.91281 L 402.86916,380.21847 z"
+ id="rect3466"
+ style="fill:#dcdcdc;fill-opacity:1;fill-rule:nonzero;stroke:#404040;stroke-width:3.03650045;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" />
+ <rect
+ width="34.5"
+ height="14.5"
+ x="456.4783"
+ y="336.94293"
+ transform="matrix(0.997157,7.5351915e-2,-7.5351915e-2,0.997157,0,0)"
+ id="rect3418"
+ style="opacity:1;fill:url(#linearGradient3426);fill-opacity:1;fill-rule:nonzero;stroke:#494949;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <g
+ transform="matrix(0.9246214,0.3808874,-0.3808874,0.9246214,-13.252851,-40.129692)"
+ id="flag">
+ <rect
+ width="19.75"
+ height="27.75"
+ x="193.34448"
+ y="-709"
+ transform="matrix(0,1,-1,0,0,0)"
+ id="rect3389"
+ style="opacity:1;fill:#b20000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ width="27.25"
+ height="5.75"
+ x="681.5"
+ y="200.59448"
+ id="rect3393"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ width="5.75"
+ height="19.5"
+ x="691.25"
+ y="193.59448"
+ id="rect3395"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ width="27.75"
+ height="2.5"
+ x="681.5"
+ y="202.34448"
+ id="rect3397"
+ style="opacity:1;fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ width="3"
+ height="19.25"
+ x="692.5"
+ y="193.59448"
+ id="rect3399"
+ style="opacity:1;fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/demos/sub-attaq/pics/scalable/bomb.svg b/demos/sub-attaq/pics/scalable/bomb.svg
new file mode 100644
index 0000000..294771a
--- /dev/null
+++ b/demos/sub-attaq/pics/scalable/bomb.svg
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="1.0"
+ width="744.09448"
+ height="1052.3622"
+ id="svg3121">
+ <defs
+ id="defs3123">
+ <radialGradient
+ cx="-135.625"
+ cy="148.71948"
+ r="7.625"
+ fx="-135.625"
+ fy="148.71948"
+ id="radialGradient3439"
+ xlink:href="#linearGradient3366"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="-132.85063"
+ y1="173.6969"
+ x2="-145.3662"
+ y2="177.59828"
+ id="linearGradient3418"
+ xlink:href="#linearGradient3366"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2134297,-0.5943658,0.6658882,-0.2391126,-274.53441,123.00067)" />
+ <linearGradient
+ x1="-141.85466"
+ y1="181.49153"
+ x2="-144.95044"
+ y2="175.90179"
+ id="linearGradient3414"
+ xlink:href="#linearGradient3366"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2134297,-0.5943658,-0.6658882,-0.2391126,-15.893355,122.67824)" />
+ <linearGradient
+ x1="-149.5"
+ y1="177.59448"
+ x2="-145.7928"
+ y2="180.05936"
+ id="linearGradient3410"
+ xlink:href="#linearGradient3366"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.6315243,0,0,0.7075182,-227.03781,54.321514)" />
+ <linearGradient
+ x1="-140.46242"
+ y1="177.40488"
+ x2="-147.04802"
+ y2="172.66473"
+ id="linearGradient3406"
+ xlink:href="#linearGradient3366"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.6315243,0,0,-0.7075182,-226.40365,274.91611)" />
+ <linearGradient
+ x1="-147.2406"
+ y1="180.95567"
+ x2="-140.01878"
+ y2="175.57777"
+ id="linearGradient3402"
+ xlink:href="#linearGradient3366"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6315243,0,0,-0.7075182,-64.045217,275.07466)" />
+ <linearGradient
+ x1="-146.98956"
+ y1="174.00922"
+ x2="-142.60332"
+ y2="179.38712"
+ id="linearGradient3398"
+ xlink:href="#linearGradient3366"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6315243,0,0,0.7075182,-62.683611,54.187362)" />
+ <linearGradient
+ id="linearGradient3366">
+ <stop
+ id="stop3368"
+ style="stop-color:#bcbcbc;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3370"
+ style="stop-color:#191b1c;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ cx="-208.95004"
+ cy="173.10576"
+ r="31.667252"
+ fx="-208.95004"
+ fy="173.10576"
+ id="radialGradient3364"
+ xlink:href="#linearGradient3366"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <g
+ id="layer1">
+ <g
+ transform="translate(419.4996,488.13454)"
+ id="mine">
+ <path
+ d="M -167.5843,186.54079 A 31.466251,31.466251 0 1 1 -230.5168,186.54079 A 31.466251,31.466251 0 1 1 -167.5843,186.54079 z"
+ transform="matrix(0.6341613,0,0,0.6341613,-18.521242,45.718192)"
+ id="path2586"
+ style="opacity:1;fill:url(#radialGradient3364);fill-opacity:1;stroke:#131313;stroke-width:3.54799318;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M -155.20193,175.4167 C -157.60085,176.6451 -156.78074,184.26068 -156.78074,184.26068 C -156.78074,184.26068 -148.33787,181.58301 -148.57092,178.60053 C -148.74283,176.40051 -153.23774,174.41092 -155.20193,175.4167 z"
+ id="path3382"
+ style="fill:url(#linearGradient3398);fill-opacity:1;fill-rule:evenodd;stroke:#131313;stroke-width:2.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M -156.56354,153.84532 C -158.96246,152.61693 -158.14235,145.00135 -158.14235,145.00135 C -158.14235,145.00135 -149.69948,147.67902 -149.93253,150.66149 C -150.10444,152.86151 -154.59935,154.85111 -156.56354,153.84532 z"
+ id="path3400"
+ style="fill:url(#linearGradient3402);fill-opacity:1;fill-rule:evenodd;stroke:#131313;stroke-width:2.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M -133.88532,153.68678 C -131.48641,152.45838 -132.30652,144.8428 -132.30652,144.8428 C -132.30652,144.8428 -140.74938,147.52047 -140.51633,150.50295 C -140.34442,152.70297 -135.84951,154.69256 -133.88532,153.68678 z"
+ id="path3404"
+ style="fill:url(#linearGradient3406);fill-opacity:1;fill-rule:evenodd;stroke:#131313;stroke-width:2.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M -134.51948,175.55085 C -132.12057,176.77925 -132.94068,184.39483 -132.94068,184.39483 C -132.94068,184.39483 -141.38355,181.71716 -141.15049,178.73469 C -140.97858,176.53467 -136.48367,174.54507 -134.51948,175.55085 z"
+ id="path3408"
+ style="fill:url(#linearGradient3410);fill-opacity:1;fill-rule:evenodd;stroke:#131313;stroke-width:2.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M -161.25709,168.78221 C -163.22395,170.62484 -170.11427,165.85236 -170.11427,165.85236 C -170.11427,165.85236 -164.7408,160.23808 -162.01257,161.46538 C -160.00011,162.37068 -159.64667,167.27352 -161.25709,168.78221 z"
+ id="path3412"
+ style="fill:url(#linearGradient3414);fill-opacity:1;fill-rule:evenodd;stroke:#131313;stroke-width:2.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M -129.17068,169.10464 C -127.20382,170.94727 -120.3135,166.17478 -120.3135,166.17478 C -120.3135,166.17478 -125.68697,160.5605 -128.41519,161.7878 C -130.42766,162.69311 -130.7811,167.59595 -129.17068,169.10464 z"
+ id="path3416"
+ style="fill:url(#linearGradient3418);fill-opacity:1;fill-rule:evenodd;stroke:#131313;stroke-width:2.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M -126,151.21948 A 6.625,6.625 0 1 1 -139.25,151.21948 A 6.625,6.625 0 1 1 -126,151.21948 z"
+ transform="matrix(0.6341613,0,0,0.6341613,-61.039517,68.324922)"
+ id="path3426"
+ style="opacity:1;fill:url(#radialGradient3439);fill-opacity:1;stroke:#131313;stroke-width:3.54799318;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ </g>
+</svg>
diff --git a/demos/sub-attaq/pics/scalable/sand.svg b/demos/sub-attaq/pics/scalable/sand.svg
new file mode 100644
index 0000000..8af11b7
--- /dev/null
+++ b/demos/sub-attaq/pics/scalable/sand.svg
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="1.0"
+ width="744.09448"
+ height="1052.3622"
+ id="svg2596">
+ <defs
+ id="defs2598">
+ <linearGradient
+ id="linearGradient3708">
+ <stop
+ id="stop3710"
+ style="stop-color:#202020;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3712"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="518.26996"
+ y1="497.31476"
+ x2="533.02924"
+ y2="497.31476"
+ id="linearGradient3794"
+ xlink:href="#linearGradient3708"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient3718">
+ <stop
+ id="stop3720"
+ style="stop-color:#bcbcbc;stop-opacity:0.28169015"
+ offset="0" />
+ <stop
+ id="stop3722"
+ style="stop-color:#bcbcbc;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="516.89508"
+ y1="503.50137"
+ x2="516.89508"
+ y2="543.80646"
+ id="linearGradient3792"
+ xlink:href="#linearGradient3718"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9947644,0,0,1.3346457,2.7877039,-166.60153)" />
+ <linearGradient
+ id="linearGradient3692">
+ <stop
+ id="stop3694"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3696"
+ style="stop-color:#b6b6b6;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="506.95975"
+ y1="469.73706"
+ x2="525.41608"
+ y2="469.73706"
+ id="linearGradient3790"
+ xlink:href="#linearGradient3692"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient3816">
+ <stop
+ id="stop3818"
+ style="stop-color:#ad8b00;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3820"
+ style="stop-color:#ad8b00;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="573"
+ y1="755.46222"
+ x2="573"
+ y2="700.13464"
+ id="linearGradient3826"
+ xlink:href="#linearGradient3816"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.6033628,-150.63569,-350.3846)" />
+ </defs>
+ <g
+ id="layer1">
+ <path
+ d="M -151.63569,813.2217 C 121.3643,798.79144 -201.99878,675.6877 110.3643,805.79144 C 173.82677,832.22448 244.3643,807.3948 298.3643,805.79144 C 352.3643,804.18808 312.3643,791.12082 359.3643,811.96454 C 406.3643,832.80825 554.3643,792.77462 599.3643,784.75781 C 644.3643,776.741 757.36426,768.13763 796.36426,782.5679 C 835.36426,796.99816 905.36426,799.37799 905.36426,799.37799 L 902.36426,847.47887 L -153.63569,845.87551 L -151.63569,813.2217 z"
+ id="path3814"
+ style="fill:url(#linearGradient3826);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 908.86426,836.95812 C 635.8643,830.91791 761.87636,793.71076 617.8643,836.91791 C 600.0648,842.2582 409.74894,822.981 401.8643,836.91791 C 378.04825,879.01524 73.306465,803.72304 31.864305,827.54883 C 28.864305,829.27358 9.9016246,824.26916 -15.135695,831.28771 C -51.805335,841.56707 -68.135695,826.06042 -107.1357,832.10063 C -146.1357,838.14084 -150.13569,834.11404 -150.13569,834.11404 L -157.13569,848.36741 L 898.86426,847.69627 L 908.86426,836.95812 z"
+ id="path3828"
+ style="fill:#ad8b00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/demos/sub-attaq/pics/scalable/see.svg b/demos/sub-attaq/pics/scalable/see.svg
new file mode 100644
index 0000000..0666691
--- /dev/null
+++ b/demos/sub-attaq/pics/scalable/see.svg
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="1.0"
+ width="744.09448"
+ height="1052.3622"
+ id="svg2650">
+ <defs
+ id="defs2652">
+ <linearGradient
+ id="linearGradient3624">
+ <stop
+ id="stop3626"
+ style="stop-color:#3a8daf;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3636"
+ style="stop-color:#252525;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="552.98486"
+ y1="390.56842"
+ x2="549.39465"
+ y2="702.3479"
+ id="linearGradient3630"
+ xlink:href="#linearGradient3624"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.3373776,0,0,1.5004634,-996.17287,-279.00679)" />
+ </defs>
+ <g
+ id="layer1">
+ <rect
+ width="1054.4708"
+ height="461.52972"
+ x="-161.52115"
+ y="310.16876"
+ id="rect3622"
+ style="opacity:1;fill:url(#linearGradient3630);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13464069;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/demos/sub-attaq/pics/scalable/sky.svg b/demos/sub-attaq/pics/scalable/sky.svg
new file mode 100644
index 0000000..1546c08
--- /dev/null
+++ b/demos/sub-attaq/pics/scalable/sky.svg
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="1.0"
+ width="744.09448"
+ height="1052.3622"
+ id="svg2721">
+ <defs
+ id="defs2723">
+ <linearGradient
+ id="linearGradient3746">
+ <stop
+ id="stop3748"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3750"
+ style="stop-color:#0074b7;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ cx="82.966125"
+ cy="-178.42453"
+ r="526.79456"
+ fx="82.966125"
+ fy="-178.42453"
+ id="radialGradient3880"
+ xlink:href="#linearGradient3746"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4952094,0.3367191,-0.1040669,0.5264617,-235.04839,425.12197)" />
+ </defs>
+ <g
+ id="layer1">
+ <rect
+ width="1053.5891"
+ height="291.32797"
+ x="-178.22313"
+ y="300.98392"
+ id="rect3638"
+ style="opacity:1;fill:url(#radialGradient3880);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.1880002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/demos/sub-attaq/pics/scalable/sub-attaq.svg b/demos/sub-attaq/pics/scalable/sub-attaq.svg
new file mode 100644
index 0000000..b075179
--- /dev/null
+++ b/demos/sub-attaq/pics/scalable/sub-attaq.svg
@@ -0,0 +1,1473 @@
+<?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="1052.3622"
+ height="744.09448"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docname="sub-attaq.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4">
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3366"
+ id="radialGradient3439"
+ cx="-135.625"
+ cy="148.71948"
+ fx="-135.625"
+ fy="148.71948"
+ r="7.625"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3366"
+ id="linearGradient3418"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2134297,-0.5943658,0.6658882,-0.2391126,-274.53441,123.00067)"
+ x1="-132.85063"
+ y1="173.6969"
+ x2="-145.3662"
+ y2="177.59828" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3366"
+ id="linearGradient3414"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2134297,-0.5943658,-0.6658882,-0.2391126,-15.893355,122.67824)"
+ x1="-141.85466"
+ y1="181.49153"
+ x2="-144.95044"
+ y2="175.90179" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3366"
+ id="linearGradient3410"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.6315243,0,0,0.7075182,-227.03781,54.321514)"
+ x1="-149.5"
+ y1="177.59448"
+ x2="-145.7928"
+ y2="180.05936" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3366"
+ id="linearGradient3406"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.6315243,0,0,-0.7075182,-226.40365,274.91611)"
+ x1="-140.46242"
+ y1="177.40488"
+ x2="-147.04802"
+ y2="172.66473" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3366"
+ id="linearGradient3402"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6315243,0,0,-0.7075182,-64.045217,275.07466)"
+ x1="-147.2406"
+ y1="180.95567"
+ x2="-140.01878"
+ y2="175.57777" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3366"
+ id="linearGradient3398"
+ x1="-146.98956"
+ y1="174.00922"
+ x2="-142.60332"
+ y2="179.38712"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6315243,0,0,0.7075182,-62.683611,54.187362)" />
+ <linearGradient
+ id="linearGradient3366">
+ <stop
+ id="stop3368"
+ offset="0"
+ style="stop-color:#bcbcbc;stop-opacity:1;" />
+ <stop
+ id="stop3370"
+ offset="1"
+ style="stop-color:#191b1c;stop-opacity:1;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3366"
+ id="radialGradient3364"
+ cx="-208.95004"
+ cy="173.10576"
+ fx="-208.95004"
+ fy="173.10576"
+ r="31.667252"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient5097">
+ <stop
+ style="stop-color:#19a2db;stop-opacity:0;"
+ offset="0"
+ id="stop5099" />
+ <stop
+ id="stop5109"
+ offset="0.30000001"
+ style="stop-color:#1379a7;stop-opacity:0.49803922;" />
+ <stop
+ style="stop-color:#0e5173;stop-opacity:1;"
+ offset="1"
+ id="stop5101" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3523"
+ inkscape:collect="always">
+ <stop
+ id="stop3525"
+ offset="0"
+ style="stop-color:#b9b9b9;stop-opacity:1" />
+ <stop
+ id="stop3527"
+ offset="1"
+ style="stop-color:#444444;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3438">
+ <stop
+ style="stop-color:#939393;stop-opacity:1;"
+ offset="0"
+ id="stop3440" />
+ <stop
+ id="stop3444"
+ offset="0.12354442"
+ style="stop-color:#d6d6d6;stop-opacity:1;" />
+ <stop
+ style="stop-color:#dadada;stop-opacity:1;"
+ offset="0.74055624"
+ id="stop3446" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3442" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3428">
+ <stop
+ id="stop3430"
+ offset="0"
+ style="stop-color:#464646;stop-opacity:1;" />
+ <stop
+ style="stop-color:#848788;stop-opacity:1;"
+ offset="0.18306103"
+ id="stop3432" />
+ <stop
+ id="stop3434"
+ offset="0.66368055"
+ style="stop-color:#9ca0a2;stop-opacity:1;" />
+ <stop
+ id="stop3436"
+ offset="1"
+ style="stop-color:#b5babd;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4034">
+ <stop
+ id="stop4036"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.49803922;"
+ offset="0.5"
+ id="stop4038" />
+ <stop
+ id="stop4040"
+ offset="0.63705367"
+ style="stop-color:#ffffff;stop-opacity:0.24705882;" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.12156863;"
+ offset="0.79425853"
+ id="stop4042" />
+ <stop
+ id="stop4044"
+ offset="1"
+ style="stop-color:#a0a0a0;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4016">
+ <stop
+ style="stop-color:#283e6a;stop-opacity:1;"
+ offset="0"
+ id="stop4018" />
+ <stop
+ style="stop-color:#283e6a;stop-opacity:0;"
+ offset="1"
+ id="stop4020" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4004">
+ <stop
+ style="stop-color:#dbdbdb;stop-opacity:1;"
+ offset="0"
+ id="stop4010" />
+ <stop
+ style="stop-color:#c4c9cb;stop-opacity:1;"
+ offset="1"
+ id="stop4012" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3998">
+ <stop
+ id="stop4000"
+ offset="0"
+ style="stop-color:#adadad;stop-opacity:1;" />
+ <stop
+ id="stop4002"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3864">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3866" />
+ <stop
+ id="stop4028"
+ offset="0.5"
+ style="stop-color:#ffffff;stop-opacity:0.49803922;" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.24705882;"
+ offset="0.75"
+ id="stop4030" />
+ <stop
+ id="stop4032"
+ offset="0.875"
+ style="stop-color:#ffffff;stop-opacity:0.12156863;" />
+ <stop
+ style="stop-color:#a0a0a0;stop-opacity:1;"
+ offset="1"
+ id="stop3868" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3816">
+ <stop
+ style="stop-color:#ad8b00;stop-opacity:1;"
+ offset="0"
+ id="stop3818" />
+ <stop
+ style="stop-color:#ad8b00;stop-opacity:0;"
+ offset="1"
+ id="stop3820" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3746">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3748" />
+ <stop
+ style="stop-color:#0074b7;stop-opacity:1;"
+ offset="1"
+ id="stop3750" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3718">
+ <stop
+ style="stop-color:#bcbcbc;stop-opacity:0.28169015;"
+ offset="0"
+ id="stop3720" />
+ <stop
+ style="stop-color:#bcbcbc;stop-opacity:0;"
+ offset="1"
+ id="stop3722" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3708">
+ <stop
+ style="stop-color:#202020;stop-opacity:1;"
+ offset="0"
+ id="stop3710" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3712" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3692">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3694" />
+ <stop
+ style="stop-color:#b6b6b6;stop-opacity:1;"
+ offset="1"
+ id="stop3696" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3656">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3658" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3660" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3624">
+ <stop
+ style="stop-color:#3a8daf;stop-opacity:1;"
+ offset="0"
+ id="stop3626" />
+ <stop
+ id="stop3636"
+ offset="1"
+ style="stop-color:#252525;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3532">
+ <stop
+ id="stop3534"
+ offset="0"
+ style="stop-color:#545454;stop-opacity:1;" />
+ <stop
+ style="stop-color:#848788;stop-opacity:1;"
+ offset="0.44021741"
+ id="stop3536" />
+ <stop
+ id="stop3538"
+ offset="0.56799388"
+ style="stop-color:#9ca0a2;stop-opacity:1;" />
+ <stop
+ id="stop3540"
+ offset="1"
+ style="stop-color:#565d60;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3345">
+ <stop
+ id="stop3348"
+ offset="0"
+ style="stop-color:#898989;stop-opacity:1;" />
+ <stop
+ style="stop-color:#9ea1a2;stop-opacity:1;"
+ offset="0.44021741"
+ id="stop3350" />
+ <stop
+ id="stop3352"
+ offset="0.56799388"
+ style="stop-color:#bbbdbf;stop-opacity:1;" />
+ <stop
+ id="stop3354"
+ offset="1"
+ style="stop-color:#f0f1f2;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3227">
+ <stop
+ style="stop-color:#444444;stop-opacity:1;"
+ offset="0"
+ id="stop3229" />
+ <stop
+ style="stop-color:#b0b0b0;stop-opacity:1;"
+ offset="1"
+ id="stop3232" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3435">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3437" />
+ <stop
+ style="stop-color:#c0c0c0;stop-opacity:0;"
+ offset="1"
+ id="stop3439" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3421">
+ <stop
+ style="stop-color:#444444;stop-opacity:1;"
+ offset="0"
+ id="stop3423" />
+ <stop
+ style="stop-color:#444444;stop-opacity:0;"
+ offset="1"
+ id="stop3425" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3293">
+ <stop
+ style="stop-color:#c4b434;stop-opacity:1;"
+ offset="0"
+ id="stop3295" />
+ <stop
+ style="stop-color:#9b5500;stop-opacity:1;"
+ offset="1"
+ id="stop3297" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3229">
+ <stop
+ style="stop-color:#125a7a;stop-opacity:1;"
+ offset="0"
+ id="stop3231" />
+ <stop
+ style="stop-color:#308fc0;stop-opacity:1;"
+ offset="1"
+ id="stop3233" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3219">
+ <stop
+ id="stop3221"
+ offset="0"
+ style="stop-color:#a55b00;stop-opacity:1;" />
+ <stop
+ id="stop3223"
+ offset="1"
+ style="stop-color:#f4e45e;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3189">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3191" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3193" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3167">
+ <stop
+ style="stop-color:#464646;stop-opacity:1;"
+ offset="0"
+ id="stop3169" />
+ <stop
+ id="stop3345"
+ offset="0.44021741"
+ style="stop-color:#848788;stop-opacity:1;" />
+ <stop
+ style="stop-color:#9ca0a2;stop-opacity:1;"
+ offset="0.56799388"
+ id="stop3347" />
+ <stop
+ style="stop-color:#b5babd;stop-opacity:1;"
+ offset="1"
+ id="stop3171" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3167"
+ id="linearGradient3175"
+ x1="443.95602"
+ y1="315.31854"
+ x2="443.95602"
+ y2="247.85609"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4908502,0,0,0.4579593,350.98557,542.12189)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3219"
+ id="linearGradient3253"
+ gradientUnits="userSpaceOnUse"
+ x1="325.57214"
+ y1="280.13632"
+ x2="312.84424"
+ y2="257.60013" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3229"
+ id="linearGradient3255"
+ gradientUnits="userSpaceOnUse"
+ x1="310.01578"
+ y1="255.47881"
+ x2="325.92572"
+ y2="280.13632" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3219"
+ id="linearGradient3321"
+ gradientUnits="userSpaceOnUse"
+ x1="325.57214"
+ y1="280.13632"
+ x2="312.84424"
+ y2="257.60013" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3229"
+ id="linearGradient3323"
+ gradientUnits="userSpaceOnUse"
+ x1="310.01578"
+ y1="255.47881"
+ x2="325.92572"
+ y2="280.13632" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3219"
+ id="linearGradient3331"
+ gradientUnits="userSpaceOnUse"
+ x1="325.57214"
+ y1="280.13632"
+ x2="312.84424"
+ y2="257.60013" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3229"
+ id="linearGradient3333"
+ gradientUnits="userSpaceOnUse"
+ x1="310.01578"
+ y1="255.47881"
+ x2="325.92572"
+ y2="280.13632" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3293"
+ id="linearGradient3343"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3292883,0,0,1.10796,1.5038593,-24.232315)"
+ x1="359.5589"
+ y1="258.84247"
+ x2="370.88239"
+ y2="258.84247" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3219"
+ id="linearGradient3365"
+ gradientUnits="userSpaceOnUse"
+ x1="325.57214"
+ y1="280.13632"
+ x2="312.84424"
+ y2="257.60013" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3229"
+ id="linearGradient3367"
+ gradientUnits="userSpaceOnUse"
+ x1="310.01578"
+ y1="255.47881"
+ x2="325.92572"
+ y2="280.13632" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3219"
+ id="linearGradient3369"
+ gradientUnits="userSpaceOnUse"
+ x1="325.57214"
+ y1="280.13632"
+ x2="312.84424"
+ y2="257.60013" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3229"
+ id="linearGradient3371"
+ gradientUnits="userSpaceOnUse"
+ x1="310.01578"
+ y1="255.47881"
+ x2="325.92572"
+ y2="280.13632" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3219"
+ id="linearGradient3379"
+ gradientUnits="userSpaceOnUse"
+ x1="325.57214"
+ y1="280.13632"
+ x2="312.84424"
+ y2="257.60013" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3229"
+ id="linearGradient3381"
+ gradientUnits="userSpaceOnUse"
+ x1="310.01578"
+ y1="255.47881"
+ x2="325.92572"
+ y2="280.13632" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3293"
+ id="linearGradient3385"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3267302,0,0,1.1332782,-1.5786343,-29.194748)"
+ x1="371.79858"
+ y1="258.84247"
+ x2="364.49646"
+ y2="258.84247" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3293"
+ id="linearGradient3401"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.9807835,0,0,1.1280701,-361.45126,-28.553769)"
+ x1="371.79858"
+ y1="258.84247"
+ x2="364.49646"
+ y2="258.84247" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3421"
+ id="radialGradient3431"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.1862613,0,0,0.3638703,-186.86143,179.02055)"
+ cx="432.3343"
+ cy="233.80295"
+ fx="432.3343"
+ fy="233.80295"
+ r="59.056834" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3435"
+ id="radialGradient3441"
+ cx="290.5"
+ cy="244.34448"
+ fx="290.5"
+ fy="244.34448"
+ r="37.5"
+ gradientTransform="matrix(0.8202102,0.8202102,-0.7960458,0.7960458,246.73838,-189.686)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3345"
+ id="linearGradient3311"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.466978,0,0,0.4500435,352.00841,540.25044)"
+ x1="510.99884"
+ y1="161.99408"
+ x2="396.48914"
+ y2="161.99408" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3421"
+ id="radialGradient3339"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4181493,0,0,0.1282619,386.09461,620.15777)"
+ cx="432.3343"
+ cy="233.80295"
+ fx="432.3343"
+ fy="233.80295"
+ r="59.056834" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3219"
+ id="linearGradient3434"
+ gradientUnits="userSpaceOnUse"
+ x1="325.57214"
+ y1="280.13632"
+ x2="312.84424"
+ y2="257.60013" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3229"
+ id="linearGradient3436"
+ gradientUnits="userSpaceOnUse"
+ x1="310.01578"
+ y1="255.47881"
+ x2="325.92572"
+ y2="280.13632" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3532"
+ id="linearGradient3520"
+ x1="525"
+ y1="371.09448"
+ x2="525"
+ y2="395.09448"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.5865192,0,0,0.2518015,339.73218,572.99479)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3624"
+ id="linearGradient3630"
+ x1="552.98486"
+ y1="390.56842"
+ x2="549.39465"
+ y2="702.3479"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.3373776,0,0,1.5004634,-835.38716,-310.82676)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3656"
+ id="radialGradient3662"
+ cx="656.19507"
+ cy="534.45917"
+ fx="656.19507"
+ fy="534.45917"
+ r="13.227922"
+ gradientTransform="matrix(1,0,0,1.2672781,0,-144.63884)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3656"
+ id="radialGradient3668"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.2672781,0,-144.63884)"
+ cx="656.19507"
+ cy="534.45917"
+ fx="656.19507"
+ fy="534.45917"
+ r="13.227922" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3656"
+ id="radialGradient3672"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.2672781,0,-144.63884)"
+ cx="656.19507"
+ cy="534.45917"
+ fx="656.19507"
+ fy="534.45917"
+ r="13.227922" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3656"
+ id="radialGradient3676"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.2672781,0,-144.63884)"
+ cx="656.19507"
+ cy="534.45917"
+ fx="656.19507"
+ fy="534.45917"
+ r="13.227922" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3692"
+ id="linearGradient3772"
+ gradientUnits="userSpaceOnUse"
+ x1="506.95975"
+ y1="469.73706"
+ x2="525.41608"
+ y2="469.73706" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3718"
+ id="linearGradient3774"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9947644,0,0,1.3346457,2.7877039,-166.60153)"
+ x1="516.89508"
+ y1="503.50137"
+ x2="516.89508"
+ y2="543.80646" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3708"
+ id="linearGradient3776"
+ gradientUnits="userSpaceOnUse"
+ x1="518.26993"
+ y1="497.31477"
+ x2="533.02923"
+ y2="497.31477" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3692"
+ id="linearGradient3790"
+ gradientUnits="userSpaceOnUse"
+ x1="506.95975"
+ y1="469.73706"
+ x2="525.41608"
+ y2="469.73706" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3718"
+ id="linearGradient3792"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9947644,0,0,1.3346457,2.7877039,-166.60153)"
+ x1="516.89508"
+ y1="503.50137"
+ x2="516.89508"
+ y2="543.80646" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3708"
+ id="linearGradient3794"
+ gradientUnits="userSpaceOnUse"
+ x1="518.26993"
+ y1="497.31477"
+ x2="533.02923"
+ y2="497.31477" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3656"
+ id="radialGradient3804"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.2672781,0,-144.63884)"
+ cx="656.19507"
+ cy="534.45917"
+ fx="656.19507"
+ fy="534.45917"
+ r="13.227922" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3656"
+ id="radialGradient3808"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.2672781,0,-144.63884)"
+ cx="656.19507"
+ cy="534.45917"
+ fx="656.19507"
+ fy="534.45917"
+ r="13.227922" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3227"
+ id="linearGradient3812"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.1223608,0,0,0.3849769,-17.516054,565.40983)"
+ x1="543.5"
+ y1="205.19257"
+ x2="587.52001"
+ y2="205.19257" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3816"
+ id="linearGradient3826"
+ x1="573"
+ y1="755.46222"
+ x2="573"
+ y2="700.13464"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.6033628,0,-450.76899)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3864"
+ id="radialGradient3874"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.9674693,0.8647541,-0.8726553,1.0212484,-15.308759,-74.232772)"
+ cx="94.273849"
+ cy="89.893486"
+ fx="94.273849"
+ fy="89.893486"
+ r="74.397521" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3746"
+ id="radialGradient3880"
+ cx="82.966125"
+ cy="-178.42453"
+ fx="82.966125"
+ fy="-178.42453"
+ r="526.79456"
+ gradientTransform="matrix(1.4952094,0.3367191,-0.1040669,0.5264617,-57.119818,125.77043)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3438"
+ id="linearGradient3948"
+ x1="660.29303"
+ y1="256.53284"
+ x2="444.79303"
+ y2="255.62085"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,32.526912)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3692"
+ id="linearGradient3972"
+ x1="573.5"
+ y1="244.2056"
+ x2="578.25"
+ y2="216.9556"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,35.526912)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3746"
+ id="linearGradient3990"
+ x1="542.5"
+ y1="222.59448"
+ x2="559"
+ y2="222.59448"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-6.25,37.151912)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3746"
+ id="linearGradient3994"
+ gradientUnits="userSpaceOnUse"
+ x1="542.5"
+ y1="222.59448"
+ x2="559"
+ y2="222.59448"
+ gradientTransform="translate(38.5,37.151912)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4016"
+ id="linearGradient4022"
+ x1="639"
+ y1="262.09448"
+ x2="667"
+ y2="262.09448"
+ gradientUnits="userSpaceOnUse" />
+ <inkscape:perspective
+ id="perspective2578"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3746"
+ id="linearGradient3387"
+ gradientUnits="userSpaceOnUse"
+ x1="542.5"
+ y1="222.59448"
+ x2="559"
+ y2="222.59448"
+ gradientTransform="translate(15.875,37.151912)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3167"
+ id="linearGradient3416"
+ x1="474.23065"
+ y1="229.92336"
+ x2="474.1944"
+ y2="218.27365"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0.1004684,32.526757)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3428"
+ id="linearGradient3426"
+ x1="592.92798"
+ y1="199.43727"
+ x2="557.05743"
+ y2="196.5448"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(12.140805,-13.041887)" />
+ <filter
+ inkscape:collect="always"
+ id="filter3507">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="3.0523171"
+ id="feGaussianBlur3509" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3523"
+ id="linearGradient3521"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,-0.7291751,0,521.83983)"
+ x1="562.55634"
+ y1="285.89896"
+ x2="562.55634"
+ y2="244.09448" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5097"
+ id="linearGradient5103"
+ x1="590.84674"
+ y1="274.57559"
+ x2="590.84674"
+ y2="334.01376"
+ gradientUnits="userSpaceOnUse"
+ spreadMethod="pad" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3864"
+ id="radialGradient5107"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.9674693,0.8647541,-0.8726553,1.0212484,-15.308759,-74.232772)"
+ cx="94.273849"
+ cy="89.893486"
+ fx="94.273849"
+ fy="89.893486"
+ r="74.397521" />
+ </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.70710678"
+ inkscape:cx="532.91407"
+ inkscape:cy="457.84365"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1674"
+ inkscape:window-height="1000"
+ inkscape:window-x="2"
+ inkscape:window-y="14"
+ showguides="false" />
+ <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">
+ <rect
+ style="opacity:1;fill:url(#radialGradient3880);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.1880002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3638"
+ width="1053.5891"
+ height="291.32797"
+ x="-0.29455566"
+ y="1.6323624" />
+ <path
+ style="fill:url(#radialGradient3874);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter3507)"
+ d="M 158.37853,75.817898 C 130.95894,49.483192 82.14552,74.615971 85.85382,95.15981 C 49.691853,94.8009 50.214842,139.36083 83.29101,132.16343 C 144.66465,163.16454 159.26268,129.80212 164.6863,136.51386 C 225.60448,157.97672 246.34362,130.65438 265.24417,127.0714 C 294.43981,137.91859 337.16986,121.78798 297.03636,102.77604 C 331.73096,64.597047 277.96882,60.229366 253.07028,70.400868 C 191.09597,33.610112 168.89234,63.292037 158.37853,75.817898 z"
+ id="path3872"
+ sodipodi:nodetypes="cccccccc"
+ transform="matrix(1.5062893,0,0,1.1720951,618.04001,132.36768)" />
+ <rect
+ style="opacity:1;fill:url(#linearGradient3630);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.13464069;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3622"
+ width="1054.4708"
+ height="461.52972"
+ x="-0.7354126"
+ y="278.34879" />
+ <path
+ style="fill:url(#linearGradient3826);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M -0.99999999,712.83731 C 272,698.40705 -51.363087,575.30331 261,705.40705 C 324.46247,731.84009 395,707.01041 449,705.40705 C 503,703.80369 463,690.73643 510,711.58015 C 557,732.42386 705,692.39023 750,684.37342 C 795,676.35661 908,667.75324 947,682.18351 C 986,696.61377 1056,698.9936 1056,698.9936 L 1053,747.09448 L -3,745.49112 L -0.99999999,712.83731 z"
+ id="path3814"
+ sodipodi:nodetypes="cssssscccc" />
+ <rect
+ style="opacity:1;fill:url(#linearGradient3520);fill-opacity:1;fill-rule:nonzero;stroke:#1b1e1f;stroke-width:0.56879884;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3512"
+ width="10.557344"
+ height="6.0432386"
+ x="642.3761"
+ y="666.43695" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#path2455"
+ id="use3258"
+ transform="matrix(0.869168,0,0,-0.869168,81.98751,1246.5374)"
+ width="1052.3622"
+ height="744.09448" />
+ <path
+ style="fill:url(#linearGradient3812);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.77744257;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 593.04822,651.68104 C 593.04822,651.68104 653.65569,615.49321 639.065,637.05192 C 624.47431,658.61061 624.47431,658.61061 624.47431,658.61061 L 593.04822,651.68104 z"
+ id="path2455" />
+ <path
+ style="fill:url(#linearGradient3175);fill-opacity:1;fill-rule:evenodd;stroke:#393939;stroke-width:1.90693891;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 485.26939,643.71814 C 443.15507,651.66437 458.5319,680.53556 502.21486,686.27814 C 551.68229,692.78115 568.45042,691.0115 605.34827,686.27814 C 657.60843,679.57406 657.68143,651.78445 605.34827,643.25553 C 553.98131,634.88408 516.10913,637.89923 485.26939,643.71814 z"
+ id="path2385"
+ sodipodi:nodetypes="cssss" />
+ <path
+ style="fill:url(#radialGradient3339);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 542.18031,648.1112 C 548.56327,665.42741 608.42397,656.72745 586.93551,642.57104 C 586.93551,642.57104 543.33293,648.61096 542.18031,648.1112 z"
+ id="path3403"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:url(#linearGradient3311);fill-opacity:1;fill-rule:evenodd;stroke:#2d2d2d;stroke-width:2.07042313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 537.39402,641.90906 C 537.39402,656.7605 583.62247,656.30589 583.62247,641.45445 L 583.62247,636.06071 C 583.62247,621.21003 537.39402,613.87461 537.39402,628.72529 L 537.39402,641.90906 z"
+ id="path3291"
+ sodipodi:nodetypes="cssss" />
+ <g
+ id="g3235"
+ transform="matrix(1.4016868,0,0,1.1319742,112.22001,-99.678822)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient3441);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.227;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path3433"
+ sodipodi:cx="303.5"
+ sodipodi:cy="263.09448"
+ sodipodi:rx="37.5"
+ sodipodi:ry="40"
+ d="M 341,263.09448 A 37.5,40 0 1 1 266,263.09448 A 37.5,40 0 1 1 341,263.09448 z"
+ transform="matrix(0.692163,0,1.4106583e-2,0.289185,275.31394,582.37251)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#444444;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.06500006;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path3458"
+ sodipodi:cx="369.5"
+ sodipodi:cy="316.09448"
+ sodipodi:rx="27.5"
+ sodipodi:ry="7"
+ d="M 397,316.09448 A 27.5,7 0 1 1 342,316.09448 A 27.5,7 0 1 1 397,316.09448 z"
+ transform="matrix(0.5642633,0,0,0.5642633,348.03095,450.47113)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#444444;fill-opacity:1;fill-rule:nonzero;stroke:#1b1e1f;stroke-width:4.23126984;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path3510"
+ sodipodi:cx="369.5"
+ sodipodi:cy="316.09448"
+ sodipodi:rx="27.5"
+ sodipodi:ry="7"
+ d="M 397,316.09448 A 27.5,7 0 1 1 342,316.09448 A 27.5,7 0 1 1 397,316.09448 z"
+ transform="matrix(0,0.30778,-0.5642633,0,828.66499,563.5944)" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#path3510"
+ id="use3544"
+ transform="translate(0.5000005,-17.23511)"
+ width="1052.3622"
+ height="744.09448" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#787878;fill-opacity:1;fill-rule:nonzero;stroke:#1b1e1f;stroke-width:2.38492584;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path3584"
+ sodipodi:cx="237.5"
+ sodipodi:cy="366.09448"
+ sodipodi:rx="8.5"
+ sodipodi:ry="8"
+ d="M 246,366.09448 A 8.5,8 0 1 1 229,366.09448 A 8.5,8 0 1 1 246,366.09448 z"
+ transform="matrix(1.7798114,-4.2997512e-2,1.3318941e-2,0.5513151,196.65666,476.1443)" />
+ <path
+ style="fill:#a9a9a9;fill-opacity:1;fill-rule:nonzero;stroke:#484848;stroke-width:3.49756980000000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
+ d="M 423.2231,281.1169 C 502.67948,283.47026 574.8361,283.42778 668.97714,281.1169 C 668.97714,281.1169 670.77663,271.99598 668.97714,269.5402 C 559.46065,250.8302 423.2231,265.08614 423.2231,269.5402 L 423.2231,281.1169 z"
+ id="path3469"
+ sodipodi:nodetypes="cccsc" />
+ <rect
+ style="opacity:1;fill:#333333;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3408"
+ width="3.4280596"
+ height="29.611124"
+ x="709.89148"
+ y="-14.462622"
+ transform="matrix(0.9327494,0.3605254,-0.3633626,0.9316478,0,0)" />
+ <rect
+ style="opacity:1;fill:url(#linearGradient3416);fill-opacity:1;fill-rule:nonzero;stroke:#484848;stroke-width:2.99999928;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3376"
+ width="48.499989"
+ height="8.5"
+ x="444.56302"
+ y="252.39224"
+ transform="matrix(0.9999952,3.0887776e-3,-3.0887776e-3,0.9999952,0,0)" />
+ <path
+ style="fill:url(#linearGradient3972);fill-opacity:1;fill-rule:evenodd;stroke:#323232;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 509,277.62139 C 509,277.62139 547.41409,235.70896 524,232.62139 L 615,244.62139 L 615,279.62139 L 509,277.62139 z"
+ id="path3952"
+ sodipodi:nodetypes="csccc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient3662);fill-opacity:1;fill-rule:nonzero;stroke:#41526b;stroke-width:2.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path3654"
+ sodipodi:cx="656.19507"
+ sodipodi:cy="541.15485"
+ sodipodi:rx="12.727922"
+ sodipodi:ry="16.263456"
+ d="M 668.92299,541.15485 A 12.727922,16.263456 0 1 1 643.46715,541.15485 A 12.727922,16.263456 0 1 1 668.92299,541.15485 z"
+ transform="matrix(0.5187874,0,0,0.3968421,374.8524,387.30025)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient3668);fill-opacity:1;fill-rule:nonzero;stroke:#41526b;stroke-width:2.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path3666"
+ sodipodi:cx="656.19507"
+ sodipodi:cy="541.15485"
+ sodipodi:rx="12.727922"
+ sodipodi:ry="16.263456"
+ d="M 668.92299,541.15485 A 12.727922,16.263456 0 1 1 643.46715,541.15485 A 12.727922,16.263456 0 1 1 668.92299,541.15485 z"
+ transform="matrix(0.5734968,0,0,0.4386917,316.52295,315.62837)" />
+ <path
+ transform="matrix(0.8598866,0,0,0.5637407,192.52282,220.77351)"
+ d="M 668.92299,541.15485 A 12.727922,16.263456 0 1 1 643.46715,541.15485 A 12.727922,16.263456 0 1 1 668.92299,541.15485 z"
+ sodipodi:ry="16.263456"
+ sodipodi:rx="12.727922"
+ sodipodi:cy="541.15485"
+ sodipodi:cx="656.19507"
+ id="path3670"
+ style="opacity:1;fill:url(#radialGradient3672);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.90000010000000020;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient3676);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.90000010000000020;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path3674"
+ sodipodi:cx="656.19507"
+ sodipodi:cy="541.15485"
+ sodipodi:rx="12.727922"
+ sodipodi:ry="16.263456"
+ d="M 668.92299,541.15485 A 12.727922,16.263456 0 1 1 643.46715,541.15485 A 12.727922,16.263456 0 1 1 668.92299,541.15485 z"
+ transform="matrix(0.7435991,0,0,0.6264519,225.8301,127.83701)" />
+ <g
+ id="g3759"
+ transform="matrix(0.8830571,0,0,0.8830571,104.83144,103.2985)">
+ <path
+ d="M 523.9661,469.73706 A 7.7781744,34.648232 0 1 1 508.40975,469.73706 A 7.7781744,34.648232 0 1 1 523.9661,469.73706 z"
+ sodipodi:ry="34.648232"
+ sodipodi:rx="7.7781744"
+ sodipodi:cy="469.73706"
+ sodipodi:cx="516.18793"
+ id="path3682"
+ style="opacity:1;fill:url(#linearGradient3772);fill-opacity:1;fill-rule:nonzero;stroke:#272727;stroke-width:2.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <g
+ id="g3754">
+ <rect
+ style="opacity:1;fill:url(#linearGradient3774);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.20000005;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3716"
+ width="33.58757"
+ height="59.927299"
+ x="498.86386"
+ y="497.84454" />
+ <path
+ style="fill:url(#linearGradient3776);fill-opacity:1;fill-rule:evenodd;stroke:#1f1f1f;stroke-width:1.99788344;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 523.35045,482.89424 C 523.35045,482.89424 532.31256,488.20203 532.02344,500.14638 C 531.73431,512.09072 531.73431,511.73417 531.73431,511.73417 C 531.73431,511.73417 520.70627,493.83104 519.26887,499.77636 L 523.35045,482.89424 z"
+ id="path3704"
+ sodipodi:nodetypes="cscsc" />
+ <path
+ sodipodi:nodetypes="cscsc"
+ id="path3706"
+ d="M 508.50327,482.89424 C 508.50327,482.89424 499.54116,488.20203 499.83028,500.14638 C 500.11941,512.09072 500.11941,511.73417 500.11941,511.73417 C 500.11941,511.73417 511.14745,493.83104 512.58485,499.77636 L 508.50327,482.89424 z"
+ style="fill:#bcbcbc;fill-opacity:1;fill-rule:evenodd;stroke:#1f1f1f;stroke-width:1.99788344;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ </g>
+ <g
+ transform="matrix(0.8830571,0,0,0.8830571,192.45885,-66.370546)"
+ id="g3778">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#linearGradient3790);fill-opacity:1;fill-rule:nonzero;stroke:#272727;stroke-width:2.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path3780"
+ sodipodi:cx="516.18793"
+ sodipodi:cy="469.73706"
+ sodipodi:rx="7.7781744"
+ sodipodi:ry="34.648232"
+ d="M 523.9661,469.73706 A 7.7781744,34.648232 0 1 1 508.40975,469.73706 A 7.7781744,34.648232 0 1 1 523.9661,469.73706 z" />
+ <g
+ id="g3782">
+ <rect
+ y="497.84454"
+ x="498.86386"
+ height="59.927299"
+ width="33.58757"
+ id="rect3784"
+ style="opacity:1;fill:url(#linearGradient3792);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.20000005;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cscsc"
+ id="path3786"
+ d="M 523.35045,482.89424 C 523.35045,482.89424 532.31256,488.20203 532.02344,500.14638 C 531.73431,512.09072 531.73431,511.73417 531.73431,511.73417 C 531.73431,511.73417 520.70627,493.83104 519.26887,499.77636 L 523.35045,482.89424 z"
+ style="fill:url(#linearGradient3794);fill-opacity:1;fill-rule:evenodd;stroke:#1f1f1f;stroke-width:1.99788344;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:#bcbcbc;fill-opacity:1;fill-rule:evenodd;stroke:#1f1f1f;stroke-width:1.99788344;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 508.50327,482.89424 C 508.50327,482.89424 499.54116,488.20203 499.83028,500.14638 C 500.11941,512.09072 500.11941,511.73417 500.11941,511.73417 C 500.11941,511.73417 511.14745,493.83104 512.58485,499.77636 L 508.50327,482.89424 z"
+ id="path3788"
+ sodipodi:nodetypes="cscsc" />
+ </g>
+ </g>
+ <path
+ transform="matrix(0.4292897,0,0,0.3283816,384.32775,481.20689)"
+ d="M 668.92299,541.15485 A 12.727922,16.263456 0 1 1 643.46715,541.15485 A 12.727922,16.263456 0 1 1 668.92299,541.15485 z"
+ sodipodi:ry="16.263456"
+ sodipodi:rx="12.727922"
+ sodipodi:cy="541.15485"
+ sodipodi:cx="656.19507"
+ id="path3802"
+ style="opacity:1;fill:url(#radialGradient3804);fill-opacity:1;fill-rule:nonzero;stroke:#41526b;stroke-width:2.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient3808);fill-opacity:1;fill-rule:nonzero;stroke:#41526b;stroke-width:2.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path3806"
+ sodipodi:cx="656.19507"
+ sodipodi:cy="541.15485"
+ sodipodi:rx="12.727922"
+ sodipodi:ry="16.263456"
+ d="M 668.92299,541.15485 A 12.727922,16.263456 0 1 1 643.46715,541.15485 A 12.727922,16.263456 0 1 1 668.92299,541.15485 z"
+ transform="matrix(0.5842998,0,0,0.4469553,299.7804,369.91514)" />
+ <path
+ style="fill:#ad8b00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 1059.5,736.57373 C 786.5,730.53352 912.51207,693.32637 768.5,736.53352 C 750.7005,741.87381 560.38464,722.59661 552.5,736.53352 C 528.68395,778.63085 223.94216,703.33865 182.5,727.16444 C 179.5,728.88919 160.53732,723.88477 135.5,730.90332 C 98.830356,741.18268 82.5,725.67603 43.5,731.71624 C 4.5,737.75645 0.5,733.72965 0.5,733.72965 L -6.5,747.98302 L 1049.5,747.31188 L 1059.5,736.57373 z"
+ id="path3828"
+ sodipodi:nodetypes="cssssscccc" />
+ <rect
+ style="opacity:1;fill:url(#linearGradient5103);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3448"
+ width="1053.5891"
+ height="67.882248"
+ x="-0.29455566"
+ y="274.57559" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path3519"
+ d="M 428,343.85222 C 428,343.85222 457.01739,315.41439 470,315.41439 C 481.98261,313.04457 634.13054,311.73511 652,317.41962 C 661.13441,320.56943 664.46012,324.9477 666,343.85222 C 600.25603,336.72647 497.8192,336.4719 428,343.85222 z"
+ style="opacity:0.43933058;fill:url(#linearGradient3521);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.0999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:url(#linearGradient3948);fill-opacity:1;fill-rule:evenodd;stroke:#545454;stroke-width:3.0999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 428,276.62139 C 428,276.62139 457.01739,315.62139 470,315.62139 C 481.98261,318.87139 634.13054,320.6672 652,312.87139 C 661.13441,308.55171 664.46012,302.54729 666,276.62139 C 600.25603,286.39373 497.8192,286.74286 428,276.62139 z"
+ id="path3938"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:#dedede;fill-opacity:1;fill-rule:nonzero;stroke:#484848;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
+ d="M 466.00273,263.08289 L 484.25264,263.13926 L 494.7163,274.92164 L 465.96644,274.83284 L 466.00273,263.08289 z"
+ id="rect3378"
+ sodipodi:nodetypes="ccccc" />
+ <rect
+ style="opacity:1;fill:url(#linearGradient3990);fill-opacity:1;fill-rule:nonzero;stroke:#323232;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3974"
+ width="13.5"
+ height="17"
+ x="537.75"
+ y="251.2464"
+ inkscape:transform-center-x="30" />
+ <rect
+ inkscape:transform-center-x="30"
+ y="251.2464"
+ x="582.5"
+ height="17"
+ width="13.5"
+ id="rect3992"
+ style="opacity:1;fill:url(#linearGradient3994);fill-opacity:1;fill-rule:nonzero;stroke:#323232;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:#dedede;fill-opacity:1;fill-rule:nonzero;stroke:#484848;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
+ d="M 422.25,268.87139 C 487.33333,277.37139 573.16667,279.87139 668.5,268.87139 C 668.5,268.87139 670.30312,275.56827 668.5,277.37139 C 558.76249,291.1089 422.25,280.64171 422.25,277.37139 L 422.25,268.87139 z"
+ id="rect2558"
+ sodipodi:nodetypes="cccsc" />
+ <rect
+ style="opacity:1;fill:#c1c1c1;fill-opacity:1;fill-rule:nonzero;stroke:#404040;stroke-width:3.0365274;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2569"
+ width="94.427879"
+ height="7.236649"
+ x="546.39832"
+ y="177.10637"
+ transform="matrix(0.9947793,0.1020501,-0.1079723,0.9941539,0,0)" />
+ <rect
+ inkscape:transform-center-x="30"
+ y="251.2464"
+ x="559.875"
+ height="17"
+ width="13.5"
+ id="rect3385"
+ style="opacity:1;fill:url(#linearGradient3387);fill-opacity:1;fill-rule:nonzero;stroke:#323232;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <g
+ id="g3401"
+ transform="matrix(0.9246214,0.3808874,-0.3808874,0.9246214,113.30125,-193.16902)"
+ inkscape:transform-center-x="17.590385"
+ inkscape:transform-center-y="-15.415449">
+ <rect
+ inkscape:transform-center-y="-43.888889"
+ transform="matrix(0,1,-1,0,0,0)"
+ style="opacity:1;fill:#b20000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3389"
+ width="19.75"
+ height="27.75"
+ x="193.34448"
+ y="-709" />
+ <rect
+ y="200.59448"
+ x="681.5"
+ height="5.75"
+ width="27.25"
+ id="rect3393"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ y="193.59448"
+ x="691.25"
+ height="19.5"
+ width="5.75"
+ id="rect3395"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ y="202.34448"
+ x="681.5"
+ height="2.5"
+ width="27.75"
+ id="rect3397"
+ style="opacity:1;fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ y="193.59448"
+ x="692.5"
+ height="19.25"
+ width="3"
+ id="rect3399"
+ style="opacity:1;fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <path
+ style="fill:#dcdcdc;fill-opacity:1;fill-rule:nonzero;stroke:#404040;stroke-width:3.03650045;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
+ d="M 529.42326,227.17914 L 616.35817,235.81552 L 618.07681,241.50986 L 524.14191,231.87348 L 529.42326,227.17914 z"
+ id="rect3466"
+ sodipodi:nodetypes="ccccc" />
+ <rect
+ style="opacity:1;fill:url(#linearGradient3426);fill-opacity:1;fill-rule:nonzero;stroke:#494949;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3418"
+ width="34.5"
+ height="14.5"
+ x="571.14081"
+ y="174.8026"
+ transform="matrix(0.997157,7.5351915e-2,-7.5351915e-2,0.997157,0,0)"
+ inkscape:transform-center-x="-8"
+ inkscape:transform-center-y="2" />
+ <g
+ id="mine"
+ transform="translate(971.11461,237.62715)"
+ inkscape:label="#g3441">
+ <path
+ transform="matrix(0.6341613,0,0,0.6341613,-18.521242,45.718192)"
+ d="M -167.5843,186.54079 A 31.466251,31.466251 0 1 1 -230.5168,186.54079 A 31.466251,31.466251 0 1 1 -167.5843,186.54079 z"
+ sodipodi:ry="31.466251"
+ sodipodi:rx="31.466251"
+ sodipodi:cy="186.54079"
+ sodipodi:cx="-199.05055"
+ id="path2586"
+ style="opacity:1;fill:url(#radialGradient3364);fill-opacity:1;stroke:#131313;stroke-width:3.54799318;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="ccss"
+ id="path3382"
+ d="M -155.20193,175.4167 C -157.60085,176.6451 -156.78074,184.26068 -156.78074,184.26068 C -156.78074,184.26068 -148.33787,181.58301 -148.57092,178.60053 C -148.74283,176.40051 -153.23774,174.41092 -155.20193,175.4167 z"
+ style="fill:url(#linearGradient3398);fill-opacity:1;fill-rule:evenodd;stroke:#131313;stroke-width:2.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccss"
+ id="path3400"
+ d="M -156.56354,153.84532 C -158.96246,152.61693 -158.14235,145.00135 -158.14235,145.00135 C -158.14235,145.00135 -149.69948,147.67902 -149.93253,150.66149 C -150.10444,152.86151 -154.59935,154.85111 -156.56354,153.84532 z"
+ style="fill:url(#linearGradient3402);fill-opacity:1;fill-rule:evenodd;stroke:#131313;stroke-width:2.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccss"
+ id="path3404"
+ d="M -133.88532,153.68678 C -131.48641,152.45838 -132.30652,144.8428 -132.30652,144.8428 C -132.30652,144.8428 -140.74938,147.52047 -140.51633,150.50295 C -140.34442,152.70297 -135.84951,154.69256 -133.88532,153.68678 z"
+ style="fill:url(#linearGradient3406);fill-opacity:1;fill-rule:evenodd;stroke:#131313;stroke-width:2.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccss"
+ id="path3408"
+ d="M -134.51948,175.55085 C -132.12057,176.77925 -132.94068,184.39483 -132.94068,184.39483 C -132.94068,184.39483 -141.38355,181.71716 -141.15049,178.73469 C -140.97858,176.53467 -136.48367,174.54507 -134.51948,175.55085 z"
+ style="fill:url(#linearGradient3410);fill-opacity:1;fill-rule:evenodd;stroke:#131313;stroke-width:2.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccss"
+ id="path3412"
+ d="M -161.25709,168.78221 C -163.22395,170.62484 -170.11427,165.85236 -170.11427,165.85236 C -170.11427,165.85236 -164.7408,160.23808 -162.01257,161.46538 C -160.00011,162.37068 -159.64667,167.27352 -161.25709,168.78221 z"
+ style="fill:url(#linearGradient3414);fill-opacity:1;fill-rule:evenodd;stroke:#131313;stroke-width:2.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccss"
+ id="path3416"
+ d="M -129.17068,169.10464 C -127.20382,170.94727 -120.3135,166.17478 -120.3135,166.17478 C -120.3135,166.17478 -125.68697,160.5605 -128.41519,161.7878 C -130.42766,162.69311 -130.7811,167.59595 -129.17068,169.10464 z"
+ style="fill:url(#linearGradient3418);fill-opacity:1;fill-rule:evenodd;stroke:#131313;stroke-width:2.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ transform="matrix(0.6341613,0,0,0.6341613,-61.039517,68.324922)"
+ d="M -126,151.21948 A 6.625,6.625 0 1 1 -139.25,151.21948 A 6.625,6.625 0 1 1 -126,151.21948 z"
+ sodipodi:ry="6.625"
+ sodipodi:rx="6.625"
+ sodipodi:cy="151.21948"
+ sodipodi:cx="-132.625"
+ id="path3426"
+ style="opacity:1;fill:url(#radialGradient3439);fill-opacity:1;stroke:#131313;stroke-width:3.54799318;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+</svg>
diff --git a/demos/sub-attaq/pics/scalable/submarine.svg b/demos/sub-attaq/pics/scalable/submarine.svg
new file mode 100644
index 0000000..8a0ffdd
--- /dev/null
+++ b/demos/sub-attaq/pics/scalable/submarine.svg
@@ -0,0 +1,214 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="1.0"
+ width="744.09448"
+ height="1052.3622"
+ id="svg2594">
+ <defs
+ id="defs2596">
+ <linearGradient
+ id="linearGradient3345">
+ <stop
+ id="stop3348"
+ style="stop-color:#898989;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3350"
+ style="stop-color:#9ea1a2;stop-opacity:1"
+ offset="0.44021741" />
+ <stop
+ id="stop3352"
+ style="stop-color:#bbbdbf;stop-opacity:1"
+ offset="0.56799388" />
+ <stop
+ id="stop3354"
+ style="stop-color:#f0f1f2;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="510.99884"
+ y1="161.99408"
+ x2="396.48914"
+ y2="161.99408"
+ id="linearGradient3311"
+ xlink:href="#linearGradient3345"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.466978,0,0,0.4500435,231.58508,159.95135)" />
+ <linearGradient
+ id="linearGradient3532">
+ <stop
+ id="stop3534"
+ style="stop-color:#545454;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3536"
+ style="stop-color:#848788;stop-opacity:1"
+ offset="0.44021741" />
+ <stop
+ id="stop3538"
+ style="stop-color:#9ca0a2;stop-opacity:1"
+ offset="0.56799388" />
+ <stop
+ id="stop3540"
+ style="stop-color:#565d60;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="525"
+ y1="371.09448"
+ x2="525"
+ y2="395.09448"
+ id="linearGradient3520"
+ xlink:href="#linearGradient3532"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.5865192,0,0,0.2518015,219.30885,192.6957)" />
+ <linearGradient
+ id="linearGradient3227">
+ <stop
+ id="stop3229"
+ style="stop-color:#444444;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3232"
+ style="stop-color:#b0b0b0;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="543.5"
+ y1="205.19257"
+ x2="587.52002"
+ y2="205.19257"
+ id="linearGradient3812"
+ xlink:href="#linearGradient3227"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.1223608,0,0,0.3849769,-137.93938,185.11074)" />
+ <linearGradient
+ id="linearGradient3167">
+ <stop
+ id="stop3169"
+ style="stop-color:#464646;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3345"
+ style="stop-color:#848788;stop-opacity:1"
+ offset="0.44021741" />
+ <stop
+ id="stop3347"
+ style="stop-color:#9ca0a2;stop-opacity:1"
+ offset="0.56799388" />
+ <stop
+ id="stop3171"
+ style="stop-color:#b5babd;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="443.95602"
+ y1="315.31854"
+ x2="443.95602"
+ y2="247.85609"
+ id="linearGradient3175"
+ xlink:href="#linearGradient3167"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4908502,0,0,0.4579593,230.56224,161.8228)" />
+ <linearGradient
+ id="linearGradient3421">
+ <stop
+ id="stop3423"
+ style="stop-color:#444444;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3425"
+ style="stop-color:#444444;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ cx="432.33429"
+ cy="233.80295"
+ r="59.056835"
+ fx="432.33429"
+ fy="233.80295"
+ id="radialGradient3339"
+ xlink:href="#linearGradient3421"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4181493,0,0,0.1282619,265.67128,239.85868)" />
+ <linearGradient
+ id="linearGradient3435">
+ <stop
+ id="stop3437"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3439"
+ style="stop-color:#c0c0c0;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ cx="290.5"
+ cy="244.34448"
+ r="37.5"
+ fx="290.5"
+ fy="244.34448"
+ id="radialGradient3441"
+ xlink:href="#linearGradient3435"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8202102,0.8202102,-0.7960458,0.7960458,246.73838,-189.686)" />
+ </defs>
+ <g
+ id="submarine">
+ <rect
+ width="10.557344"
+ height="6.0432386"
+ x="521.95276"
+ y="286.13785"
+ id="rect3512"
+ style="opacity:1;fill:url(#linearGradient3520);fill-opacity:1;fill-rule:nonzero;stroke:#1b1e1f;stroke-width:0.56879884;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 472.62489,271.38195 C 472.62489,271.38195 533.23236,235.19412 518.64167,256.75283 C 504.05098,278.31152 504.05098,278.31152 504.05098,278.31152 L 472.62489,271.38195 z"
+ id="path2455"
+ style="fill:url(#linearGradient3812);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.77744257;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 364.84606,263.41905 C 322.73174,271.36528 338.10857,300.23647 381.79153,305.97905 C 431.25896,312.48206 448.02709,310.71241 484.92494,305.97905 C 537.1851,299.27497 537.2581,271.48536 484.92494,262.95644 C 433.55798,254.58499 395.6858,257.60014 364.84606,263.41905 z"
+ id="path2385"
+ style="fill:url(#linearGradient3175);fill-opacity:1;fill-rule:evenodd;stroke:#393939;stroke-width:1.90693891;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 421.75698,267.81211 C 428.13994,285.12832 488.00064,276.42836 466.51218,262.27195 C 466.51218,262.27195 422.9096,268.31187 421.75698,267.81211 z"
+ id="path3403"
+ style="fill:url(#radialGradient3339);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 416.97069,261.60997 C 416.97069,276.46141 463.19914,276.0068 463.19914,261.15536 L 463.19914,255.76162 C 463.19914,240.91094 416.97069,233.57552 416.97069,248.4262 L 416.97069,261.60997 z"
+ id="path3291"
+ style="fill:url(#linearGradient3311);fill-opacity:1;fill-rule:evenodd;stroke:#2d2d2d;stroke-width:2.07042313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 341,263.09448 A 37.5,40 0 1 1 266,263.09448 A 37.5,40 0 1 1 341,263.09448 z"
+ transform="matrix(0.692163,0,1.4106583e-2,0.289185,154.89061,202.07342)"
+ id="path3433"
+ style="opacity:1;fill:url(#radialGradient3441);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.227;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 397,316.09448 A 27.5,7 0 1 1 342,316.09448 A 27.5,7 0 1 1 397,316.09448 z"
+ transform="matrix(0.5642633,0,0,0.5642633,227.60762,70.172035)"
+ id="path3458"
+ style="opacity:1;fill:#444444;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.06500006;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 397,316.09448 A 27.5,7 0 1 1 342,316.09448 A 27.5,7 0 1 1 397,316.09448 z"
+ transform="matrix(0,0.30778,-0.5642633,0,708.24166,183.29531)"
+ id="path3510"
+ style="opacity:1;fill:#444444;fill-opacity:1;fill-rule:nonzero;stroke:#1b1e1f;stroke-width:4.23126984;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <use
+ transform="translate(0.5000044,-17.235115)"
+ id="use3544"
+ x="0"
+ y="0"
+ width="1052.3622"
+ height="744.09448"
+ xlink:href="#path3510" />
+ <path
+ d="M 246,366.09448 A 8.5,8 0 1 1 229,366.09448 A 8.5,8 0 1 1 246,366.09448 z"
+ transform="matrix(1.7798114,-4.2997512e-2,1.3318941e-2,0.5513151,76.233334,95.845205)"
+ id="path3584"
+ style="opacity:1;fill:#787878;fill-opacity:1;fill-rule:nonzero;stroke:#1b1e1f;stroke-width:2.38492584;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/demos/sub-attaq/pics/scalable/surface.svg b/demos/sub-attaq/pics/scalable/surface.svg
new file mode 100644
index 0000000..40ed239
--- /dev/null
+++ b/demos/sub-attaq/pics/scalable/surface.svg
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="1.0"
+ width="744.09448"
+ height="1052.3622"
+ id="svg2685">
+ <defs
+ id="defs2687">
+ <linearGradient
+ id="linearGradient5097">
+ <stop
+ id="stop5099"
+ style="stop-color:#19a2db;stop-opacity:0"
+ offset="0" />
+ <stop
+ id="stop5109"
+ style="stop-color:#1379a7;stop-opacity:0.49803922"
+ offset="0.30000001" />
+ <stop
+ id="stop5101"
+ style="stop-color:#0e5173;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="590.84674"
+ y1="274.57559"
+ x2="590.84674"
+ y2="334.01376"
+ id="linearGradient5103"
+ xlink:href="#linearGradient5097"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-172.21428,209.55976)"
+ spreadMethod="pad" />
+ </defs>
+ <g
+ id="layer1">
+ <rect
+ width="1053.5891"
+ height="67.882248"
+ x="-172.50883"
+ y="484.13535"
+ id="rect3448"
+ style="opacity:1;fill:url(#linearGradient5103);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/demos/sub-attaq/pics/scalable/torpedo.svg b/demos/sub-attaq/pics/scalable/torpedo.svg
new file mode 100644
index 0000000..48e429d
--- /dev/null
+++ b/demos/sub-attaq/pics/scalable/torpedo.svg
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="1.0"
+ width="744.09448"
+ height="1052.3622"
+ id="svg2584">
+ <defs
+ id="defs2586">
+ <linearGradient
+ id="linearGradient3708">
+ <stop
+ id="stop3710"
+ style="stop-color:#202020;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3712"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="518.26996"
+ y1="497.31476"
+ x2="533.02924"
+ y2="497.31476"
+ id="linearGradient3776"
+ xlink:href="#linearGradient3708"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient3718">
+ <stop
+ id="stop3720"
+ style="stop-color:#bcbcbc;stop-opacity:0.28169015"
+ offset="0" />
+ <stop
+ id="stop3722"
+ style="stop-color:#bcbcbc;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="516.89508"
+ y1="503.50137"
+ x2="516.89508"
+ y2="543.80646"
+ id="linearGradient3774"
+ xlink:href="#linearGradient3718"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9947644,0,0,1.3346457,2.7877039,-166.60153)" />
+ <linearGradient
+ id="linearGradient3692">
+ <stop
+ id="stop3694"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3696"
+ style="stop-color:#b6b6b6;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="506.95975"
+ y1="469.73706"
+ x2="525.41608"
+ y2="469.73706"
+ id="linearGradient3772"
+ xlink:href="#linearGradient3692"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="506.95975"
+ y1="469.73706"
+ x2="525.41608"
+ y2="469.73706"
+ id="linearGradient2403"
+ xlink:href="#linearGradient3692"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="516.89508"
+ y1="503.50137"
+ x2="516.89508"
+ y2="543.80646"
+ id="linearGradient2405"
+ xlink:href="#linearGradient3718"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9947644,0,0,1.3346457,2.7877039,-166.60153)" />
+ <linearGradient
+ x1="518.26996"
+ y1="497.31476"
+ x2="533.02924"
+ y2="497.31476"
+ id="linearGradient2407"
+ xlink:href="#linearGradient3708"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <g
+ transform="translate(-128.69958,6.6568748)"
+ id="torpedo">
+ <g
+ transform="matrix(0.8830571,0,0,0.8830571,-119.78327,177.67947)"
+ id="g3525">
+ <path
+ d="M 523.9661,469.73706 A 7.7781744,34.648232 0 1 1 508.40975,469.73706 A 7.7781744,34.648232 0 1 1 523.9661,469.73706 z"
+ id="path3682"
+ style="opacity:1;fill:url(#linearGradient2403);fill-opacity:1;fill-rule:nonzero;stroke:#272727;stroke-width:2.9000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <g
+ id="g3754">
+ <rect
+ width="33.58757"
+ height="59.927299"
+ x="498.86386"
+ y="497.84454"
+ id="rect3716"
+ style="opacity:1;fill:url(#linearGradient2405);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.20000005;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 523.35045,482.89424 C 523.35045,482.89424 532.31256,488.20203 532.02344,500.14638 C 531.73431,512.09072 531.73431,511.73417 531.73431,511.73417 C 531.73431,511.73417 520.70627,493.83104 519.26887,499.77636 L 523.35045,482.89424 z"
+ id="path3704"
+ style="fill:url(#linearGradient2407);fill-opacity:1;fill-rule:evenodd;stroke:#1f1f1f;stroke-width:1.99788344;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 508.50327,482.89424 C 508.50327,482.89424 499.54116,488.20203 499.83028,500.14638 C 500.11941,512.09072 500.11941,511.73417 500.11941,511.73417 C 500.11941,511.73417 511.14745,493.83104 512.58485,499.77636 L 508.50327,482.89424 z"
+ id="path3706"
+ style="fill:#bcbcbc;fill-opacity:1;fill-rule:evenodd;stroke:#1f1f1f;stroke-width:1.99788344;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/demos/sub-attaq/pics/small/background.png b/demos/sub-attaq/pics/small/background.png
new file mode 100644
index 0000000..5ad3db6
--- /dev/null
+++ b/demos/sub-attaq/pics/small/background.png
Binary files differ
diff --git a/demos/sub-attaq/pics/small/boat.png b/demos/sub-attaq/pics/small/boat.png
new file mode 100644
index 0000000..114ccc3
--- /dev/null
+++ b/demos/sub-attaq/pics/small/boat.png
Binary files differ
diff --git a/demos/sub-attaq/pics/small/bomb.png b/demos/sub-attaq/pics/small/bomb.png
new file mode 100644
index 0000000..3af5f2f
--- /dev/null
+++ b/demos/sub-attaq/pics/small/bomb.png
Binary files differ
diff --git a/demos/sub-attaq/pics/small/submarine.png b/demos/sub-attaq/pics/small/submarine.png
new file mode 100644
index 0000000..0c0c350
--- /dev/null
+++ b/demos/sub-attaq/pics/small/submarine.png
Binary files differ
diff --git a/demos/sub-attaq/pics/small/surface.png b/demos/sub-attaq/pics/small/surface.png
new file mode 100644
index 0000000..06d0e47
--- /dev/null
+++ b/demos/sub-attaq/pics/small/surface.png
Binary files differ
diff --git a/demos/sub-attaq/pics/small/torpedo.png b/demos/sub-attaq/pics/small/torpedo.png
new file mode 100644
index 0000000..f9c2687
--- /dev/null
+++ b/demos/sub-attaq/pics/small/torpedo.png
Binary files differ
diff --git a/demos/sub-attaq/pics/welcome/logo-a.png b/demos/sub-attaq/pics/welcome/logo-a.png
new file mode 100644
index 0000000..67dd76d
--- /dev/null
+++ b/demos/sub-attaq/pics/welcome/logo-a.png
Binary files differ
diff --git a/demos/sub-attaq/pics/welcome/logo-a2.png b/demos/sub-attaq/pics/welcome/logo-a2.png
new file mode 100644
index 0000000..17668b0
--- /dev/null
+++ b/demos/sub-attaq/pics/welcome/logo-a2.png
Binary files differ
diff --git a/demos/sub-attaq/pics/welcome/logo-b.png b/demos/sub-attaq/pics/welcome/logo-b.png
new file mode 100644
index 0000000..cf6c045
--- /dev/null
+++ b/demos/sub-attaq/pics/welcome/logo-b.png
Binary files differ
diff --git a/demos/sub-attaq/pics/welcome/logo-dash.png b/demos/sub-attaq/pics/welcome/logo-dash.png
new file mode 100644
index 0000000..219233c
--- /dev/null
+++ b/demos/sub-attaq/pics/welcome/logo-dash.png
Binary files differ
diff --git a/demos/sub-attaq/pics/welcome/logo-excl.png b/demos/sub-attaq/pics/welcome/logo-excl.png
new file mode 100644
index 0000000..8dd0a2e
--- /dev/null
+++ b/demos/sub-attaq/pics/welcome/logo-excl.png
Binary files differ
diff --git a/demos/sub-attaq/pics/welcome/logo-q.png b/demos/sub-attaq/pics/welcome/logo-q.png
new file mode 100644
index 0000000..86e588d
--- /dev/null
+++ b/demos/sub-attaq/pics/welcome/logo-q.png
Binary files differ
diff --git a/demos/sub-attaq/pics/welcome/logo-s.png b/demos/sub-attaq/pics/welcome/logo-s.png
new file mode 100644
index 0000000..7b6a36e
--- /dev/null
+++ b/demos/sub-attaq/pics/welcome/logo-s.png
Binary files differ
diff --git a/demos/sub-attaq/pics/welcome/logo-t.png b/demos/sub-attaq/pics/welcome/logo-t.png
new file mode 100644
index 0000000..b2e3526
--- /dev/null
+++ b/demos/sub-attaq/pics/welcome/logo-t.png
Binary files differ
diff --git a/demos/sub-attaq/pics/welcome/logo-t2.png b/demos/sub-attaq/pics/welcome/logo-t2.png
new file mode 100644
index 0000000..b11a778
--- /dev/null
+++ b/demos/sub-attaq/pics/welcome/logo-t2.png
Binary files differ
diff --git a/demos/sub-attaq/pics/welcome/logo-u.png b/demos/sub-attaq/pics/welcome/logo-u.png
new file mode 100644
index 0000000..24eede8
--- /dev/null
+++ b/demos/sub-attaq/pics/welcome/logo-u.png
Binary files differ
diff --git a/demos/sub-attaq/pixmapitem.cpp b/demos/sub-attaq/pixmapitem.cpp
new file mode 100644
index 0000000..5ab5583
--- /dev/null
+++ b/demos/sub-attaq/pixmapitem.cpp
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//Own
+#include "pixmapitem.h"
+
+//Qt
+#include <QtCore/QDir>
+
+PixmapItem::PixmapItem(const QString &fileName,GraphicsScene::Mode mode, QGraphicsItem * parent) : QGraphicsPixmapItem(parent),name(fileName)
+{
+ loadPixmap(mode);
+}
+
+void PixmapItem::loadPixmap(GraphicsScene::Mode mode)
+{
+ if (mode == GraphicsScene::Big)
+ setPixmap(":/big/" + name);
+ else
+ setPixmap(":/small/" + name);
+}
diff --git a/demos/sub-attaq/pixmapitem.h b/demos/sub-attaq/pixmapitem.h
new file mode 100644
index 0000000..97d6f63
--- /dev/null
+++ b/demos/sub-attaq/pixmapitem.h
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef __PIXMAPITEM__H__
+#define __PIXMAPITEM__H__
+
+//Own
+#include "graphicsscene.h"
+
+//Qt
+#include <QtGui/QGraphicsPixmapItem>
+
+class PixmapItem : public QGraphicsPixmapItem
+{
+public:
+ PixmapItem(const QString &fileName, GraphicsScene::Mode mode, QGraphicsItem * parent = 0);
+
+private:
+ void loadPixmap(GraphicsScene::Mode mode);
+
+ QString name;
+ QPixmap pixmap;
+};
+
+#endif //__PIXMAPITEM__H__
diff --git a/demos/sub-attaq/progressitem.cpp b/demos/sub-attaq/progressitem.cpp
new file mode 100644
index 0000000..c20ebd0
--- /dev/null
+++ b/demos/sub-attaq/progressitem.cpp
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "progressitem.h"
+#include "pixmapitem.h"
+
+ProgressItem::ProgressItem (QGraphicsItem * parent)
+ : QGraphicsTextItem(parent), currentLevel(1), currentScore(0)
+{
+ setFont(QFont("Comic Sans MS"));
+ setPos(parentItem()->boundingRect().topRight() - QPointF(180, -5));
+}
+
+void ProgressItem::setLevel(int level)
+{
+ currentLevel = level;
+ updateProgress();
+}
+
+void ProgressItem::setScore(int score)
+{
+ currentScore = score;
+ updateProgress();
+}
+
+void ProgressItem::updateProgress()
+{
+ setHtml(QString("Level : %1 Score : %2").arg(currentLevel).arg(currentScore));
+}
diff --git a/demos/sub-attaq/progressitem.h b/demos/sub-attaq/progressitem.h
new file mode 100644
index 0000000..60873b6
--- /dev/null
+++ b/demos/sub-attaq/progressitem.h
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef PROGRESSITEM_H
+#define PROGRESSITEM_H
+
+//Qt
+#include <QtGui/QGraphicsTextItem>
+
+class ProgressItem : public QGraphicsTextItem
+{
+public:
+ ProgressItem(QGraphicsItem * parent = 0);
+ void setLevel(int level);
+ void setScore(int score);
+
+private:
+ void updateProgress();
+ int currentLevel;
+ int currentScore;
+};
+
+#endif // PROGRESSITEM_H
diff --git a/demos/sub-attaq/qanimationstate.cpp b/demos/sub-attaq/qanimationstate.cpp
new file mode 100644
index 0000000..ccb788d
--- /dev/null
+++ b/demos/sub-attaq/qanimationstate.cpp
@@ -0,0 +1,150 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtGui module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qanimationstate.h"
+
+#include <QtCore/qstate.h>
+
+QT_BEGIN_NAMESPACE
+
+/*!
+\class QAnimationState
+
+\brief The QAnimationState class provides state that handle an animation and emit
+a signal when this animation is finished.
+
+\ingroup statemachine
+
+QAnimationState provides a state that handle an animation. It will start this animation
+when the state is entered and stop it when it is leaved. When the animation has finished the
+state emit animationFinished signal.
+QAnimationState is part of \l{The State Machine Framework}.
+
+\code
+QStateMachine machine;
+QAnimationState *s = new QAnimationState(machine->rootState());
+QPropertyAnimation *animation = new QPropertyAnimation(obj, "pos");
+s->setAnimation(animation);
+QState *s2 = new QState(machine->rootState());
+s->addTransition(s, SIGNAL(animationFinished()), s2);
+machine.start();
+\endcode
+
+\sa QState, {The Animation Framework}
+*/
+
+
+#ifndef QT_NO_ANIMATION
+
+/*!
+ Constructs a new state with the given \a parent state.
+*/
+QAnimationState::QAnimationState(QState *parent)
+ : QState(parent), m_animation(0)
+{
+}
+
+/*!
+ Destroys the animation state.
+*/
+QAnimationState::~QAnimationState()
+{
+}
+
+/*!
+ Set an \a animation for this QAnimationState. If an animation was previously handle by this
+ state then it won't emit animationFinished for the old animation. The QAnimationState doesn't
+ take the ownership of the animation.
+*/
+void QAnimationState::setAnimation(QAbstractAnimation *animation)
+{
+ if (animation == m_animation)
+ return;
+
+ //Disconnect from the previous animation if exist
+ if(m_animation)
+ disconnect(m_animation, SIGNAL(finished()), this, SIGNAL(animationFinished()));
+
+ m_animation = animation;
+
+ if (m_animation) {
+ //connect the new animation
+ connect(m_animation, SIGNAL(finished()), this, SIGNAL(animationFinished()));
+ }
+}
+
+/*!
+ Returns the animation handle by this animation state, or 0 if there is no animation.
+*/
+QAbstractAnimation* QAnimationState::animation() const
+{
+ return m_animation;
+}
+
+/*!
+ \reimp
+*/
+void QAnimationState::onEntry(QEvent *)
+{
+ if (m_animation)
+ m_animation->start();
+}
+
+/*!
+ \reimp
+*/
+void QAnimationState::onExit(QEvent *)
+{
+ if (m_animation)
+ m_animation->stop();
+}
+
+/*!
+ \reimp
+*/
+bool QAnimationState::event(QEvent *e)
+{
+ return QState::event(e);
+}
+
+QT_END_NAMESPACE
+
+#endif
diff --git a/demos/sub-attaq/qanimationstate.h b/demos/sub-attaq/qanimationstate.h
new file mode 100644
index 0000000..cb605f3
--- /dev/null
+++ b/demos/sub-attaq/qanimationstate.h
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtGui module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QANIMATIONSTATE_H
+#define QANIMATIONSTATE_H
+
+#ifndef QT_STATEMACHINE_SOLUTION
+# include <QtCore/qstate.h>
+# include <QtCore/qabstractanimation.h>
+#else
+# include "qstate.h"
+# include "qabstractanimation.h"
+#endif
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(Gui)
+
+#ifndef QT_NO_ANIMATION
+
+class QAbstractAnimation;
+
+class QAnimationState : public QState
+{
+ Q_OBJECT
+public:
+ QAnimationState(QState *parent = 0);
+ ~QAnimationState();
+
+ void setAnimation(QAbstractAnimation *animation);
+ QAbstractAnimation* animation() const;
+
+signals:
+ void animationFinished();
+
+protected:
+ void onEntry(QEvent *);
+ void onExit(QEvent *);
+ bool event(QEvent *e);
+
+private:
+ Q_DISABLE_COPY(QAnimationState)
+ QAbstractAnimation *m_animation;
+};
+
+#endif
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QANIMATIONSTATE_H
diff --git a/demos/sub-attaq/states.cpp b/demos/sub-attaq/states.cpp
new file mode 100644
index 0000000..4cc4af9
--- /dev/null
+++ b/demos/sub-attaq/states.cpp
@@ -0,0 +1,327 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//Own
+#include "states.h"
+#include "graphicsscene.h"
+#include "boat.h"
+#include "submarine.h"
+#include "torpedo.h"
+#include "animationmanager.h"
+#include "progressitem.h"
+
+//Qt
+#include <QtGui/QMessageBox>
+#include <QtGui/QGraphicsView>
+#include <QtCore/QStateMachine>
+#include <QtGui/QKeyEventTransition>
+#include <QtCore/QSignalEvent>
+#include <QtCore/QFinalState>
+
+PlayState::PlayState(GraphicsScene *scene, QState *parent)
+ : QState(parent),
+ scene(scene),
+ machine(0),
+ currentLevel(0),
+ score(0)
+{
+}
+
+PlayState::~PlayState()
+{
+}
+
+void PlayState::onEntry(QEvent *)
+{
+ //We are now playing?
+ if (machine) {
+ machine->stop();
+ scene->clearScene();
+ currentLevel = 0;
+ score = 0;
+ delete machine;
+ }
+
+ machine = new QStateMachine(this);
+
+ //This state is when player is playing
+ LevelState *levelState = new LevelState(scene, this, machine);
+
+ //This state is when the player is actually playing but the game is not paused
+ QState *playingState = new QState(levelState);
+ levelState->setInitialState(playingState);
+
+ //This state is when the game is paused
+ PauseState *pauseState = new PauseState(scene, levelState);
+
+ //We have one view, it receive the key press event
+ QKeyEventTransition *pressPplay = new QKeyEventTransition(scene->views().at(0), QEvent::KeyPress, Qt::Key_P);
+ pressPplay->setTargetState(pauseState);
+ QKeyEventTransition *pressPpause = new QKeyEventTransition(scene->views().at(0), QEvent::KeyPress, Qt::Key_P);
+ pressPpause->setTargetState(playingState);
+
+ //Pause "P" is triggered, the player pause the game
+ playingState->addTransition(pressPplay);
+
+ //To get back playing when the game has been paused
+ pauseState->addTransition(pressPpause);
+
+ //This state is when player have lost
+ LostState *lostState = new LostState(scene, this, machine);
+
+ //This state is when player have won
+ WinState *winState = new WinState(scene, this, machine);
+
+ //The boat has been destroyed then the game is finished
+ levelState->addTransition(scene->boat, SIGNAL(boatExecutionFinished()),lostState);
+
+ //This transition check if we won or not
+ WinTransition *winTransition = new WinTransition(scene, this, winState);
+
+ //The boat has been destroyed then the game is finished
+ levelState->addTransition(winTransition);
+
+ //This state is an animation when the score changed
+ UpdateScoreState *scoreState = new UpdateScoreState(this, levelState);
+
+ //This transition update the score when a submarine die
+ UpdateScoreTransition *scoreTransition = new UpdateScoreTransition(scene, this, levelState);
+ scoreTransition->setTargetState(scoreState);
+
+ //The boat has been destroyed then the game is finished
+ playingState->addTransition(scoreTransition);
+
+ //We go back to play state
+ scoreState->addTransition(playingState);
+
+ //We start playing!!!
+ machine->setInitialState(levelState);
+
+ //Final state
+ QFinalState *final = new QFinalState(machine);
+
+ //This transition is triggered when the player press space after completing a level
+ CustomSpaceTransition *spaceTransition = new CustomSpaceTransition(scene->views().at(0), this, QEvent::KeyPress, Qt::Key_Space);
+ spaceTransition->setTargetState(levelState);
+ winState->addTransition(spaceTransition);
+
+ //We lost we should reach the final state
+ lostState->addTransition(lostState, SIGNAL(finished()), final);
+
+ machine->start();
+}
+
+LevelState::LevelState(GraphicsScene *scene, PlayState *game, QState *parent) : QState(parent), scene(scene), game(game)
+{
+}
+void LevelState::onEntry(QEvent *)
+{
+ initializeLevel();
+}
+
+void LevelState::initializeLevel()
+{
+ //we re-init the boat
+ scene->boat->setPos(scene->width()/2, scene->sealLevel() - scene->boat->size().height());
+ scene->boat->setCurrentSpeed(0);
+ scene->boat->setCurrentDirection(Boat::None);
+ scene->boat->setBombsLaunched(0);
+ scene->boat->show();
+ scene->setFocusItem(scene->boat,Qt::OtherFocusReason);
+ scene->boat->run();
+
+ scene->progressItem->setScore(game->score);
+ scene->progressItem->setLevel(game->currentLevel + 1);
+
+ GraphicsScene::LevelDescription currentLevelDescription = scene->levelsData.value(game->currentLevel);
+
+ for (int i = 0; i < currentLevelDescription.submarines.size(); ++i ) {
+
+ QPair<int,int> subContent = currentLevelDescription.submarines.at(i);
+ GraphicsScene::SubmarineDescription submarineDesc = scene->submarinesData.at(subContent.first);
+
+ for (int j = 0; j < subContent.second; ++j ) {
+ SubMarine *sub = new SubMarine(submarineDesc.type, submarineDesc.name, submarineDesc.points);
+ scene->addItem(sub);
+ int random = (qrand() % 15 + 1);
+ qreal x = random == 13 || random == 5 ? 0 : scene->width() - sub->size().width();
+ qreal y = scene->height() -(qrand() % 150 + 1) - sub->size().height();
+ sub->setPos(x,y);
+ sub->setCurrentDirection(x == 0 ? SubMarine::Right : SubMarine::Left);
+ sub->setCurrentSpeed(qrand() % 3 + 1);
+ }
+ }
+}
+
+/** Pause State */
+PauseState::PauseState(GraphicsScene *scene, QState *parent) : QState(parent),scene(scene)
+{
+}
+void PauseState::onEntry(QEvent *)
+{
+ AnimationManager::self()->pauseAll();
+ scene->boat->setEnabled(false);
+}
+void PauseState::onExit(QEvent *)
+{
+ AnimationManager::self()->resumeAll();
+ scene->boat->setEnabled(true);
+ scene->boat->setFocus();
+}
+
+/** Lost State */
+LostState::LostState(GraphicsScene *scene, PlayState *game, QState *parent) : QState(parent), scene(scene), game(game)
+{
+}
+
+void LostState::onEntry(QEvent *)
+{
+ //The message to display
+ QString message = QString("You lose on level %1. Your score is %2.").arg(game->currentLevel+1).arg(game->score);
+
+ //We set the level back to 0
+ game->currentLevel = 0;
+
+ //We set the score back to 0
+ game->score = 0;
+
+ //We clear the scene
+ scene->clearScene();
+
+ //we have only one view
+ QMessageBox::information(scene->views().at(0),"You lose",message);
+}
+
+/** Win State */
+WinState::WinState(GraphicsScene *scene, PlayState *game, QState *parent) : QState(parent), scene(scene), game(game)
+{
+}
+
+void WinState::onEntry(QEvent *)
+{
+ //We clear the scene
+ scene->clearScene();
+
+ QString message;
+ if (scene->levelsData.size() - 1 != game->currentLevel) {
+ message = QString("You win the level %1. Your score is %2.\nPress Space to continue after closing this dialog.").arg(game->currentLevel+1).arg(game->score);
+ //We increment the level number
+ game->currentLevel++;
+ } else {
+ message = QString("You finish the game on level %1. Your score is %2.").arg(game->currentLevel+1).arg(game->score);
+ //We set the level back to 0
+ game->currentLevel = 0;
+ //We set the score back to 0
+ game->score = 0;
+ }
+
+ //we have only one view
+ QMessageBox::information(scene->views().at(0),"You win",message);
+}
+
+/** UpdateScore State */
+UpdateScoreState::UpdateScoreState(PlayState *game, QState *parent) : QState(parent)
+{
+ this->game = game;
+}
+void UpdateScoreState::onEntry(QEvent *e)
+{
+ QState::onEntry(e);
+}
+
+/** Win transition */
+UpdateScoreTransition::UpdateScoreTransition(GraphicsScene *scene, PlayState *game, QAbstractState *target)
+ : QSignalTransition(scene,SIGNAL(subMarineDestroyed(int))),
+ game(game), scene(scene)
+{
+ setTargetState(target);
+}
+
+bool UpdateScoreTransition::eventTest(QEvent *event)
+{
+ if (!QSignalTransition::eventTest(event))
+ return false;
+ else {
+ QSignalEvent *se = static_cast<QSignalEvent*>(event);
+ game->score += se->arguments().at(0).toInt();
+ scene->progressItem->setScore(game->score);
+ return true;
+ }
+}
+
+/** Win transition */
+WinTransition::WinTransition(GraphicsScene *scene, PlayState *game, QAbstractState *target)
+ : QSignalTransition(scene,SIGNAL(allSubMarineDestroyed(int))),
+ game(game), scene(scene)
+{
+ setTargetState(target);
+}
+
+bool WinTransition::eventTest(QEvent *event)
+{
+ if (!QSignalTransition::eventTest(event))
+ return false;
+ else {
+ QSignalEvent *se = static_cast<QSignalEvent*>(event);
+ game->score += se->arguments().at(0).toInt();
+ scene->progressItem->setScore(game->score);
+ return true;
+ }
+}
+
+/** Space transition */
+CustomSpaceTransition::CustomSpaceTransition(QWidget *widget, PlayState *game, QEvent::Type type, int key)
+ : QKeyEventTransition(widget, type, key),
+ game(game)
+{
+}
+
+bool CustomSpaceTransition::eventTest(QEvent *event)
+{
+ Q_UNUSED(event);
+ if (!QKeyEventTransition::eventTest(event))
+ return false;
+ if (game->currentLevel != 0)
+ return true;
+ else
+ return false;
+
+}
diff --git a/demos/sub-attaq/states.h b/demos/sub-attaq/states.h
new file mode 100644
index 0000000..22e7136
--- /dev/null
+++ b/demos/sub-attaq/states.h
@@ -0,0 +1,180 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef STATES_H
+#define STATES_H
+
+//Qt
+#include <QtCore/QState>
+#include <QtCore/QSignalTransition>
+#include <QtCore/QPropertyAnimation>
+#include <QtGui/QKeyEventTransition>
+#include <QtCore/QSet>
+
+class GraphicsScene;
+class Boat;
+class SubMarine;
+QT_BEGIN_NAMESPACE
+class QStateMachine;
+QT_END_NAMESPACE
+
+class PlayState : public QState
+{
+public:
+ PlayState(GraphicsScene *scene, QState *parent = 0);
+ ~PlayState();
+
+ protected:
+ void onEntry(QEvent *);
+
+private :
+ GraphicsScene *scene;
+ QStateMachine *machine;
+ int currentLevel;
+ int score;
+ QState *parallelChild;
+
+ friend class UpdateScoreState;
+ friend class UpdateScoreTransition;
+ friend class WinTransition;
+ friend class CustomSpaceTransition;
+ friend class WinState;
+ friend class LostState;
+ friend class LevelState;
+};
+
+class LevelState : public QState
+{
+public:
+ LevelState(GraphicsScene *scene, PlayState *game, QState *parent = 0);
+protected:
+ void onEntry(QEvent *);
+private :
+ void initializeLevel();
+ GraphicsScene *scene;
+ PlayState *game;
+};
+
+class PauseState : public QState
+{
+public:
+ PauseState(GraphicsScene *scene, QState *parent = 0);
+
+protected:
+ void onEntry(QEvent *);
+ void onExit(QEvent *);
+private :
+ GraphicsScene *scene;
+ Boat *boat;
+};
+
+class LostState : public QState
+{
+public:
+ LostState(GraphicsScene *scene, PlayState *game, QState *parent = 0);
+
+protected:
+ void onEntry(QEvent *);
+private :
+ GraphicsScene *scene;
+ PlayState *game;
+};
+
+class WinState : public QState
+{
+public:
+ WinState(GraphicsScene *scene, PlayState *game, QState *parent = 0);
+
+protected:
+ void onEntry(QEvent *);
+private :
+ GraphicsScene *scene;
+ PlayState *game;
+};
+
+class UpdateScoreState : public QState
+{
+public:
+ UpdateScoreState(PlayState *game, QState *parent);
+protected:
+ void onEntry(QEvent *);
+private:
+ QPropertyAnimation *scoreAnimation;
+ PlayState *game;
+};
+
+//These transtion is used to update the score
+class UpdateScoreTransition : public QSignalTransition
+{
+public:
+ UpdateScoreTransition(GraphicsScene *scene, PlayState *game, QAbstractState *target);
+protected:
+ virtual bool eventTest(QEvent *event);
+private:
+ PlayState * game;
+ GraphicsScene *scene;
+};
+
+//These transtion test if we have won the game
+class WinTransition : public QSignalTransition
+{
+public:
+ WinTransition(GraphicsScene *scene, PlayState *game, QAbstractState *target);
+protected:
+ virtual bool eventTest(QEvent *event);
+private:
+ PlayState * game;
+ GraphicsScene *scene;
+};
+
+//These transtion is true if one level has been completed and the player want to continue
+ class CustomSpaceTransition : public QKeyEventTransition
+{
+public:
+ CustomSpaceTransition(QWidget *widget, PlayState *game, QEvent::Type type, int key);
+protected:
+ virtual bool eventTest(QEvent *event);
+private:
+ PlayState *game;
+ int key;
+};
+
+#endif // STATES_H
diff --git a/demos/sub-attaq/sub-attaq.pro b/demos/sub-attaq/sub-attaq.pro
new file mode 100644
index 0000000..ad1327d
--- /dev/null
+++ b/demos/sub-attaq/sub-attaq.pro
@@ -0,0 +1,37 @@
+contains(QT_CONFIG, opengl):QT += opengl
+
+HEADERS += boat.h \
+ bomb.h \
+ mainwindow.h \
+ submarine.h \
+ torpedo.h \
+ pixmapitem.h \
+ graphicsscene.h \
+ animationmanager.h \
+ states.h \
+ boat_p.h \
+ submarine_p.h \
+ custompropertyanimation.h \
+ qanimationstate.h \
+ progressitem.h
+SOURCES += boat.cpp \
+ bomb.cpp \
+ main.cpp \
+ mainwindow.cpp \
+ submarine.cpp \
+ torpedo.cpp \
+ pixmapitem.cpp \
+ graphicsscene.cpp \
+ animationmanager.cpp \
+ states.cpp \
+ custompropertyanimation.cpp \
+ qanimationstate.cpp \
+ progressitem.cpp
+RESOURCES += subattaq.qrc
+
+# install
+target.path = $$[QT_INSTALL_DEMOS]/animation/sub-attaq
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS sub-attaq.pro pics
+sources.path = $$[QT_INSTALL_DEMOS]/animation/sub-attaq
+INSTALLS += target sources
+
diff --git a/demos/sub-attaq/subattaq.qrc b/demos/sub-attaq/subattaq.qrc
new file mode 100644
index 0000000..80a3af1
--- /dev/null
+++ b/demos/sub-attaq/subattaq.qrc
@@ -0,0 +1,39 @@
+<RCC>
+ <qresource prefix="/" >
+ <file alias="all" >pics/scalable/sub-attaq.svg</file>
+ <file alias="submarine" >pics/scalable/submarine.svg</file>
+ <file alias="boat" >pics/scalable/boat.svg</file>
+ <file alias="torpedo" >pics/scalable/torpedo.svg</file>
+ <file alias="logo-s" >pics/welcome/logo-s.png</file>
+ <file alias="logo-u" >pics/welcome/logo-u.png</file>
+ <file alias="logo-b" >pics/welcome/logo-b.png</file>
+ <file alias="logo-dash" >pics/welcome/logo-dash.png</file>
+ <file alias="logo-a" >pics/welcome/logo-a.png</file>
+ <file alias="logo-t" >pics/welcome/logo-t.png</file>
+ <file alias="logo-t2" >pics/welcome/logo-t2.png</file>
+ <file alias="logo-a2" >pics/welcome/logo-a2.png</file>
+ <file alias="logo-q" >pics/welcome/logo-q.png</file>
+ <file alias="logo-excl" >pics/welcome/logo-excl.png</file>
+ <file alias="big/background" >pics/big/background.png</file>
+ <file alias="big/boat" >pics/big/boat.png</file>
+ <file alias="big/bomb" >pics/big/bomb.png</file>
+ <file alias="big/submarine" >pics/big/submarine.png</file>
+ <file alias="big/surface" >pics/big/surface.png</file>
+ <file alias="big/torpedo" >pics/big/torpedo.png</file>
+ <file alias="small/background" >pics/small/background.png</file>
+ <file alias="small/boat" >pics/small/boat.png</file>
+ <file alias="small/bomb" >pics/small/bomb.png</file>
+ <file alias="small/submarine" >pics/small/submarine.png</file>
+ <file alias="small/surface" >pics/small/surface.png</file>
+ <file alias="small/torpedo" >pics/small/torpedo.png</file>
+ <file alias="big/explosion/boat/step1" >pics/big/explosion/boat/step1.png</file>
+ <file alias="big/explosion/boat/step2" >pics/big/explosion/boat/step2.png</file>
+ <file alias="big/explosion/boat/step3" >pics/big/explosion/boat/step3.png</file>
+ <file alias="big/explosion/boat/step4" >pics/big/explosion/boat/step4.png</file>
+ <file alias="big/explosion/submarine/step1" >pics/big/explosion/submarine/step1.png</file>
+ <file alias="big/explosion/submarine/step2" >pics/big/explosion/submarine/step2.png</file>
+ <file alias="big/explosion/submarine/step3" >pics/big/explosion/submarine/step3.png</file>
+ <file alias="big/explosion/submarine/step4" >pics/big/explosion/submarine/step4.png</file>
+ <file>data.xml</file>
+ </qresource>
+</RCC>
diff --git a/demos/sub-attaq/submarine.cpp b/demos/sub-attaq/submarine.cpp
new file mode 100644
index 0000000..42a681d
--- /dev/null
+++ b/demos/sub-attaq/submarine.cpp
@@ -0,0 +1,218 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//Own
+#include "submarine.h"
+#include "submarine_p.h"
+#include "torpedo.h"
+#include "pixmapitem.h"
+#include "graphicsscene.h"
+#include "animationmanager.h"
+#include "custompropertyanimation.h"
+#include "qanimationstate.h"
+
+#include <QtCore/QPropertyAnimation>
+#include <QtCore/QStateMachine>
+#include <QtCore/QFinalState>
+#include <QtCore/QSequentialAnimationGroup>
+
+static QAbstractAnimation *setupDestroyAnimation(SubMarine *sub)
+{
+ QSequentialAnimationGroup *group = new QSequentialAnimationGroup(sub);
+#if QT_VERSION >=0x040500
+ PixmapItem *step1 = new PixmapItem(QString("explosion/submarine/step1"),GraphicsScene::Big, sub);
+ step1->setZValue(6);
+ PixmapItem *step2 = new PixmapItem(QString("explosion/submarine/step2"),GraphicsScene::Big, sub);
+ step2->setZValue(6);
+ PixmapItem *step3 = new PixmapItem(QString("explosion/submarine/step3"),GraphicsScene::Big, sub);
+ step3->setZValue(6);
+ PixmapItem *step4 = new PixmapItem(QString("explosion/submarine/step4"),GraphicsScene::Big, sub);
+ step4->setZValue(6);
+ step1->setOpacity(0);
+ step2->setOpacity(0);
+ step3->setOpacity(0);
+ step4->setOpacity(0);
+ CustomPropertyAnimation *anim1 = new CustomPropertyAnimation(sub);
+ anim1->setMemberFunctions((QGraphicsItem*)step1, &QGraphicsItem::opacity, &QGraphicsItem::setOpacity);
+ anim1->setDuration(100);
+ anim1->setEndValue(1);
+ CustomPropertyAnimation *anim2 = new CustomPropertyAnimation(sub);
+ anim2->setMemberFunctions((QGraphicsItem*)step2, &QGraphicsItem::opacity, &QGraphicsItem::setOpacity);
+ anim2->setDuration(100);
+ anim2->setEndValue(1);
+ CustomPropertyAnimation *anim3 = new CustomPropertyAnimation(sub);
+ anim3->setMemberFunctions((QGraphicsItem*)step3, &QGraphicsItem::opacity, &QGraphicsItem::setOpacity);
+ anim3->setDuration(100);
+ anim3->setEndValue(1);
+ CustomPropertyAnimation *anim4 = new CustomPropertyAnimation(sub);
+ anim4->setMemberFunctions((QGraphicsItem*)step4, &QGraphicsItem::opacity, &QGraphicsItem::setOpacity);
+ anim4->setDuration(100);
+ anim4->setEndValue(1);
+ group->addAnimation(anim1);
+ group->addAnimation(anim2);
+ group->addAnimation(anim3);
+ group->addAnimation(anim4);
+#else
+ // work around for a bug where we don't transition if the duration is zero.
+ QtPauseAnimation *anim = new QtPauseAnimation(group);
+ anim->setDuration(1);
+ group->addAnimation(anim);
+#endif
+ AnimationManager::self()->registerAnimation(group);
+ return group;
+}
+
+
+SubMarine::SubMarine(int type, const QString &name, int points, QGraphicsItem * parent, Qt::WindowFlags wFlags)
+ : QGraphicsWidget(parent,wFlags), subType(type), subName(name), subPoints(points), speed(0), direction(SubMarine::None)
+{
+ pixmapItem = new PixmapItem(QString("submarine"),GraphicsScene::Big, this);
+ setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+ setZValue(5);
+ setFlags(QGraphicsItem::ItemIsMovable);
+ resize(pixmapItem->boundingRect().width(),pixmapItem->boundingRect().height());
+ setTransformOriginPoint(boundingRect().center());
+
+ graphicsRotation = new QGraphicsRotation(this);
+ graphicsRotation->setAxis(QVector3D(0, 1, 0));
+ graphicsRotation->setOrigin(QVector3D(size().width()/2, size().height()/2, 0));
+ QList<QGraphicsTransform *> r;
+ r.append(graphicsRotation);
+ setTransformations(r);
+
+ //We setup the state machine of the submarine
+ QStateMachine *machine = new QStateMachine(this);
+
+ //This state is when the boat is moving/rotating
+ QState *moving = new QState(machine);
+
+ //This state is when the boat is moving from left to right
+ MovementState *movement = new MovementState(this, moving);
+
+ //This state is when the boat is moving from left to right
+ ReturnState *rotation = new ReturnState(this, moving);
+
+ //This is the initial state of the moving root state
+ moving->setInitialState(movement);
+
+ movement->addTransition(this, SIGNAL(subMarineStateChanged()), moving);
+
+ //This is the initial state of the machine
+ machine->setInitialState(moving);
+
+ //End
+ QFinalState *final = new QFinalState(machine);
+
+ //If the moving animation is finished we move to the return state
+ movement->addTransition(movement, SIGNAL(animationFinished()), rotation);
+
+ //If the return animation is finished we move to the moving state
+ rotation->addTransition(rotation, SIGNAL(animationFinished()), movement);
+
+ //This state play the destroyed animation
+ QAnimationState *destroyedState = new QAnimationState(machine);
+ destroyedState->setAnimation(setupDestroyAnimation(this));
+
+ //Play a nice animation when the submarine is destroyed
+ moving->addTransition(this, SIGNAL(subMarineDestroyed()), destroyedState);
+
+ //Transition to final state when the destroyed animation is finished
+ destroyedState->addTransition(destroyedState, SIGNAL(animationFinished()), final);
+
+ //The machine has finished to be executed, then the submarine is dead
+ connect(machine,SIGNAL(finished()),this, SIGNAL(subMarineExecutionFinished()));
+
+ machine->start();
+}
+
+int SubMarine::points()
+{
+ return subPoints;
+}
+
+void SubMarine::setCurrentDirection(SubMarine::Movement direction)
+{
+ if (this->direction == direction)
+ return;
+ if (direction == SubMarine::Right && this->direction == SubMarine::None) {
+ graphicsRotation->setAngle(180);
+ }
+ this->direction = direction;
+}
+
+enum SubMarine::Movement SubMarine::currentDirection() const
+{
+ return direction;
+}
+
+void SubMarine::setCurrentSpeed(int speed)
+{
+ if (speed < 0 || speed > 3) {
+ qWarning("SubMarine::setCurrentSpeed : The speed is invalid");
+ }
+ this->speed = speed;
+ emit subMarineStateChanged();
+}
+
+int SubMarine::currentSpeed() const
+{
+ return speed;
+}
+
+void SubMarine::launchTorpedo(int speed)
+{
+ Torpedo * torp = new Torpedo();
+ GraphicsScene *scene = static_cast<GraphicsScene *>(this->scene());
+ scene->addItem(torp);
+ torp->setPos(x(), y());
+ torp->setCurrentSpeed(speed);
+ torp->launch();
+}
+
+void SubMarine::destroy()
+{
+ emit subMarineDestroyed();
+}
+
+int SubMarine::type() const
+{
+ return Type;
+}
diff --git a/demos/sub-attaq/submarine.h b/demos/sub-attaq/submarine.h
new file mode 100644
index 0000000..1e33ba0
--- /dev/null
+++ b/demos/sub-attaq/submarine.h
@@ -0,0 +1,96 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef __SUBMARINE__H__
+#define __SUBMARINE__H__
+
+//Qt
+#include <QtCore/QVariantAnimation>
+#include <QtGui/QGraphicsWidget>
+#include <QtGui/QGraphicsTransform>
+
+class PixmapItem;
+
+class Torpedo;
+
+class SubMarine : public QGraphicsWidget
+{
+Q_OBJECT
+public:
+ enum Movement {
+ None = 0,
+ Left,
+ Right
+ };
+ enum { Type = UserType + 1 };
+ SubMarine(int type, const QString &name, int points, QGraphicsItem * parent = 0, Qt::WindowFlags wFlags = 0);
+
+ int points();
+
+ void setCurrentDirection(Movement direction);
+ enum Movement currentDirection() const;
+
+ void setCurrentSpeed(int speed);
+ int currentSpeed() const;
+
+ void launchTorpedo(int speed);
+ void destroy();
+
+ virtual int type() const;
+
+ QGraphicsRotation *rotation() const { return graphicsRotation; }
+
+signals:
+ void subMarineDestroyed();
+ void subMarineExecutionFinished();
+ void subMarineStateChanged();
+
+private:
+ int subType;
+ QString subName;
+ int subPoints;
+ int speed;
+ Movement direction;
+ PixmapItem *pixmapItem;
+ QGraphicsRotation *graphicsRotation;
+};
+
+#endif //__SUBMARINE__H__
diff --git a/demos/sub-attaq/submarine_p.h b/demos/sub-attaq/submarine_p.h
new file mode 100644
index 0000000..520fe2f
--- /dev/null
+++ b/demos/sub-attaq/submarine_p.h
@@ -0,0 +1,138 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef SUBMARINE_P_H
+#define SUBMARINE_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+//Own
+#include "animationmanager.h"
+#include "submarine.h"
+#include "qanimationstate.h"
+
+//Qt
+#include <QtCore/QPropertyAnimation>
+#include <QtGui/QGraphicsScene>
+
+//This state is describing when the boat is moving right
+class MovementState : public QAnimationState
+{
+Q_OBJECT
+public:
+ MovementState(SubMarine *submarine, QState *parent = 0) : QAnimationState(parent)
+ {
+ movementAnimation = new QPropertyAnimation(submarine, "pos");
+ connect(movementAnimation,SIGNAL(valueChanged(const QVariant &)),this,SLOT(onAnimationMovementValueChanged(const QVariant &)));
+ setAnimation(movementAnimation);
+ AnimationManager::self()->registerAnimation(movementAnimation);
+ this->submarine = submarine;
+ }
+
+protected slots:
+ void onAnimationMovementValueChanged(const QVariant &)
+ {
+ if (qrand() % 200 + 1 == 3)
+ submarine->launchTorpedo(qrand() % 3 + 1);
+ }
+
+protected:
+ void onEntry(QEvent *e)
+ {
+ if (submarine->currentDirection() == SubMarine::Left) {
+ movementAnimation->setEndValue(QPointF(0,submarine->y()));
+ movementAnimation->setDuration(submarine->x()/submarine->currentSpeed()*12);
+ }
+ else /*if (submarine->currentDirection() == SubMarine::Right)*/ {
+ movementAnimation->setEndValue(QPointF(submarine->scene()->width()-submarine->size().width(),submarine->y()));
+ movementAnimation->setDuration((submarine->scene()->width()-submarine->size().width()-submarine->x())/submarine->currentSpeed()*12);
+ }
+ movementAnimation->setStartValue(submarine->pos());
+ QAnimationState::onEntry(e);
+ }
+
+private:
+ SubMarine *submarine;
+ QPropertyAnimation *movementAnimation;
+};
+
+//This state is describing when the boat is moving right
+class ReturnState : public QAnimationState
+{
+public:
+ ReturnState(SubMarine *submarine, QState *parent = 0) : QAnimationState(parent)
+ {
+ returnAnimation = new QPropertyAnimation(submarine->rotation(), "angle");
+ returnAnimation->setDuration(500);
+ AnimationManager::self()->registerAnimation(returnAnimation);
+ setAnimation(returnAnimation);
+ this->submarine = submarine;
+ }
+
+protected:
+ void onEntry(QEvent *e)
+ {
+ returnAnimation->stop();
+ returnAnimation->setEndValue(submarine->currentDirection() == SubMarine::Right ? 360. : 180.);
+ QAnimationState::onEntry(e);
+ }
+
+ void onExit(QEvent *e)
+ {
+ submarine->currentDirection() == SubMarine::Right ? submarine->setCurrentDirection(SubMarine::Left) : submarine->setCurrentDirection(SubMarine::Right);
+ QAnimationState::onExit(e);
+ }
+
+private:
+ SubMarine *submarine;
+ QPropertyAnimation *returnAnimation;
+};
+
+#endif // SUBMARINE_P_H
diff --git a/demos/sub-attaq/torpedo.cpp b/demos/sub-attaq/torpedo.cpp
new file mode 100644
index 0000000..8072cda
--- /dev/null
+++ b/demos/sub-attaq/torpedo.cpp
@@ -0,0 +1,120 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//Own
+#include "torpedo.h"
+#include "pixmapitem.h"
+#include "boat.h"
+#include "graphicsscene.h"
+#include "animationmanager.h"
+#include "qanimationstate.h"
+
+#include <QtCore/QPropertyAnimation>
+#include <QtCore/QStateMachine>
+#include <QtCore/QFinalState>
+
+Torpedo::Torpedo(QGraphicsItem * parent, Qt::WindowFlags wFlags)
+ : QGraphicsWidget(parent,wFlags), currentSpeed(0), launchAnimation(0)
+{
+ pixmapItem = new PixmapItem(QString::fromLatin1("torpedo"),GraphicsScene::Big, this);
+ setZValue(2);
+ setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+ setFlags(QGraphicsItem::ItemIsMovable);
+ resize(pixmapItem->boundingRect().size());
+}
+
+void Torpedo::launch()
+{
+ launchAnimation = new QPropertyAnimation(this, "pos");
+ AnimationManager::self()->registerAnimation(launchAnimation);
+ launchAnimation->setEndValue(QPointF(x(),qobject_cast<GraphicsScene *>(scene())->sealLevel() - 15));
+ launchAnimation->setEasingCurve(QEasingCurve::InQuad);
+ launchAnimation->setDuration(y()/currentSpeed*10);
+ connect(launchAnimation,SIGNAL(valueChanged(const QVariant &)),this,SLOT(onAnimationLaunchValueChanged(const QVariant &)));
+
+ //We setup the state machine of the torpedo
+ QStateMachine *machine = new QStateMachine(this);
+
+ //This state is when the launch animation is playing
+ QAnimationState *launched = new QAnimationState(machine);
+ launched->setAnimation(launchAnimation);
+
+ //End
+ QFinalState *final = new QFinalState(machine);
+
+ machine->setInitialState(launched);
+
+ //### Add a nice animation when the torpedo is destroyed
+ launched->addTransition(this, SIGNAL(torpedoExplosed()),final);
+
+ //If the animation is finished, then we move to the final state
+ launched->addTransition(launched, SIGNAL(animationFinished()), final);
+
+ //The machine has finished to be executed, then the boat is dead
+ connect(machine,SIGNAL(finished()),this, SIGNAL(torpedoExecutionFinished()));
+
+ machine->start();
+}
+
+void Torpedo::setCurrentSpeed(int speed)
+{
+ if (speed < 0) {
+ qWarning("Torpedo::setCurrentSpeed : The speed is invalid");
+ return;
+ }
+ currentSpeed = speed;
+}
+
+void Torpedo::onAnimationLaunchValueChanged(const QVariant &)
+{
+ foreach (QGraphicsItem *item , collidingItems(Qt::IntersectsItemBoundingRect)) {
+ if (item->type() == Boat::Type) {
+ Boat *b = static_cast<Boat *>(item);
+ b->destroy();
+ }
+ }
+}
+
+void Torpedo::destroy()
+{
+ launchAnimation->stop();
+ emit torpedoExplosed();
+}
diff --git a/demos/sub-attaq/torpedo.h b/demos/sub-attaq/torpedo.h
new file mode 100644
index 0000000..9c92040
--- /dev/null
+++ b/demos/sub-attaq/torpedo.h
@@ -0,0 +1,75 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef __TORPEDO__H__
+#define __TORPEDO__H__
+
+//Qt
+#include <QtCore/QObject>
+
+#include <QtCore/QVariantAnimation>
+#include <QtGui/QGraphicsWidget>
+
+class PixmapItem;
+
+class Torpedo : public QGraphicsWidget
+{
+Q_OBJECT
+public:
+ Torpedo(QGraphicsItem * parent = 0, Qt::WindowFlags wFlags = 0);
+ void launch();
+ void setCurrentSpeed(int speed);
+ void destroy();
+
+signals:
+ void torpedoExplosed();
+ void torpedoExecutionFinished();
+
+private slots:
+ void onAnimationLaunchValueChanged(const QVariant &);
+
+private:
+ int currentSpeed;
+ PixmapItem *pixmapItem;
+ QVariantAnimation *launchAnimation;
+};
+
+#endif //__TORPEDO__H__
diff --git a/demos/symbianpkgrules.pri b/demos/symbianpkgrules.pri
new file mode 100644
index 0000000..7e6852b
--- /dev/null
+++ b/demos/symbianpkgrules.pri
@@ -0,0 +1,13 @@
+!symbian: error(Only include this file for Symbian platforms)
+
+RSS_RULES ="group_name=\"QtDemos\";"
+
+vendorinfo = \
+ "; Localised Vendor name" \
+ "%{\"Nokia, Qt\"}" \
+ " " \
+ "; Unique Vendor name" \
+ ":\"Nokia, Qt\"" \
+ " "
+
+default_deployment.pkg_prerules += vendorinfo
diff --git a/demos/textedit/textedit.cpp b/demos/textedit/textedit.cpp
index 9cd6efd..5a20285 100644
--- a/demos/textedit/textedit.cpp
+++ b/demos/textedit/textedit.cpp
@@ -75,6 +75,7 @@ const QString rsrcPath = ":/images/win";
TextEdit::TextEdit(QWidget *parent)
: QMainWindow(parent)
{
+ setToolButtonStyle(Qt::ToolButtonFollowStyle);
setupFileActions();
setupEditActions();
setupTextActions();
@@ -127,7 +128,9 @@ TextEdit::TextEdit(QWidget *parent)
connect(textEdit, SIGNAL(copyAvailable(bool)), actionCut, SLOT(setEnabled(bool)));
connect(textEdit, SIGNAL(copyAvailable(bool)), actionCopy, SLOT(setEnabled(bool)));
+#ifndef QT_NO_CLIPBOARD
connect(QApplication::clipboard(), SIGNAL(dataChanged()), this, SLOT(clipboardDataChanged()));
+#endif
QString initialFile = ":/example.html";
const QStringList args = QCoreApplication::arguments();
@@ -157,13 +160,16 @@ void TextEdit::setupFileActions()
QAction *a;
- a = new QAction(QIcon(rsrcPath + "/filenew.png"), tr("&New"), this);
+ QIcon newIcon = QIcon::fromTheme("document-new", QIcon(rsrcPath + "/filenew.png"));
+ a = new QAction( newIcon, tr("&New"), this);
+ a->setPriority(QAction::LowPriority);
a->setShortcut(QKeySequence::New);
connect(a, SIGNAL(triggered()), this, SLOT(fileNew()));
tb->addAction(a);
menu->addAction(a);
- a = new QAction(QIcon(rsrcPath + "/fileopen.png"), tr("&Open..."), this);
+ a = new QAction(QIcon::fromTheme("document-open", QIcon(rsrcPath + "/fileopen.png")),
+ tr("&Open..."), this);
a->setShortcut(QKeySequence::Open);
connect(a, SIGNAL(triggered()), this, SLOT(fileOpen()));
tb->addAction(a);
@@ -171,7 +177,8 @@ void TextEdit::setupFileActions()
menu->addSeparator();
- actionSave = a = new QAction(QIcon(rsrcPath + "/filesave.png"), tr("&Save"), this);
+ actionSave = a = new QAction(QIcon::fromTheme("document-save", QIcon(rsrcPath + "/filesave.png")),
+ tr("&Save"), this);
a->setShortcut(QKeySequence::Save);
connect(a, SIGNAL(triggered()), this, SLOT(fileSave()));
a->setEnabled(false);
@@ -179,22 +186,28 @@ void TextEdit::setupFileActions()
menu->addAction(a);
a = new QAction(tr("Save &As..."), this);
+ a->setPriority(QAction::LowPriority);
connect(a, SIGNAL(triggered()), this, SLOT(fileSaveAs()));
menu->addAction(a);
menu->addSeparator();
#ifndef QT_NO_PRINTER
- a = new QAction(QIcon(rsrcPath + "/fileprint.png"), tr("&Print..."), this);
+ a = new QAction(QIcon::fromTheme("document-print", QIcon(rsrcPath + "/fileprint.png")),
+ tr("&Print..."), this);
+ a->setPriority(QAction::LowPriority);
a->setShortcut(QKeySequence::Print);
connect(a, SIGNAL(triggered()), this, SLOT(filePrint()));
tb->addAction(a);
menu->addAction(a);
- a = new QAction(QIcon(rsrcPath + "/fileprint.png"), tr("Print Preview..."), this);
+ a = new QAction(QIcon::fromTheme("fileprint", QIcon(rsrcPath + "/fileprint.png")),
+ tr("Print Preview..."), this);
connect(a, SIGNAL(triggered()), this, SLOT(filePrintPreview()));
menu->addAction(a);
- a = new QAction(QIcon(rsrcPath + "/exportpdf.png"), tr("&Export PDF..."), this);
+ a = new QAction(QIcon::fromTheme("exportpdf", QIcon(rsrcPath + "/exportpdf.png")),
+ tr("&Export PDF..."), this);
+ a->setPriority(QAction::LowPriority);
a->setShortcut(Qt::CTRL + Qt::Key_D);
connect(a, SIGNAL(triggered()), this, SLOT(filePrintPdf()));
tb->addAction(a);
@@ -214,33 +227,43 @@ void TextEdit::setupEditActions()
QToolBar *tb = new QToolBar(this);
tb->setWindowTitle(tr("Edit Actions"));
addToolBar(tb);
-
QMenu *menu = new QMenu(tr("&Edit"), this);
menuBar()->addMenu(menu);
QAction *a;
- a = actionUndo = new QAction(QIcon(rsrcPath + "/editundo.png"), tr("&Undo"), this);
+ a = actionUndo = new QAction(QIcon::fromTheme("edit-undo", QIcon(rsrcPath + "/editundo.png")),
+ tr("&Undo"), this);
a->setShortcut(QKeySequence::Undo);
tb->addAction(a);
menu->addAction(a);
- a = actionRedo = new QAction(QIcon(rsrcPath + "/editredo.png"), tr("&Redo"), this);
+ a = actionRedo = new QAction(QIcon::fromTheme("edit-redo", QIcon(rsrcPath + "/editredo.png")),
+ tr("&Redo"), this);
+ a->setPriority(QAction::LowPriority);
a->setShortcut(QKeySequence::Redo);
tb->addAction(a);
menu->addAction(a);
menu->addSeparator();
- a = actionCut = new QAction(QIcon(rsrcPath + "/editcut.png"), tr("Cu&t"), this);
+ a = actionCut = new QAction(QIcon::fromTheme("edit-cut", QIcon(rsrcPath + "/editcut.png")),
+ tr("Cu&t"), this);
+ a->setPriority(QAction::LowPriority);
a->setShortcut(QKeySequence::Cut);
tb->addAction(a);
menu->addAction(a);
- a = actionCopy = new QAction(QIcon(rsrcPath + "/editcopy.png"), tr("&Copy"), this);
+ a = actionCopy = new QAction(QIcon::fromTheme("edit-copy", QIcon(rsrcPath + "/editcopy.png")),
+ tr("&Copy"), this);
+ a->setPriority(QAction::LowPriority);
a->setShortcut(QKeySequence::Copy);
tb->addAction(a);
menu->addAction(a);
- a = actionPaste = new QAction(QIcon(rsrcPath + "/editpaste.png"), tr("&Paste"), this);
+ a = actionPaste = new QAction(QIcon::fromTheme("edit-paste", QIcon(rsrcPath + "/editpaste.png")),
+ tr("&Paste"), this);
+ a->setPriority(QAction::LowPriority);
a->setShortcut(QKeySequence::Paste);
tb->addAction(a);
menu->addAction(a);
+#ifndef QT_NO_CLIPBOARD
actionPaste->setEnabled(!QApplication::clipboard()->text().isEmpty());
+#endif
}
void TextEdit::setupTextActions()
@@ -252,9 +275,11 @@ void TextEdit::setupTextActions()
QMenu *menu = new QMenu(tr("F&ormat"), this);
menuBar()->addMenu(menu);
- actionTextBold = new QAction(QIcon(rsrcPath + "/textbold.png"), tr("&Bold"), this);
+ actionTextBold = new QAction(QIcon::fromTheme("format-text-bold", QIcon(rsrcPath + "/textbold.png")),
+ tr("&Bold"), this);
actionTextBold->setShortcut(Qt::CTRL + Qt::Key_B);
- QFont bold;
+ actionTextBold->setPriority(QAction::LowPriority);
+ QFont bold;
bold.setBold(true);
actionTextBold->setFont(bold);
connect(actionTextBold, SIGNAL(triggered()), this, SLOT(textBold()));
@@ -262,7 +287,9 @@ void TextEdit::setupTextActions()
menu->addAction(actionTextBold);
actionTextBold->setCheckable(true);
- actionTextItalic = new QAction(QIcon(rsrcPath + "/textitalic.png"), tr("&Italic"), this);
+ actionTextItalic = new QAction(QIcon::fromTheme("format-text-italic", QIcon(rsrcPath + "/textitalic.png")),
+ tr("&Italic"), this);
+ actionTextItalic->setPriority(QAction::LowPriority);
actionTextItalic->setShortcut(Qt::CTRL + Qt::Key_I);
QFont italic;
italic.setItalic(true);
@@ -272,8 +299,10 @@ void TextEdit::setupTextActions()
menu->addAction(actionTextItalic);
actionTextItalic->setCheckable(true);
- actionTextUnderline = new QAction(QIcon(rsrcPath + "/textunder.png"), tr("&Underline"), this);
+ actionTextUnderline = new QAction(QIcon::fromTheme("format-text-underline", QIcon(rsrcPath + "/textunder.png")),
+ tr("&Underline"), this);
actionTextUnderline->setShortcut(Qt::CTRL + Qt::Key_U);
+ actionTextUnderline->setPriority(QAction::LowPriority);
QFont underline;
underline.setUnderline(true);
actionTextUnderline->setFont(underline);
@@ -289,24 +318,29 @@ void TextEdit::setupTextActions()
// Make sure the alignLeft is always left of the alignRight
if (QApplication::isLeftToRight()) {
- actionAlignLeft = new QAction(QIcon(rsrcPath + "/textleft.png"), tr("&Left"), grp);
- actionAlignCenter = new QAction(QIcon(rsrcPath + "/textcenter.png"), tr("C&enter"), grp);
- actionAlignRight = new QAction(QIcon(rsrcPath + "/textright.png"), tr("&Right"), grp);
+ actionAlignLeft = new QAction(QIcon::fromTheme("format-justify-left", QIcon(rsrcPath + "/textleft.png")),
+ tr("&Left"), grp);
+ actionAlignCenter = new QAction(QIcon::fromTheme("format-justify-center", QIcon(rsrcPath + "/textcenter.png")), tr("C&enter"), grp);
+ actionAlignRight = new QAction(QIcon::fromTheme("format-justify-right", QIcon(rsrcPath + "/textright.png")), tr("&Right"), grp);
} else {
- actionAlignRight = new QAction(QIcon(rsrcPath + "/textright.png"), tr("&Right"), grp);
- actionAlignCenter = new QAction(QIcon(rsrcPath + "/textcenter.png"), tr("C&enter"), grp);
- actionAlignLeft = new QAction(QIcon(rsrcPath + "/textleft.png"), tr("&Left"), grp);
+ actionAlignRight = new QAction(QIcon::fromTheme("format-justify-right", QIcon(rsrcPath + "/textright.png")), tr("&Right"), grp);
+ actionAlignCenter = new QAction(QIcon::fromTheme("format-justify-center", QIcon(rsrcPath + "/textcenter.png")), tr("C&enter"), grp);
+ actionAlignLeft = new QAction(QIcon::fromTheme("format-justify-left", QIcon(rsrcPath + "/textleft.png")), tr("&Left"), grp);
}
- actionAlignJustify = new QAction(QIcon(rsrcPath + "/textjustify.png"), tr("&Justify"), grp);
+ actionAlignJustify = new QAction(QIcon::fromTheme("format-justify-fill", QIcon(rsrcPath + "/textjustify.png")), tr("&Justify"), grp);
actionAlignLeft->setShortcut(Qt::CTRL + Qt::Key_L);
actionAlignLeft->setCheckable(true);
+ actionAlignLeft->setPriority(QAction::LowPriority);
actionAlignCenter->setShortcut(Qt::CTRL + Qt::Key_E);
actionAlignCenter->setCheckable(true);
+ actionAlignCenter->setPriority(QAction::LowPriority);
actionAlignRight->setShortcut(Qt::CTRL + Qt::Key_R);
actionAlignRight->setCheckable(true);
+ actionAlignRight->setPriority(QAction::LowPriority);
actionAlignJustify->setShortcut(Qt::CTRL + Qt::Key_J);
actionAlignJustify->setCheckable(true);
+ actionAlignJustify->setPriority(QAction::LowPriority);
tb->addActions(grp->actions());
menu->addActions(grp->actions());
@@ -336,6 +370,8 @@ void TextEdit::setupTextActions()
comboStyle->addItem("Ordered List (Decimal)");
comboStyle->addItem("Ordered List (Alpha lower)");
comboStyle->addItem("Ordered List (Alpha upper)");
+ comboStyle->addItem("Ordered List (Roman lower)");
+ comboStyle->addItem("Ordered List (Roman upper)");
connect(comboStyle, SIGNAL(activated(int)),
this, SLOT(textStyle(int)));
@@ -573,6 +609,12 @@ void TextEdit::textStyle(int styleIndex)
case 6:
style = QTextListFormat::ListUpperAlpha;
break;
+ case 7:
+ style = QTextListFormat::ListLowerRoman;
+ break;
+ case 8:
+ style = QTextListFormat::ListUpperRoman;
+ break;
}
cursor.beginEditBlock();
@@ -638,7 +680,9 @@ void TextEdit::cursorPositionChanged()
void TextEdit::clipboardDataChanged()
{
+#ifndef QT_NO_CLIPBOARD
actionPaste->setEnabled(!QApplication::clipboard()->text().isEmpty());
+#endif
}
void TextEdit::about()
diff --git a/demos/textedit/textedit.pro b/demos/textedit/textedit.pro
index 1ef4256..9669ec8 100644
--- a/demos/textedit/textedit.pro
+++ b/demos/textedit/textedit.pro
@@ -19,3 +19,4 @@ sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.html *.doc images
sources.path = $$[QT_INSTALL_DEMOS]/textedit
INSTALLS += target sources
+symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
diff --git a/demos/undo/undo.pro b/demos/undo/undo.pro
index e26d07c..0667bdd 100644
--- a/demos/undo/undo.pro
+++ b/demos/undo/undo.pro
@@ -15,3 +15,4 @@ sources.files = $$SOURCES $$HEADERS *.pro icons $$RESOURCES $$FORMS
sources.path = $$[QT_INSTALL_DEMOS]/undo
INSTALLS += target sources
+symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)