summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsr2013-02-04 19:50:31 +0100
committersr2013-02-04 19:50:31 +0100
commit1a5709501f94014d41987b956338bb6424b9f90c (patch)
treed3b93fe8dc406bca56aff147ef5cc4cbf9ed6be0
parentTest (diff)
downloadpvs2-1a5709501f94014d41987b956338bb6424b9f90c.tar.gz
pvs2-1a5709501f94014d41987b956338bb6424b9f90c.tar.xz
pvs2-1a5709501f94014d41987b956338bb6424b9f90c.zip
Initial commit
-rw-r--r--cmake/FindVNC.cmake17
-rw-r--r--cmake/Uninstall.cmake21
-rw-r--r--gui/client/connect.ui114
-rw-r--r--gui/client/toolbar.ui191
-rw-r--r--gui/server_normal/mainwindow.ui166
-rw-r--r--gui/server_normal/sessionname.ui85
-rw-r--r--i18n/client/pvsclient_ar_JO.ts136
-rw-r--r--i18n/client/pvsclient_de_DE.ts522
-rw-r--r--i18n/client/pvsclient_es_MX.ts550
-rw-r--r--i18n/client/pvsclient_fr_FR.ts136
-rw-r--r--i18n/client/pvsclient_pl_PL.ts136
-rw-r--r--i18n/server/pvsmgr_ar_JO.ts117
-rw-r--r--i18n/server/pvsmgr_de_DE.ts177
-rw-r--r--i18n/server/pvsmgr_es_MX.ts750
-rw-r--r--i18n/server/pvsmgr_fr_FR.ts117
-rw-r--r--i18n/server/pvsmgr_pl_PL.ts117
-rw-r--r--icons/altexit.svg301
-rw-r--r--icons/altterm.svg498
-rw-r--r--icons/broadcast.svg32
-rw-r--r--icons/cam32.svg98
-rw-r--r--icons/cam_off32.svg109
-rw-r--r--icons/cam_on32.svg109
-rw-r--r--icons/chat_msg16.svg97
-rw-r--r--icons/darrow16.svg75
-rw-r--r--icons/dozent.svg303
-rw-r--r--icons/exit.svg301
-rw-r--r--icons/eye.svg227
-rw-r--r--icons/graduate.svg1932
-rw-r--r--icons/lock.svg545
-rw-r--r--icons/log-out.svg284
-rw-r--r--icons/ok16.svg75
-rw-r--r--icons/photo.svg1003
-rw-r--r--icons/screen.svg469
-rw-r--r--icons/student2all.svg2818
-rw-r--r--icons/student2tutor.svg2774
-rw-r--r--icons/terminal.svg390
-rw-r--r--icons/tutor2all.svg2913
-rw-r--r--icons/tutor2student.svg2608
-rw-r--r--icons/view-restore.svg422
-rw-r--r--pvsclient.qrc43
-rw-r--r--pvsmgr.qrc47
-rw-r--r--src/client/connectwindow/connectwindow.cpp284
-rw-r--r--src/client/connectwindow/connectwindow.h95
-rw-r--r--src/client/main.cpp41
-rw-r--r--src/client/net/serverconnection.cpp348
-rw-r--r--src/client/net/serverconnection.h62
-rw-r--r--src/client/toolbar/toolbar.cpp200
-rw-r--r--src/client/toolbar/toolbar.h78
-rwxr-xr-xsrc/client/util/platform/blankscreen.h25
-rwxr-xr-xsrc/client/util/platform/blankscreen_Win32.cpp41
-rwxr-xr-xsrc/client/util/platform/blankscreen_X11.cpp75
-rw-r--r--src/client/util/util.cpp25
-rw-r--r--src/client/util/util.h23
-rw-r--r--src/client/vnc/vncserver.cpp191
-rw-r--r--src/client/vnc/vncserver.h52
-rw-r--r--src/client/vnc/vncthread.cpp314
-rw-r--r--src/client/vnc/vncthread.h141
-rw-r--r--src/client/vnc/vncwindow.cpp277
-rw-r--r--src/client/vnc/vncwindow.h73
-rw-r--r--src/server/clicklabel/clicklabel.cpp14
-rw-r--r--src/server/clicklabel/clicklabel.h25
-rw-r--r--src/server/connectionframe/connectionframe.cpp278
-rw-r--r--src/server/connectionframe/connectionframe.h77
-rw-r--r--src/server/main.cpp41
-rw-r--r--src/server/mainwindow/mainwindow.cpp633
-rw-r--r--src/server/mainwindow/mainwindow.h76
-rw-r--r--src/server/net/certmanager.cpp92
-rw-r--r--src/server/net/certmanager.h29
-rw-r--r--src/server/net/client.cpp288
-rw-r--r--src/server/net/client.h104
-rw-r--r--src/server/net/discoverylistener.cpp165
-rw-r--r--src/server/net/discoverylistener.h40
-rw-r--r--src/server/net/listenserver.cpp40
-rw-r--r--src/server/net/listenserver.h30
-rw-r--r--src/server/net/sslserver.cpp113
-rw-r--r--src/server/net/sslserver.h50
-rw-r--r--src/server/sessionnamewindow/sessionnamewindow.cpp68
-rw-r--r--src/server/sessionnamewindow/sessionnamewindow.h38
-rw-r--r--src/server/util/global.cpp17
-rw-r--r--src/server/util/global.h29
-rw-r--r--src/server/util/util.cpp14
-rw-r--r--src/server/util/util.h17
-rw-r--r--src/shared/network.cpp50
-rw-r--r--src/shared/network.h25
-rw-r--r--src/shared/networkmessage.cpp296
-rw-r--r--src/shared/networkmessage.h69
-rw-r--r--src/shared/settings.h12
-rw-r--r--src/shared/util.cpp22
-rw-r--r--src/shared/util.h15
89 files changed, 26937 insertions, 0 deletions
diff --git a/cmake/FindVNC.cmake b/cmake/FindVNC.cmake
new file mode 100644
index 0000000..8b460d3
--- /dev/null
+++ b/cmake/FindVNC.cmake
@@ -0,0 +1,17 @@
+FIND_PATH(VNC_INCLUDES rfb.h /usr/include/rfb /usr/local/include/rfb)
+
+FIND_LIBRARY(VNC_LIBRARIES NAMES libvncclient.so PATH /usr/lib /usr/local/lib)
+
+IF (VNC_INCLUDES AND VNC_LIBRARIES)
+ SET(VNC_FOUND TRUE)
+ENDIF (VNC_INCLUDES AND VNC_LIBRARIES)
+
+IF (VNC_FOUND)
+ IF (NOT VNC_FIND_QUIETLY)
+ MESSAGE(STATUS "Found VNC: ${VNC_LIBRARIES}")
+ ENDIF (NOT VNC_FIND_QUIETLY)
+ELSE (VNC_FOUND)
+ IF (VNC_FIND_REQUIRED)
+ MESSAGE(FATAL_ERROR "Could not find VNC")
+ ENDIF (VNC_FIND_REQUIRED)
+ENDIF (VNC_FOUND) \ No newline at end of file
diff --git a/cmake/Uninstall.cmake b/cmake/Uninstall.cmake
new file mode 100644
index 0000000..dbda3a2
--- /dev/null
+++ b/cmake/Uninstall.cmake
@@ -0,0 +1,21 @@
+IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
+ MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"")
+ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
+
+FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
+STRING(REGEX REPLACE "\n" ";" files "${files}")
+FOREACH(file ${files})
+ MESSAGE(STATUS "Uninstalling: $ENV{DESTDIR}${file}")
+ IF(EXISTS "$ENV{DESTDIR}${file}")
+ EXEC_PROGRAM(
+ "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
+ OUTPUT_VARIABLE rm_out
+ RETURN_VALUE rm_retval
+ )
+ IF(NOT "${rm_retval}" STREQUAL 0)
+ MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
+ ENDIF(NOT "${rm_retval}" STREQUAL 0)
+ ELSE(EXISTS "$ENV{DESTDIR}${file}")
+ MESSAGE(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.")
+ ENDIF(EXISTS "$ENV{DESTDIR}${file}")
+ENDFOREACH(file)
diff --git a/gui/client/connect.ui b/gui/client/connect.ui
new file mode 100644
index 0000000..51c67f4
--- /dev/null
+++ b/gui/client/connect.ui
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Dialog</class>
+ <widget class="QDialog" name="Dialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>511</width>
+ <height>121</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Connect to PVS session</string>
+ </property>
+ <widget class="QGroupBox" name="grpSetname">
+ <property name="geometry">
+ <rect>
+ <x>3</x>
+ <y>10</y>
+ <width>504</width>
+ <height>61</height>
+ </rect>
+ </property>
+ <property name="title">
+ <string>Session Name</string>
+ </property>
+ <widget class="QPushButton" name="cmdOK">
+ <property name="geometry">
+ <rect>
+ <x>396</x>
+ <y>20</y>
+ <width>101</width>
+ <height>31</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string notr="true">&lt;connect&gt;</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QLineEdit" name="txtName">
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>371</width>
+ <height>31</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>14</pointsize>
+ <weight>75</weight>
+ <italic>true</italic>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="text">
+ <string notr="true"/>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QLabel" name="lblError">
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>70</y>
+ <width>381</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string notr="true"/>
+ </property>
+ </widget>
+ <widget class="QLabel" name="lblStatus">
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>90</y>
+ <width>381</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string notr="true"/>
+ </property>
+ </widget>
+ <widget class="QPushButton" name="cmdCancel">
+ <property name="geometry">
+ <rect>
+ <x>399</x>
+ <y>80</y>
+ <width>101</width>
+ <height>31</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>Hide</string>
+ </property>
+ <property name="autoDefault">
+ <bool>false</bool>
+ </property>
+ <property name="default">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/gui/client/toolbar.ui b/gui/client/toolbar.ui
new file mode 100644
index 0000000..20d3e9c
--- /dev/null
+++ b/gui/client/toolbar.ui
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ToolbarClass</class>
+ <widget class="QWidget" name="ToolbarClass">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>383</width>
+ <height>39</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Form</string>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">QFrame {
+ background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #f6f7fa, stop: 1 #dadbde);
+ border-radius: 0px;
+}
+QLabel {
+ background-color: none;
+}
+/* QPushButton */
+QPushButton {
+ background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #f6f7fa, stop: 1 #dadbde);
+ border: 2px solid #8f8f91;
+ border-radius: 4px;
+ min-width: 80px;
+}
+QPushButton:hover {
+ border: 2px solid rgb(0, 170, 255);
+}
+QPushButton:pressed {
+ background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #dadbde, stop: 1 #f6f7fa);
+}
+QPushButton::menu-indicator {
+ image: url(:/darrow16.svg);
+}
+/* QCheckBox */
+QCheckBox {
+}
+QCheckBox::indicator {
+ background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #f6f7fa, stop: 1 #dadbde);
+ border: 2px solid #8f8f91;
+ border-radius: 4px;
+ width: 16px;
+ height: 16px;
+}
+QCheckBox::indicator:unchecked {
+}
+QCheckBox::indicator:unchecked:hover {
+ border: 2px solid rgb(0, 170, 255);
+}
+QCheckBox::indicator:unchecked:pressed {
+ background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #dadbde, stop: 1 #f6f7fa);
+}
+QCheckBox::indicator:checked {
+ image: url(:/ok16.svg);
+}
+QCheckBox::indicator:checked:hover {
+ border: 2px solid rgb(0, 170, 255);
+}
+QCheckBox::indicator:checked:pressed {
+ background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #dadbde, stop: 1 #f6f7fa);
+}
+</string>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QFrame" name="frame">
+ <property name="frameShape">
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Raised</enum>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QPushButton" name="cmdMenu">
+ <property name="toolTip">
+ <string>Menu</string>
+ </property>
+ <property name="text">
+ <string notr="true">Menu</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>Host:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="cmdHost">
+ <property name="minimumSize">
+ <size>
+ <width>84</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Click to connect</string>
+ </property>
+ <property name="text">
+ <string>-</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="lblStatus">
+ <property name="styleSheet">
+ <string notr="true">color:red</string>
+ </property>
+ <property name="text">
+ <string notr="true">Offline</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_3">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string notr="true">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'DejaVu Sans'; font-size:10pt; font-weight:600; font-style:italic; color:#0055ff;&quot;&gt;PVS&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_3">
+ <property name="maximumSize">
+ <size>
+ <width>16</width>
+ <height>16</height>
+ </size>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="pixmap">
+ <pixmap resource="../../pvsclient.qrc">:/cam32.svg</pixmap>
+ </property>
+ <property name="scaledContents">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources>
+ <include location="../../pvsclient.qrc"/>
+ <include location="../../pvsclient.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/gui/server_normal/mainwindow.ui b/gui/server_normal/mainwindow.ui
new file mode 100644
index 0000000..ad9bcfb
--- /dev/null
+++ b/gui/server_normal/mainwindow.ui
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>838</width>
+ <height>607</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>PVS2 Manager</string>
+ </property>
+ <widget class="QWidget" name="centralWidget">
+ <layout class="QGridLayout" name="gridLayout">
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <item row="0" column="0">
+ <layout class="QVBoxLayout" name="mainLayout">
+ <property name="spacing">
+ <number>3</number>
+ </property>
+ <item>
+ <widget class="QFrame" name="frmRoom">
+ <property name="frameShape">
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="lineWidth">
+ <number>2</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QToolBar" name="toolBar">
+ <property name="maximumSize">
+ <size>
+ <width>129000</width>
+ <height>12900</height>
+ </size>
+ </property>
+ <property name="windowTitle">
+ <string>toolBar</string>
+ </property>
+ <property name="layoutDirection">
+ <enum>Qt::LeftToRight</enum>
+ </property>
+ <property name="autoFillBackground">
+ <bool>true</bool>
+ </property>
+ <property name="movable">
+ <bool>false</bool>
+ </property>
+ <property name="toolButtonStyle">
+ <enum>Qt::ToolButtonIconOnly</enum>
+ </property>
+ <property name="floatable">
+ <bool>false</bool>
+ </property>
+ <attribute name="toolBarArea">
+ <enum>LeftToolBarArea</enum>
+ </attribute>
+ <attribute name="toolBarBreak">
+ <bool>false</bool>
+ </attribute>
+ <addaction name="action_Exit"/>
+ <addaction name="separator"/>
+ <addaction name="action_Lock"/>
+ <addaction name="separator"/>
+ <addaction name="action_BroadcastScreen"/>
+ <addaction name="action_StudentToTutor"/>
+ <addaction name="separator"/>
+ <addaction name="action_TutorToAll"/>
+ <addaction name="action_TutorToStudent"/>
+ </widget>
+ <action name="action_Exit">
+ <property name="icon">
+ <iconset resource="../../pvsmgr.qrc">
+ <normaloff>:/exit</normaloff>
+ <normalon>:/exit</normalon>:/exit</iconset>
+ </property>
+ <property name="text">
+ <string>&amp;Exit</string>
+ </property>
+ <property name="toolTip">
+ <string>Exit</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+Q</string>
+ </property>
+ </action>
+ <action name="action_Lock">
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="icon">
+ <iconset resource="../../pvsmgr.qrc">
+ <normaloff>:/lock</normaloff>:/lock</iconset>
+ </property>
+ <property name="text">
+ <string>lock</string>
+ </property>
+ <property name="toolTip">
+ <string>Lock or Unlock all Clients</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+A</string>
+ </property>
+ </action>
+ <action name="action_BroadcastScreen">
+ <property name="icon">
+ <iconset resource="../../pvsmgr.qrc">
+ <normaloff>:/student2all</normaloff>:/student2all</iconset>
+ </property>
+ <property name="text">
+ <string>Broadcast Screen to Everyone</string>
+ </property>
+ <property name="toolTip">
+ <string>Student's Screen to Everyone</string>
+ </property>
+ </action>
+ <action name="action_StudentToTutor">
+ <property name="icon">
+ <iconset resource="../../pvsmgr.qrc">
+ <normaloff>:/student2tutor</normaloff>:/student2tutor</iconset>
+ </property>
+ <property name="text">
+ <string>Student's Screen to Tutor</string>
+ </property>
+ </action>
+ <action name="action_TutorToStudent">
+ <property name="icon">
+ <iconset resource="../../pvsmgr.qrc">
+ <normaloff>:/tutor2student</normaloff>:/tutor2student</iconset>
+ </property>
+ <property name="text">
+ <string>Tutor's Screen to Student</string>
+ </property>
+ </action>
+ <action name="action_TutorToAll">
+ <property name="icon">
+ <iconset resource="../../pvsmgr.qrc">
+ <normaloff>:/tutor2all</normaloff>:/tutor2all</iconset>
+ </property>
+ <property name="text">
+ <string>Tutor's Screen to Everyone</string>
+ </property>
+ </action>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <resources>
+ <include location="../../pvsmgr.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/gui/server_normal/sessionname.ui b/gui/server_normal/sessionname.ui
new file mode 100644
index 0000000..6171b60
--- /dev/null
+++ b/gui/server_normal/sessionname.ui
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>SessionName</class>
+ <widget class="QDialog" name="SessionName">
+ <property name="windowModality">
+ <enum>Qt::ApplicationModal</enum>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>178</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="windowTitle">
+ <string>Set session name</string>
+ </property>
+ <widget class="QLabel" name="label">
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>10</y>
+ <width>171</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>New session name</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" name="cmdRandom">
+ <property name="geometry">
+ <rect>
+ <x>240</x>
+ <y>80</y>
+ <width>151</width>
+ <height>27</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>Random name</string>
+ </property>
+ </widget>
+ <widget class="QDialogButtonBox" name="bboxOkCancel">
+ <property name="geometry">
+ <rect>
+ <x>210</x>
+ <y>140</y>
+ <width>179</width>
+ <height>27</height>
+ </rect>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ <widget class="QLineEdit" name="txtName">
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>30</y>
+ <width>381</width>
+ <height>31</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>14</pointsize>
+ <weight>75</weight>
+ <italic>true</italic>
+ <bold>true</bold>
+ </font>
+ </property>
+ </widget>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/i18n/client/pvsclient_ar_JO.ts b/i18n/client/pvsclient_ar_JO.ts
new file mode 100644
index 0000000..be8cf42
--- /dev/null
+++ b/i18n/client/pvsclient_ar_JO.ts
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>ConnectWindow</name>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="75"/>
+ <source>Connected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="74"/>
+ <source>&amp;Disconnect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="81"/>
+ <source>&amp;Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="83"/>
+ <source>&amp;Connect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="88"/>
+ <source>Ready to connect; please enter session name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="91"/>
+ <source>Scanning for session %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="95"/>
+ <source>Found session, connecting...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="98"/>
+ <source>Waiting for server challenge...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="101"/>
+ <source>Replied to challenge, sent own...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="104"/>
+ <source>Logging in...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="107"/>
+ <source>Connection established!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="113"/>
+ <source>Invalid hash: %1; invalid cert: %2; invalid iplist: %3; invalid sslhash: %4</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Dialog</name>
+ <message>
+ <location filename="../../build/ui_connect.h" line="80"/>
+ <source>Connect to PVS session</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_connect.h" line="81"/>
+ <source>Session Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_connect.h" line="82"/>
+ <source>Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Toolbar</name>
+ <message>
+ <location filename="../../src/client/toolbar/toolbar.cpp" line="38"/>
+ <source>&amp;Connect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/toolbar/toolbar.cpp" line="40"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/toolbar/toolbar.cpp" line="168"/>
+ <source>Offline</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/toolbar/toolbar.cpp" line="174"/>
+ <source>Online</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ToolbarClass</name>
+ <message>
+ <location filename="../../build/ui_toolbar.h" line="169"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_toolbar.h" line="171"/>
+ <source>Menu</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_toolbar.h" line="173"/>
+ <source>Host:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_toolbar.h" line="175"/>
+ <source>Click to connect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_toolbar.h" line="177"/>
+ <source>-</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/i18n/client/pvsclient_de_DE.ts b/i18n/client/pvsclient_de_DE.ts
new file mode 100644
index 0000000..2d7f7c7
--- /dev/null
+++ b/i18n/client/pvsclient_de_DE.ts
@@ -0,0 +1,522 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="de_DE" sourcelanguage="en_US">
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <source>Version: </source>
+ <translation type="obsolete">Version: </translation>
+ </message>
+</context>
+<context>
+ <name>AboutDialogClass</name>
+ <message>
+ <source>PVS - About</source>
+ <translation type="obsolete">PVS -Über</translation>
+ </message>
+ <message>
+ <source>About</source>
+ <translation type="obsolete">Über</translation>
+ </message>
+ <message>
+ <source>Authors</source>
+ <translation type="obsolete">Autoren</translation>
+ </message>
+ <message>
+ <source>Translation</source>
+ <translation type="obsolete">Übersetzung</translation>
+ </message>
+</context>
+<context>
+ <name>ClientChatDialog</name>
+ <message>
+ <source>&amp;Send File...</source>
+ <translation type="obsolete">Datei &amp;Senden...</translation>
+ </message>
+ <message>
+ <source> has joined the chat.</source>
+ <translation type="obsolete"> ist dem Chat beigetreten.</translation>
+ </message>
+ <message>
+ <source> has left the chat.</source>
+ <translation type="obsolete"> hat den Chat verlassen.</translation>
+ </message>
+ <message>
+ <source>PVS File Transfer</source>
+ <translation type="obsolete">PVS Dateiübertragung</translation>
+ </message>
+ <message>
+ <source>Send file &apos;</source>
+ <translation type="obsolete">Datei senden &apos;</translation>
+ </message>
+ <message>
+ <source>&apos; to </source>
+ <translation type="obsolete">&apos; an </translation>
+ </message>
+ <message>
+ <source>Connected.</source>
+ <translation type="obsolete">Verbunden.</translation>
+ </message>
+ <message>
+ <source>Disconnected.</source>
+ <translation type="obsolete">Getrennt.</translation>
+ </message>
+ <message>
+ <source>Message from &lt;</source>
+ <translation type="obsolete">Nachricht von &lt;</translation>
+ </message>
+</context>
+<context>
+ <name>ClientChatDialogClass</name>
+ <message>
+ <source>PVS - Chat </source>
+ <translation type="obsolete">PVS - Chat</translation>
+ </message>
+ <message>
+ <source>&amp;Send</source>
+ <translation type="obsolete">&amp;Senden</translation>
+ </message>
+</context>
+<context>
+ <name>ClientConfigDialogClass</name>
+ <message>
+ <source>PVS - Configuration</source>
+ <translation type="obsolete">PVS - Konfiguration</translation>
+ </message>
+ <message>
+ <source>Allow vnc access to lecturer?</source>
+ <translation type="obsolete">Dozenten VNC Zugriff erlauben?</translation>
+ </message>
+ <message>
+ <source>Full access</source>
+ <translation type="obsolete">Voller Zugriff</translation>
+ </message>
+ <message>
+ <source>View only</source>
+ <translation type="obsolete">Nur zuschauen</translation>
+ </message>
+ <message>
+ <source>None</source>
+ <translation type="obsolete">Kein</translation>
+ </message>
+ <message>
+ <source>Allow vnc access to other?</source>
+ <translation type="obsolete">Anderen VNC Zugriff erlauben?</translation>
+ </message>
+ <message>
+ <source>Accept chat messages</source>
+ <translation type="obsolete">Chat Nachrichten erlauben</translation>
+ </message>
+ <message>
+ <source>Accept file transfers</source>
+ <translation type="obsolete">Dateiübertragung erlauben</translation>
+ </message>
+ <message>
+ <source>Permissions</source>
+ <translation type="obsolete">Rechte</translation>
+ </message>
+ <message>
+ <source>Top Left</source>
+ <translation type="obsolete">Oben Links</translation>
+ </message>
+ <message>
+ <source>Top Center</source>
+ <translation type="obsolete">Oben Mitte</translation>
+ </message>
+ <message>
+ <source>Top Right</source>
+ <translation type="obsolete">Oben Rechts</translation>
+ </message>
+ <message>
+ <source>Bottom Left</source>
+ <translation type="obsolete">Unten Links</translation>
+ </message>
+ <message>
+ <source>Bottom Center</source>
+ <translation type="obsolete">Unten Mitte</translation>
+ </message>
+ <message>
+ <source>Bottom Right</source>
+ <translation type="obsolete">Unten Rechts</translation>
+ </message>
+ <message>
+ <source>Display</source>
+ <translation type="obsolete">Anzeige</translation>
+ </message>
+</context>
+<context>
+ <name>ClientFileReceiveDialog</name>
+ <message>
+ <source>PVS File Transfer</source>
+ <translation type="obsolete">PVS Dateiübertragung</translation>
+ </message>
+ <message>
+ <source>User &apos;</source>
+ <translation type="obsolete">Benutzer &apos;</translation>
+ </message>
+ <message>
+ <source>&apos; would like to send you a file: </source>
+ <translation type="obsolete">&apos; möchte ihnen eine Datei senden:</translation>
+ </message>
+ <message>
+ <source>Open File</source>
+ <translation type="obsolete">Datei Öffnen</translation>
+ </message>
+ <message>
+ <source>PVS - File Transfer</source>
+ <translation type="obsolete">PVS - Dateiübertragung</translation>
+ </message>
+ <message>
+ <source>File Transfer complete.</source>
+ <translation type="obsolete">Dateiübertragung beendet.</translation>
+ </message>
+ <message>
+ <source>File Transfer canceled!</source>
+ <translation type="obsolete">Dateiübertragung abgebrochen!</translation>
+ </message>
+</context>
+<context>
+ <name>ClientFileReceiveDialogClass</name>
+ <message>
+ <source>PVS - File Transfer</source>
+ <translation type="obsolete">PVS - Dateiübertragung</translation>
+ </message>
+ <message>
+ <source>Receiving from:</source>
+ <translation type="obsolete">Empfang von:</translation>
+ </message>
+ <message>
+ <source>unknown</source>
+ <translation type="obsolete">unbekannt</translation>
+ </message>
+ <message>
+ <source>0</source>
+ <translation type="obsolete">0</translation>
+ </message>
+ <message>
+ <source>/</source>
+ <translation type="obsolete">/</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Abbruch</translation>
+ </message>
+</context>
+<context>
+ <name>ClientFileSendDialog</name>
+ <message>
+ <source>Open File</source>
+ <translation type="obsolete">Datei Öffnen</translation>
+ </message>
+ <message>
+ <source>PVS - File Transfer</source>
+ <translation type="obsolete">PBS -Dateiübertragung</translation>
+ </message>
+ <message>
+ <source>File Transfer complete.</source>
+ <translation type="obsolete">Dateiübertragung beendet.</translation>
+ </message>
+ <message>
+ <source>File Transfer canceled!</source>
+ <translation type="obsolete">Dateiübertragung abgebrochen!</translation>
+ </message>
+</context>
+<context>
+ <name>ClientFileSendDialogClass</name>
+ <message>
+ <source>PVS - File Transfer</source>
+ <translation type="obsolete">PVS - Dateiübertragung</translation>
+ </message>
+ <message>
+ <source>Sending to:</source>
+ <translation type="obsolete">Senden an:</translation>
+ </message>
+ <message>
+ <source>unknown</source>
+ <translation type="obsolete">unbekannt</translation>
+ </message>
+ <message>
+ <source>0</source>
+ <translation type="obsolete">0</translation>
+ </message>
+ <message>
+ <source>/</source>
+ <translation type="obsolete">/</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Abbruch</translation>
+ </message>
+</context>
+<context>
+ <name>ClientNicklistDialogClass</name>
+ <message>
+ <source>PVS - Users</source>
+ <translation type="obsolete">PVS - Benutzer</translation>
+ </message>
+ <message>
+ <source>Select user:</source>
+ <translation type="obsolete">Benutzer auswählen:</translation>
+ </message>
+</context>
+<context>
+ <name>ClientToolbarClass</name>
+ <message>
+ <source>Menu</source>
+ <translation type="obsolete">Menü</translation>
+ </message>
+ <message>
+ <source>Click to connect</source>
+ <translation type="obsolete">Zum Verbinden Klicken</translation>
+ </message>
+ <message>
+ <source>Enable/Disable VNC only for this session</source>
+ <translation type="obsolete">VNC nur für diese Sitzung ein- und ausschalten</translation>
+ </message>
+ <message>
+ <source>Allow VNC</source>
+ <translation type="obsolete">VNC erlauben</translation>
+ </message>
+</context>
+<context>
+ <name>ConnectWindow</name>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="75"/>
+ <source>Connected.</source>
+ <translation type="unfinished">Verbunden.</translation>
+ </message>
+ <message>
+ <source>Connect</source>
+ <translation type="obsolete">Verbinden</translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="74"/>
+ <source>&amp;Disconnect</source>
+ <translation type="unfinished">&amp;Trennen</translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="81"/>
+ <source>&amp;Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="83"/>
+ <source>&amp;Connect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="88"/>
+ <source>Ready to connect; please enter session name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="91"/>
+ <source>Scanning for session %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="95"/>
+ <source>Found session, connecting...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="98"/>
+ <source>Waiting for server challenge...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="101"/>
+ <source>Replied to challenge, sent own...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="104"/>
+ <source>Logging in...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="107"/>
+ <source>Connection established!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="113"/>
+ <source>Invalid hash: %1; invalid cert: %2; invalid iplist: %3; invalid sslhash: %4</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Dialog</name>
+ <message>
+ <location filename="../../build/ui_connect.h" line="80"/>
+ <source>Connect to PVS session</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_connect.h" line="81"/>
+ <source>Session Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_connect.h" line="82"/>
+ <source>Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>InfoDialogClass</name>
+ <message>
+ <source>PVS - Information</source>
+ <translation type="obsolete">PVS - Information</translation>
+ </message>
+</context>
+<context>
+ <name>PVSGUI</name>
+ <message>
+ <source>Connect</source>
+ <translation type="obsolete">Verbinden</translation>
+ </message>
+ <message>
+ <source>Show &amp;toolbar</source>
+ <translation type="obsolete">&amp;Werkzeugleiste anzeigen</translation>
+ </message>
+ <message>
+ <source>&amp;Disconnect</source>
+ <translation type="obsolete">&amp;Trennen</translation>
+ </message>
+ <message>
+ <source>&amp;Send File</source>
+ <translation type="obsolete">Datei &amp;Senden</translation>
+ </message>
+ <message>
+ <source>&amp;Config</source>
+ <translation type="obsolete">&amp;Konfiguration</translation>
+ </message>
+ <message>
+ <source>&amp;Information</source>
+ <translation type="obsolete">&amp;Information</translation>
+ </message>
+ <message>
+ <source>&amp;About</source>
+ <translation type="obsolete">&amp;Über</translation>
+ </message>
+ <message>
+ <source>&amp;Quit</source>
+ <translation type="obsolete">&amp;Beenden</translation>
+ </message>
+ <message>
+ <source>PVS Connection</source>
+ <translation type="obsolete">PVS Verbindung</translation>
+ </message>
+ <message>
+ <source>Please enter password (If not needed leave blank):</source>
+ <translation type="obsolete">Bitte geben sie ein Passwor ein (Falls nicht erforderlich einfach leer lassen):</translation>
+ </message>
+ <message>
+ <source>Are you sure you want to disconnect?</source>
+ <translation type="obsolete">Sind sie sicher dass sie die Verbindung trennen möchten?</translation>
+ </message>
+ <message>
+ <source>PVS connection</source>
+ <translation type="obsolete">PVS Verbindung</translation>
+ </message>
+ <message>
+ <source>Connected to </source>
+ <translation type="obsolete">Verbunden mit </translation>
+ </message>
+ <message>
+ <source>Disconnected</source>
+ <translation type="obsolete">Getrennt</translation>
+ </message>
+ <message>
+ <source>New host available: </source>
+ <translation type="obsolete">Neuer Host verfügbar: </translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <source>Usage: pvsgui [OPTIONS]...</source>
+ <translation type="obsolete">Aufruf: pvsgui [OPTIONEN]...</translation>
+ </message>
+ <message>
+ <source>Start the Pool Video Switch GUI.</source>
+ <translation type="obsolete">Startet die Pool Video Switch GUI.</translation>
+ </message>
+ <message>
+ <source>Options:</source>
+ <translation type="obsolete">Optionen:</translation>
+ </message>
+ <message>
+ <source>Start only with systray icon.</source>
+ <translation type="obsolete">Starte nur mit Symbol in Systray.</translation>
+ </message>
+ <message>
+ <source>Show this help text and quit.</source>
+ <translation type="obsolete">Zeige diesen Hilfetext an und beende.</translation>
+ </message>
+ <message>
+ <source>Show version and quit.</source>
+ <translation type="obsolete">Zeige Versionsinformationen an und beende.</translation>
+ </message>
+ <message>
+ <source>Version: </source>
+ <translation type="obsolete">Version: </translation>
+ </message>
+</context>
+<context>
+ <name>Toolbar</name>
+ <message>
+ <source>&amp;Disconnect</source>
+ <translation type="obsolete">&amp;Trennen</translation>
+ </message>
+ <message>
+ <location filename="../../src/client/toolbar/toolbar.cpp" line="38"/>
+ <source>&amp;Connect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/toolbar/toolbar.cpp" line="40"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished">&amp;Beenden</translation>
+ </message>
+ <message>
+ <location filename="../../src/client/toolbar/toolbar.cpp" line="168"/>
+ <source>Offline</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/toolbar/toolbar.cpp" line="174"/>
+ <source>Online</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ToolbarClass</name>
+ <message>
+ <location filename="../../build/ui_toolbar.h" line="169"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_toolbar.h" line="171"/>
+ <source>Menu</source>
+ <translation type="unfinished">Menü</translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_toolbar.h" line="173"/>
+ <source>Host:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_toolbar.h" line="175"/>
+ <source>Click to connect</source>
+ <translation type="unfinished">Zum Verbinden Klicken</translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_toolbar.h" line="177"/>
+ <source>-</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/i18n/client/pvsclient_es_MX.ts b/i18n/client/pvsclient_es_MX.ts
new file mode 100644
index 0000000..5b68291
--- /dev/null
+++ b/i18n/client/pvsclient_es_MX.ts
@@ -0,0 +1,550 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="es_MX" sourcelanguage="en_US">
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <source>Version: </source>
+ <translation type="obsolete">Version: </translation>
+ </message>
+</context>
+<context>
+ <name>AboutDialogClass</name>
+ <message>
+ <source>PVS - About</source>
+ <translation type="obsolete">PVS - Acerca de</translation>
+ </message>
+ <message>
+ <source>&lt;a href=&quot;http://www.gnu.org/licenses/gpl-2.0.txt&quot;&gt;License: GNU General Public License Version 2&lt;/a&gt;</source>
+ <translation type="obsolete">&lt;a href=&quot;http://www.gnu.org/licenses/gpl-2.0.txt&quot;&gt;License: GNU General Public License Version 2&lt;/a&gt;</translation>
+ </message>
+ <message>
+ <source>About</source>
+ <translation type="obsolete">Acerca de</translation>
+ </message>
+ <message>
+ <source>Authors</source>
+ <translation type="obsolete">Autores</translation>
+ </message>
+ <message>
+ <source>Translation</source>
+ <translation type="obsolete">Traducción</translation>
+ </message>
+</context>
+<context>
+ <name>ClientChatDialog</name>
+ <message>
+ <source>&amp;Send File...</source>
+ <translation type="obsolete">Enviar archivo...</translation>
+ </message>
+ <message>
+ <source> has joined the chat.</source>
+ <translation type="obsolete"> ha ingresado al chat.</translation>
+ </message>
+ <message>
+ <source> has left the chat.</source>
+ <translation type="obsolete"> ha abandonado el chat</translation>
+ </message>
+ <message>
+ <source>PVS File Transfer</source>
+ <translation type="obsolete">PVS Transferencia de datos</translation>
+ </message>
+ <message>
+ <source>Send file &apos;</source>
+ <translation type="obsolete">Enviar archivo &apos;</translation>
+ </message>
+ <message>
+ <source>&apos; to </source>
+ <translation type="obsolete">&apos; a </translation>
+ </message>
+ <message>
+ <source>Connected.</source>
+ <translation type="obsolete">Conectado.</translation>
+ </message>
+ <message>
+ <source>Disconnected.</source>
+ <translation type="obsolete">Desconectado.</translation>
+ </message>
+ <message>
+ <source>Message from &lt;</source>
+ <translation type="obsolete">Mensaje de &lt;</translation>
+ </message>
+</context>
+<context>
+ <name>ClientChatDialogClass</name>
+ <message>
+ <source>PVS - Chat </source>
+ <translation type="obsolete">PVS - Chat</translation>
+ </message>
+ <message>
+ <source>&amp;Send</source>
+ <translation type="obsolete">&amp;Enviar</translation>
+ </message>
+</context>
+<context>
+ <name>ClientConfigDialogClass</name>
+ <message>
+ <source>PVS - Configuration</source>
+ <translation type="obsolete">PVS - Configuración</translation>
+ </message>
+ <message>
+ <source>Allow vnc access to lecturer?</source>
+ <translation type="obsolete">Permitir al profesor el acceso VNC?</translation>
+ </message>
+ <message>
+ <source>Full access</source>
+ <translation type="obsolete">Acceso completo</translation>
+ </message>
+ <message>
+ <source>View only</source>
+ <translation type="obsolete">Solo ver</translation>
+ </message>
+ <message>
+ <source>None</source>
+ <translation type="obsolete">Ninguno</translation>
+ </message>
+ <message>
+ <source>Allow vnc access to other?</source>
+ <translation type="obsolete">Permitir a otros el acceso VNC?</translation>
+ </message>
+ <message>
+ <source>Accept chat messages</source>
+ <translation type="obsolete">Aceptar mensages de chat?</translation>
+ </message>
+ <message>
+ <source>Accept file transfers</source>
+ <translation type="obsolete">Aceptar transferencias de datos?</translation>
+ </message>
+ <message>
+ <source>Permissions</source>
+ <translation type="obsolete">Permisos</translation>
+ </message>
+ <message>
+ <source>Top Left</source>
+ <translation type="obsolete">Esquina superior izquierda</translation>
+ </message>
+ <message>
+ <source>Top Center</source>
+ <translation type="obsolete">Arriba centrado</translation>
+ </message>
+ <message>
+ <source>Top Right</source>
+ <translation type="obsolete">Esquina superion derecha</translation>
+ </message>
+ <message>
+ <source>Bottom Left</source>
+ <translation type="obsolete">Esquina inferior izquierda</translation>
+ </message>
+ <message>
+ <source>Bottom Center</source>
+ <translation type="obsolete">Abajo centrado</translation>
+ </message>
+ <message>
+ <source>Bottom Right</source>
+ <translation type="obsolete">Esquina inferior derecha</translation>
+ </message>
+ <message>
+ <source>Display</source>
+ <translation type="obsolete">Pantalla</translation>
+ </message>
+</context>
+<context>
+ <name>ClientFileReceiveDialog</name>
+ <message>
+ <source>PVS File Transfer</source>
+ <translation type="obsolete">PVS Transferencia de datos</translation>
+ </message>
+ <message>
+ <source>User &apos;</source>
+ <translation type="obsolete">Usuario &apos;</translation>
+ </message>
+ <message>
+ <source>&apos; would like to send you a file: </source>
+ <translation type="obsolete">&apos; desea enviarle un archivo: </translation>
+ </message>
+ <message>
+ <source>Open File</source>
+ <translation type="obsolete">Abiri archivo</translation>
+ </message>
+ <message>
+ <source>PVS - File Transfer</source>
+ <translation type="obsolete">PVS - Transferencia de datos</translation>
+ </message>
+ <message>
+ <source>File Transfer complete.</source>
+ <translation type="obsolete">La transferencia de datos ha sido completada.</translation>
+ </message>
+ <message>
+ <source>File Transfer canceled!</source>
+ <translation type="obsolete">La transferencia de datos ha sido cancelada!</translation>
+ </message>
+</context>
+<context>
+ <name>ClientFileReceiveDialogClass</name>
+ <message>
+ <source>PVS - File Transfer</source>
+ <translation type="obsolete">PVS - Transferencia de datos</translation>
+ </message>
+ <message>
+ <source>Receiving from:</source>
+ <translation type="obsolete">Recibiendo de:</translation>
+ </message>
+ <message>
+ <source>unknown</source>
+ <translation type="obsolete">desconocido</translation>
+ </message>
+ <message>
+ <source>0</source>
+ <translation type="obsolete">0</translation>
+ </message>
+ <message>
+ <source>/</source>
+ <translation type="obsolete">/</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>ClientFileSendDialog</name>
+ <message>
+ <source>Open File</source>
+ <translation type="obsolete">Abrir archivo</translation>
+ </message>
+ <message>
+ <source>PVS - File Transfer</source>
+ <translation type="obsolete">PVS - Transferencia de datos</translation>
+ </message>
+ <message>
+ <source>File Transfer complete.</source>
+ <translation type="obsolete">La transferencia de datos ha sido completada.</translation>
+ </message>
+ <message>
+ <source>File Transfer canceled!</source>
+ <translation type="obsolete">La transferencia de datos ha sido cancelada!</translation>
+ </message>
+</context>
+<context>
+ <name>ClientFileSendDialogClass</name>
+ <message>
+ <source>PVS - File Transfer</source>
+ <translation type="obsolete">PVS - Transferencia de datos</translation>
+ </message>
+ <message>
+ <source>Sending to:</source>
+ <translation type="obsolete">Enviando a:</translation>
+ </message>
+ <message>
+ <source>unknown</source>
+ <translation type="obsolete">desconocido</translation>
+ </message>
+ <message>
+ <source>0</source>
+ <translation type="obsolete">0</translation>
+ </message>
+ <message>
+ <source>/</source>
+ <translation type="obsolete">/</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>ClientNicklistDialogClass</name>
+ <message>
+ <source>PVS - Users</source>
+ <translation type="obsolete">PVS - Usuarios</translation>
+ </message>
+ <message>
+ <source>Select user:</source>
+ <translation type="obsolete">Seleccionar usuario:</translation>
+ </message>
+</context>
+<context>
+ <name>ClientToolbarClass</name>
+ <message>
+ <source>Form</source>
+ <translation type="obsolete">de</translation>
+ </message>
+ <message>
+ <source>Menu</source>
+ <translation type="obsolete">Menu</translation>
+ </message>
+ <message>
+ <source>Host:</source>
+ <translation type="obsolete">Host:</translation>
+ </message>
+ <message>
+ <source>Click to connect</source>
+ <translation type="obsolete">Click para conectar</translation>
+ </message>
+ <message>
+ <source>-</source>
+ <translation type="obsolete">-</translation>
+ </message>
+ <message>
+ <source>Enable/Disable VNC only for this session</source>
+ <translation type="obsolete">Avilitar/Desavilitar VNC solamente para esta sesión</translation>
+ </message>
+ <message>
+ <source>Allow VNC</source>
+ <translation type="obsolete">Permitir VNC</translation>
+ </message>
+ <message>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;DejaVu Sans&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt; font-weight:600; font-style:italic; color:#0055ff;&quot;&gt;Pool Video Switch&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="obsolete">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;DejaVu Sans&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt; font-weight:600; font-style:italic; color:#0055ff;&quot;&gt;Pool Video Switch&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>ConnectWindow</name>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="75"/>
+ <source>Connected.</source>
+ <translation type="unfinished">Conectado.</translation>
+ </message>
+ <message>
+ <source>Connect</source>
+ <translation type="obsolete">Conectar</translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="74"/>
+ <source>&amp;Disconnect</source>
+ <translation type="unfinished">&amp;Desconectar</translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="81"/>
+ <source>&amp;Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="83"/>
+ <source>&amp;Connect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="88"/>
+ <source>Ready to connect; please enter session name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="91"/>
+ <source>Scanning for session %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="95"/>
+ <source>Found session, connecting...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="98"/>
+ <source>Waiting for server challenge...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="101"/>
+ <source>Replied to challenge, sent own...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="104"/>
+ <source>Logging in...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="107"/>
+ <source>Connection established!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="113"/>
+ <source>Invalid hash: %1; invalid cert: %2; invalid iplist: %3; invalid sslhash: %4</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Dialog</name>
+ <message>
+ <location filename="../../build/ui_connect.h" line="80"/>
+ <source>Connect to PVS session</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_connect.h" line="81"/>
+ <source>Session Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_connect.h" line="82"/>
+ <source>Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>InfoDialogClass</name>
+ <message>
+ <source>PVS - Information</source>
+ <translation type="obsolete">PVS - Información</translation>
+ </message>
+ <message>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;DejaVu Sans&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:72pt; font-weight:600; color:#0000ff;&quot;&gt;HOST&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="obsolete">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;DejaVu Sans&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:72pt; font-weight:600; color:#0000ff;&quot;&gt;HOST&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;DejaVu Sans&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:48pt; font-weight:600; color:#ff0000;&quot;&gt;PASSWD&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="obsolete">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;DejaVu Sans&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:48pt; font-weight:600; color:#ff0000;&quot;&gt;PASSWD&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>PVSGUI</name>
+ <message>
+ <source>Connect</source>
+ <translation type="obsolete">Conectar</translation>
+ </message>
+ <message>
+ <source>&amp;Disconnect</source>
+ <translation type="obsolete">&amp;Desconectar</translation>
+ </message>
+ <message>
+ <source>C&amp;hat</source>
+ <translation type="obsolete">???</translation>
+ </message>
+ <message>
+ <source>&amp;Send File</source>
+ <translation type="obsolete">&amp;Enviar archivo</translation>
+ </message>
+ <message>
+ <source>&amp;Config</source>
+ <translation type="obsolete">&amp;Configuración</translation>
+ </message>
+ <message>
+ <source>&amp;Information</source>
+ <translation type="obsolete">&amp;Información</translation>
+ </message>
+ <message>
+ <source>&amp;About</source>
+ <translation type="obsolete">&amp;Acerca de</translation>
+ </message>
+ <message>
+ <source>&amp;Quit</source>
+ <translation type="obsolete">&amp;Cerrar</translation>
+ </message>
+ <message>
+ <source>PVS Connection</source>
+ <translation type="obsolete">PVS Connección</translation>
+ </message>
+ <message>
+ <source>Please enter password (If not needed leave blank):</source>
+ <translation type="obsolete">Porfavor ingrese una contraseña (Deje la seccion vacia si no lo necesita):</translation>
+ </message>
+ <message>
+ <source>Are you sure you want to disconnect?</source>
+ <translation type="obsolete">Realmente desea desconectarse?</translation>
+ </message>
+ <message>
+ <source>PVS connection</source>
+ <translation type="obsolete">PVS Connección</translation>
+ </message>
+ <message>
+ <source>Connected to </source>
+ <translation type="obsolete">Connectar a </translation>
+ </message>
+ <message>
+ <source>Disconnected</source>
+ <translation type="obsolete">Desconectado</translation>
+ </message>
+ <message>
+ <source>New host available: </source>
+ <translation type="obsolete">Nuevo Host disponible: </translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <source>Version: </source>
+ <translation type="obsolete">Version: </translation>
+ </message>
+</context>
+<context>
+ <name>Toolbar</name>
+ <message>
+ <source>&amp;Disconnect</source>
+ <translation type="obsolete">&amp;Desconectar</translation>
+ </message>
+ <message>
+ <location filename="../../src/client/toolbar/toolbar.cpp" line="38"/>
+ <source>&amp;Connect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/toolbar/toolbar.cpp" line="40"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished">&amp;Cerrar</translation>
+ </message>
+ <message>
+ <location filename="../../src/client/toolbar/toolbar.cpp" line="168"/>
+ <source>Offline</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/toolbar/toolbar.cpp" line="174"/>
+ <source>Online</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ToolbarClass</name>
+ <message>
+ <location filename="../../build/ui_toolbar.h" line="169"/>
+ <source>Form</source>
+ <translation type="unfinished">de</translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_toolbar.h" line="171"/>
+ <source>Menu</source>
+ <translation type="unfinished">Menu</translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_toolbar.h" line="173"/>
+ <source>Host:</source>
+ <translation type="unfinished">Host:</translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_toolbar.h" line="175"/>
+ <source>Click to connect</source>
+ <translation type="unfinished">Click para conectar</translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_toolbar.h" line="177"/>
+ <source>-</source>
+ <translation type="unfinished">-</translation>
+ </message>
+</context>
+</TS>
diff --git a/i18n/client/pvsclient_fr_FR.ts b/i18n/client/pvsclient_fr_FR.ts
new file mode 100644
index 0000000..be8cf42
--- /dev/null
+++ b/i18n/client/pvsclient_fr_FR.ts
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>ConnectWindow</name>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="75"/>
+ <source>Connected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="74"/>
+ <source>&amp;Disconnect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="81"/>
+ <source>&amp;Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="83"/>
+ <source>&amp;Connect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="88"/>
+ <source>Ready to connect; please enter session name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="91"/>
+ <source>Scanning for session %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="95"/>
+ <source>Found session, connecting...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="98"/>
+ <source>Waiting for server challenge...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="101"/>
+ <source>Replied to challenge, sent own...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="104"/>
+ <source>Logging in...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="107"/>
+ <source>Connection established!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="113"/>
+ <source>Invalid hash: %1; invalid cert: %2; invalid iplist: %3; invalid sslhash: %4</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Dialog</name>
+ <message>
+ <location filename="../../build/ui_connect.h" line="80"/>
+ <source>Connect to PVS session</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_connect.h" line="81"/>
+ <source>Session Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_connect.h" line="82"/>
+ <source>Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Toolbar</name>
+ <message>
+ <location filename="../../src/client/toolbar/toolbar.cpp" line="38"/>
+ <source>&amp;Connect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/toolbar/toolbar.cpp" line="40"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/toolbar/toolbar.cpp" line="168"/>
+ <source>Offline</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/toolbar/toolbar.cpp" line="174"/>
+ <source>Online</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ToolbarClass</name>
+ <message>
+ <location filename="../../build/ui_toolbar.h" line="169"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_toolbar.h" line="171"/>
+ <source>Menu</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_toolbar.h" line="173"/>
+ <source>Host:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_toolbar.h" line="175"/>
+ <source>Click to connect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_toolbar.h" line="177"/>
+ <source>-</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/i18n/client/pvsclient_pl_PL.ts b/i18n/client/pvsclient_pl_PL.ts
new file mode 100644
index 0000000..be8cf42
--- /dev/null
+++ b/i18n/client/pvsclient_pl_PL.ts
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>ConnectWindow</name>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="75"/>
+ <source>Connected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="74"/>
+ <source>&amp;Disconnect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="81"/>
+ <source>&amp;Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="83"/>
+ <source>&amp;Connect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="88"/>
+ <source>Ready to connect; please enter session name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="91"/>
+ <source>Scanning for session %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="95"/>
+ <source>Found session, connecting...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="98"/>
+ <source>Waiting for server challenge...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="101"/>
+ <source>Replied to challenge, sent own...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="104"/>
+ <source>Logging in...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="107"/>
+ <source>Connection established!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/connectwindow/connectwindow.cpp" line="113"/>
+ <source>Invalid hash: %1; invalid cert: %2; invalid iplist: %3; invalid sslhash: %4</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Dialog</name>
+ <message>
+ <location filename="../../build/ui_connect.h" line="80"/>
+ <source>Connect to PVS session</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_connect.h" line="81"/>
+ <source>Session Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_connect.h" line="82"/>
+ <source>Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Toolbar</name>
+ <message>
+ <location filename="../../src/client/toolbar/toolbar.cpp" line="38"/>
+ <source>&amp;Connect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/toolbar/toolbar.cpp" line="40"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/toolbar/toolbar.cpp" line="168"/>
+ <source>Offline</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/client/toolbar/toolbar.cpp" line="174"/>
+ <source>Online</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ToolbarClass</name>
+ <message>
+ <location filename="../../build/ui_toolbar.h" line="169"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_toolbar.h" line="171"/>
+ <source>Menu</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_toolbar.h" line="173"/>
+ <source>Host:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_toolbar.h" line="175"/>
+ <source>Click to connect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_toolbar.h" line="177"/>
+ <source>-</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/i18n/server/pvsmgr_ar_JO.ts b/i18n/server/pvsmgr_ar_JO.ts
new file mode 100644
index 0000000..71f8e51
--- /dev/null
+++ b/i18n/server/pvsmgr_ar_JO.ts
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="130"/>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="59"/>
+ <source>Exit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="335"/>
+ <source>Session Name: %1 [click to edit]</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="371"/>
+ <source>No Projection Source selected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="371"/>
+ <source>You did not select any active client as the connection source.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="575"/>
+ <source>Projection Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="576"/>
+ <source>Could not send screen contents of %1 to other clients: VNC Startup failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="135"/>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="60"/>
+ <source>Lock or Unlock all Clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="127"/>
+ <source>PVS2 Manager</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="128"/>
+ <source>&amp;Exit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="132"/>
+ <source>Ctrl+Q</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="133"/>
+ <source>lock</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="137"/>
+ <source>Ctrl+A</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="138"/>
+ <source>Broadcast Screen to Everyone</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="140"/>
+ <source>Student&apos;s Screen to Everyone</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="142"/>
+ <source>Student&apos;s Screen to Tutor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="143"/>
+ <source>Tutor&apos;s Screen to Student</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="144"/>
+ <source>Tutor&apos;s Screen to Everyone</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="145"/>
+ <source>toolBar</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SessionName</name>
+ <message>
+ <location filename="../../build/ui_sessionname.h" line="72"/>
+ <source>Set session name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_sessionname.h" line="73"/>
+ <source>New session name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_sessionname.h" line="74"/>
+ <source>Random name</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/i18n/server/pvsmgr_de_DE.ts b/i18n/server/pvsmgr_de_DE.ts
new file mode 100644
index 0000000..abf597e
--- /dev/null
+++ b/i18n/server/pvsmgr_de_DE.ts
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="de_DE" sourcelanguage="en_US">
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <source>Version: </source>
+ <translation type="obsolete">Version:</translation>
+ </message>
+</context>
+<context>
+ <name>AboutDialogClass</name>
+ <message>
+ <source>PVS - About</source>
+ <translation type="obsolete">PVS - Über</translation>
+ </message>
+ <message>
+ <source>About</source>
+ <translation type="obsolete">Über</translation>
+ </message>
+ <message>
+ <source>Authors</source>
+ <translation type="obsolete">Autoren</translation>
+ </message>
+ <message>
+ <source>Translation</source>
+ <translation type="obsolete">Übersetzung</translation>
+ </message>
+</context>
+<context>
+ <name>ClientFileSendDialogClass</name>
+ <message>
+ <source>PVS - File Transfer</source>
+ <translation type="obsolete">PVS - Dateiübertragung</translation>
+ </message>
+ <message>
+ <source>Sending to:</source>
+ <translation type="obsolete">Senden an:</translation>
+ </message>
+ <message>
+ <source>unknown</source>
+ <translation type="obsolete">unbekannt</translation>
+ </message>
+ <message>
+ <source>0</source>
+ <translation type="obsolete">0</translation>
+ </message>
+ <message>
+ <source>/</source>
+ <translation type="obsolete">/</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Abbruch</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="130"/>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="59"/>
+ <source>Exit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="335"/>
+ <source>Session Name: %1 [click to edit]</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="371"/>
+ <source>No Projection Source selected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="371"/>
+ <source>You did not select any active client as the connection source.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="575"/>
+ <source>Projection Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="576"/>
+ <source>Could not send screen contents of %1 to other clients: VNC Startup failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="135"/>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="60"/>
+ <source>Lock or Unlock all Clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="127"/>
+ <source>PVS2 Manager</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="128"/>
+ <source>&amp;Exit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="132"/>
+ <source>Ctrl+Q</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="133"/>
+ <source>lock</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="137"/>
+ <source>Ctrl+A</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="138"/>
+ <source>Broadcast Screen to Everyone</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="140"/>
+ <source>Student&apos;s Screen to Everyone</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="142"/>
+ <source>Student&apos;s Screen to Tutor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="143"/>
+ <source>Tutor&apos;s Screen to Student</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="144"/>
+ <source>Tutor&apos;s Screen to Everyone</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="145"/>
+ <source>toolBar</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerFileTransfert</name>
+ <message>
+ <source>PVS - File Transfer</source>
+ <translation type="obsolete">PVS - Dateiübertragung</translation>
+ </message>
+</context>
+<context>
+ <name>SessionName</name>
+ <message>
+ <location filename="../../build/ui_sessionname.h" line="72"/>
+ <source>Set session name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_sessionname.h" line="73"/>
+ <source>New session name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_sessionname.h" line="74"/>
+ <source>Random name</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/i18n/server/pvsmgr_es_MX.ts b/i18n/server/pvsmgr_es_MX.ts
new file mode 100644
index 0000000..ec161f7
--- /dev/null
+++ b/i18n/server/pvsmgr_es_MX.ts
@@ -0,0 +1,750 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="es_MX" sourcelanguage="en_US">
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <source>Version: </source>
+ <translation type="obsolete">Version: </translation>
+ </message>
+</context>
+<context>
+ <name>AboutDialogClass</name>
+ <message>
+ <source>PVS - About</source>
+ <translation type="obsolete">PVS - Acerca de</translation>
+ </message>
+ <message>
+ <source>&lt;a href=&quot;http://www.gnu.org/licenses/gpl-2.0.txt&quot;&gt;License: GNU General Public License Version 2&lt;/a&gt;</source>
+ <translation type="obsolete">&lt;a href=&quot;http://www.gnu.org/licenses/gpl-2.0.txt&quot;&gt;Licencia: GNU General Public License Version 2&lt;/a&gt;</translation>
+ </message>
+ <message>
+ <source>About</source>
+ <translation type="obsolete">Acerca de</translation>
+ </message>
+ <message>
+ <source>Authors</source>
+ <translation type="obsolete">Autores</translation>
+ </message>
+ <message>
+ <source>Translation</source>
+ <translation type="obsolete">Traducción</translation>
+ </message>
+</context>
+<context>
+ <name>ClientFileSendDialogClass</name>
+ <message>
+ <source>PVS - File Transfer</source>
+ <translation type="obsolete">PVS - Transferencia de datos</translation>
+ </message>
+ <message>
+ <source>Sending to:</source>
+ <translation type="obsolete">Enviando a:</translation>
+ </message>
+ <message>
+ <source>unknown</source>
+ <translation type="obsolete">desconocido</translation>
+ </message>
+ <message>
+ <source>0</source>
+ <translation type="obsolete">0</translation>
+ </message>
+ <message>
+ <source>/</source>
+ <translation type="obsolete">/</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>ConnectionFrame</name>
+ <message>
+ <source>&amp;Remove dummy...</source>
+ <translation type="obsolete">&amp;Remover dummy...</translation>
+ </message>
+ <message>
+ <source>&amp;Lock Client(s)</source>
+ <translation type="obsolete">&amp;Bloquear Cliente(s)</translation>
+ </message>
+ <message>
+ <source>&amp;Unlock Client(s)</source>
+ <translation type="obsolete">&amp;Desbloquear Cliente(s)</translation>
+ </message>
+ <message>
+ <source>&amp;MsgLock Client(s)</source>
+ <translation type="obsolete">&amp;Bloquear Cliente(s) con mensaje</translation>
+ </message>
+ <message>
+ <source>&amp;MsgLock all Client(s)</source>
+ <translation type="obsolete">&amp;Bloquear todos los clientes con mensaje</translation>
+ </message>
+ <message>
+ <source>&amp;Message Client(s)</source>
+ <translation type="obsolete">&amp;Enviar mensaje a Cliente(s)</translation>
+ </message>
+ <message>
+ <source>&amp;Projection</source>
+ <translation type="obsolete">&amp;Proyección</translation>
+ </message>
+ <message>
+ <source>&amp;Unprojection</source>
+ <translation type="obsolete">Retirar proyección</translation>
+ </message>
+</context>
+<context>
+ <name>ConnectionList</name>
+ <message>
+ <source>Name</source>
+ <translation type="obsolete">Nombre</translation>
+ </message>
+ <message>
+ <source>IP</source>
+ <translation type="obsolete">IP</translation>
+ </message>
+ <message>
+ <source>Username</source>
+ <translation type="obsolete">Nombre de usuario</translation>
+ </message>
+ <message>
+ <source>&amp;Lock Client(s)</source>
+ <translation type="obsolete">&amp;Bloquear cliente(s)</translation>
+ </message>
+ <message>
+ <source>&amp;Unlock Client(s)</source>
+ <translation type="obsolete">&amp;Desbloquear Cliente(s)</translation>
+ </message>
+ <message>
+ <source>&amp;MsgLock Client(s)</source>
+ <translation type="obsolete">&amp;Bloquear Cliente(s) con mensaje</translation>
+ </message>
+ <message>
+ <source>&amp;MsgLock all Client(s)</source>
+ <translation type="obsolete">&amp;Bloquear todos los Clientes con mensaje</translation>
+ </message>
+ <message>
+ <source>&amp;Message Client(s)</source>
+ <translation type="obsolete">&amp;Enviar mensaje a Cliente(s)</translation>
+ </message>
+ <message>
+ <source>&amp;Projection</source>
+ <translation type="obsolete">Proyección</translation>
+ </message>
+ <message>
+ <source>&amp;Unprojection</source>
+ <translation type="obsolete">Retirar proyección</translation>
+ </message>
+ <message>
+ <source>No Target is available for a projection!
+Perform an unprojection to get a target.</source>
+ <translation type="obsolete">El objetivo no esta disponible para ser proyectado! Retire una proyección para obtener un objetivo.</translation>
+ </message>
+ <message>
+ <source>This source is already in a projection process involved.
+ You can perform a unprojection on it to get it free.</source>
+ <translation type="obsolete">Esta fuente ya ha sido proyectada. Usted puede remover la proyección para liberar la fuente.</translation>
+ </message>
+ <message>
+ <source>To perform a projection you have to select only one source in a list with more than one index!</source>
+ <translation type="obsolete">Para realizar una proyección debe seleccionar una fuente con más de un indice en la lista!</translation>
+ </message>
+ <message>
+ <source>An unprojection is only possible on a selected source that is involved in a projection process, in a list with more than one index!</source>
+ <translation type="obsolete">Una projección solamente puede ser removida si la fuente ya ha sido proyectada en una lista con más de un indice.</translation>
+ </message>
+ <message>
+ <source>No Target is available for remote Help!
+Perform an unprojection or remove remote help to get a target.</source>
+ <translation type="obsolete">No hay objetivos disponibles para asistencia remota! Retire una projección o retire una asistencia remota para obtener objetivos.</translation>
+ </message>
+ <message>
+ <source>This source is already in a projection or remote Help process involved.
+ You can perform a unprojection or remove remote Help on it to get it free.</source>
+ <translation type="obsolete">Esta fuente ya esta envuelta en un proceso de proyección o asistencia remota. Usted puede retirar la projección o asistencia remota para liberar la fuente.</translation>
+ </message>
+</context>
+<context>
+ <name>ConnectionWindow</name>
+ <message>
+ <source>&amp;Add a dummy...</source>
+ <translation type="obsolete">&amp;Agregar un dummy...</translation>
+ </message>
+ <message>
+ <source>You have to set a Superclient-machine before performing this action.</source>
+ <translation type="obsolete">Usted debe asignar un super cliente antes de iniciar esta acción.</translation>
+ </message>
+</context>
+<context>
+ <name>Dialog</name>
+ <message>
+ <source>Enter the Text for the client(s)</source>
+ <translation type="obsolete">Ingrese el mensage</translation>
+ </message>
+ <message>
+ <source>ProfileDialog</source>
+ <translation type="obsolete">Diálogo de perfil</translation>
+ </message>
+ <message>
+ <source>background-color: rgb(255, 255, 255);</source>
+ <translation type="obsolete">background-color: rgb(255, 255, 255);</translation>
+ </message>
+ <message>
+ <source>&amp;Remove</source>
+ <translation type="obsolete">&amp;Remover</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation type="obsolete">&amp;Editar</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Nuevo</translation>
+ </message>
+ <message>
+ <source>&amp;Load</source>
+ <translation type="obsolete">&amp;Cargar</translation>
+ </message>
+ <message>
+ <source>Add</source>
+ <translation type="obsolete">Agregar</translation>
+ </message>
+ <message>
+ <source>Close</source>
+ <translation type="obsolete">Cerrar</translation>
+ </message>
+</context>
+<context>
+ <name>Frame</name>
+ <message>
+ <source>View</source>
+ <translation type="obsolete">Ver</translation>
+ </message>
+ <message>
+ <source>Foto</source>
+ <translation type="obsolete">Imagen</translation>
+ </message>
+ <message>
+ <source>Lock this client</source>
+ <translation type="obsolete">Bloquear este cliente</translation>
+ </message>
+ <message>
+ <source>Set as Superclient</source>
+ <translation type="obsolete">Asignar como super cliente</translation>
+ </message>
+ <message>
+ <source>Unlock this client</source>
+ <translation type="obsolete">Desbloquear este cliente</translation>
+ </message>
+ <message>
+ <source>You can&apos;t lock a Superclient-machine.</source>
+ <translation type="obsolete">Super clientes no pueden ser bloqueados.</translation>
+ </message>
+ <message>
+ <source>Set client as Superclient</source>
+ <translation type="obsolete">Asignar cliente como super cliente</translation>
+ </message>
+ <message>
+ <source>Unset client as Superclient</source>
+ <translation type="obsolete">Desactivar como super cliente</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="130"/>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="59"/>
+ <source>Exit</source>
+ <translation>Salir</translation>
+ </message>
+ <message>
+ <source>Remove the vnc-Connection for the selected client(s)</source>
+ <translation type="obsolete">Remover la conexión VNC de los clientes seleccionados</translation>
+ </message>
+ <message>
+ <source>Show the selected client in the whole window</source>
+ <translation type="obsolete">Mostrar el cliente seleccionado en toda la ventana</translation>
+ </message>
+ <message>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="335"/>
+ <source>Session Name: %1 [click to edit]</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="371"/>
+ <source>No Projection Source selected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="371"/>
+ <source>You did not select any active client as the connection source.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="575"/>
+ <source>Projection Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="576"/>
+ <source>Could not send screen contents of %1 to other clients: VNC Startup failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Make a screenshot for the selected client(s)</source>
+ <translation type="obsolete">Capturar la pantalla de los clientes seleccionados</translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="135"/>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="60"/>
+ <source>Lock or Unlock all Clients</source>
+ <translation>Bloquear o desbloquear todos los clientes</translation>
+ </message>
+ <message>
+ <source>The pvs manager</source>
+ <translation type="obsolete">PVS Manager</translation>
+ </message>
+ <message>
+ <source>This operation can only be performed for one selected Client!</source>
+ <translation type="obsolete">Esta operación solamente puede ser realizada para un cliente!</translation>
+ </message>
+ <message>
+ <source>This operation can only be performed for at least one selected Client!</source>
+ <translation type="obsolete">Esta operación solamente puede ser realizada para el ultimo cliente seleccionado!</translation>
+ </message>
+ <message>
+ <source>You have to set a Superclient-machine before performing this action.</source>
+ <translation type="obsolete">Usted debe asignar un super cliente antes de realizar esta acción.</translation>
+ </message>
+ <message>
+ <source>Open Image</source>
+ <translation type="obsolete">Abrir imagen</translation>
+ </message>
+ <message>
+ <source>Image Files (*.png *.jpg *.svg)</source>
+ <translation type="obsolete">Extensión de imagenes (*.png *.jpg *.svg)</translation>
+ </message>
+ <message>
+ <source>PVSmgr</source>
+ <translation type="obsolete">PVSmgr</translation>
+ </message>
+ <message>
+ <source>Show Username</source>
+ <translation type="obsolete">Mostrar nombre de usuario</translation>
+ </message>
+ <message>
+ <source>Ctrl+3</source>
+ <translation type="obsolete">Ctrl+3</translation>
+ </message>
+ <message>
+ <source>Show IP</source>
+ <translation type="obsolete">Mostrar IP</translation>
+ </message>
+ <message>
+ <source>Ctrl+2</source>
+ <translation type="obsolete">Ctrl+2</translation>
+ </message>
+ <message>
+ <source>VNC-Placeholders</source>
+ <translation type="obsolete">VNC - Marcadores de posición</translation>
+ </message>
+ <message>
+ <source>Show Log</source>
+ <translation type="obsolete">Mostrar Log</translation>
+ </message>
+ <message>
+ <source>Ctrl+L</source>
+ <translation type="obsolete">Ctrl+L</translation>
+ </message>
+ <message>
+ <source>Show Normal</source>
+ <translation type="obsolete">Mostrar normal</translation>
+ </message>
+ <message>
+ <source>Ctrl+O</source>
+ <translation type="obsolete">Ctrl+O</translation>
+ </message>
+ <message>
+ <source>Show Error</source>
+ <translation type="obsolete">Mostrar Errores</translation>
+ </message>
+ <message>
+ <source>Ctrl+E</source>
+ <translation type="obsolete">Ctrl+E</translation>
+ </message>
+ <message>
+ <source>Show Network</source>
+ <translation type="obsolete">Mostrar Red</translation>
+ </message>
+ <message>
+ <source>Show Terminal</source>
+ <translation type="obsolete">Mostrar Linea de comandos</translation>
+ </message>
+ <message>
+ <source>Ctrl+T</source>
+ <translation type="obsolete">Ctrl+T</translation>
+ </message>
+ <message>
+ <source>Show Chat</source>
+ <translation type="obsolete">Mostrar Chat</translation>
+ </message>
+ <message>
+ <source>Ctrl+G</source>
+ <translation type="obsolete">Ctrl+G</translation>
+ </message>
+ <message>
+ <source>About pvs</source>
+ <translation type="obsolete">Acerca de PVS</translation>
+ </message>
+ <message>
+ <source>Ctrl+P</source>
+ <translation type="obsolete">Ctrl+P</translation>
+ </message>
+ <message>
+ <source>100 x 100</source>
+ <translation type="obsolete">100 x 100</translation>
+ </message>
+ <message>
+ <source>200 x 200</source>
+ <translation type="obsolete">200 x 200</translation>
+ </message>
+ <message>
+ <source>500 x 500</source>
+ <translation type="obsolete">500 x 500</translation>
+ </message>
+ <message>
+ <source>&amp;Disconnect</source>
+ <translation type="obsolete">&amp;Desconectar</translation>
+ </message>
+ <message>
+ <source>Ctrl+W</source>
+ <translation type="obsolete">Ctrl+W</translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="127"/>
+ <source>PVS2 Manager</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="128"/>
+ <source>&amp;Exit</source>
+ <translation>&amp;Salir</translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="132"/>
+ <source>Ctrl+Q</source>
+ <translation>Ctrl+Q</translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="140"/>
+ <source>Student&apos;s Screen to Everyone</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="142"/>
+ <source>Student&apos;s Screen to Tutor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="143"/>
+ <source>Tutor&apos;s Screen to Student</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="144"/>
+ <source>Tutor&apos;s Screen to Everyone</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Foto</source>
+ <translation type="obsolete">Imagen</translation>
+ </message>
+ <message>
+ <source>Ctrl+F</source>
+ <translation type="obsolete">Ctrl+F</translation>
+ </message>
+ <message>
+ <source>view</source>
+ <translation type="obsolete">ver</translation>
+ </message>
+ <message>
+ <source>View</source>
+ <translation type="obsolete">Ver</translation>
+ </message>
+ <message>
+ <source>Ctrl+V</source>
+ <translation type="obsolete">Ctrl+V</translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="133"/>
+ <source>lock</source>
+ <translation>bloquear</translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="137"/>
+ <source>Ctrl+A</source>
+ <translation>Ctrl+A</translation>
+ </message>
+ <message>
+ <source>Profile &amp;manager</source>
+ <translation type="obsolete">Perfil &amp;manager</translation>
+ </message>
+ <message>
+ <source>Ctrl+M</source>
+ <translation type="obsolete">Ctrl+M</translation>
+ </message>
+ <message>
+ <source>Show Name</source>
+ <translation type="obsolete">Mostrar nombre</translation>
+ </message>
+ <message>
+ <source>Ctrl+1</source>
+ <translation type="obsolete">Ctrl+1</translation>
+ </message>
+ <message>
+ <source>Chat</source>
+ <translation type="obsolete">Chat</translation>
+ </message>
+ <message>
+ <source>Start Chat with client(s)</source>
+ <translation type="obsolete">Iniciar Chat con cliente(s)</translation>
+ </message>
+ <message>
+ <source>Ctrl+D</source>
+ <translation type="obsolete">Ctrl+D</translation>
+ </message>
+ <message>
+ <source>-</source>
+ <translation type="obsolete">-</translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="138"/>
+ <source>Broadcast Screen to Everyone</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>border-color: rgb(0, 0, 0);</source>
+ <translation type="obsolete">border-color: rgb(0, 0, 0);</translation>
+ </message>
+ <message>
+ <source>VNC quality</source>
+ <translation type="obsolete">VNC calidad</translation>
+ </message>
+ <message>
+ <source>HIGH</source>
+ <translation type="obsolete">Alta</translation>
+ </message>
+ <message>
+ <source>MEDIUM</source>
+ <translation type="obsolete">Media</translation>
+ </message>
+ <message>
+ <source>LOW</source>
+ <translation type="obsolete">Baja</translation>
+ </message>
+ <message>
+ <source>Set password</source>
+ <translation type="obsolete">Asignar contraseña</translation>
+ </message>
+ <message>
+ <source>Thumbnailratio</source>
+ <translation type="obsolete">Radio de la vista en miniatura</translation>
+ </message>
+ <message>
+ <source>Thumbnailrate</source>
+ <translation type="obsolete">Frecuancia de actualización para las vistas en miniatura</translation>
+ </message>
+ <message>
+ <source> 0</source>
+ <translation type="obsolete"> 0</translation>
+ </message>
+ <message>
+ <source>%</source>
+ <translation type="obsolete">%</translation>
+ </message>
+ <message>
+ <source>background-color: rgb(255, 255, 255);</source>
+ <translation type="obsolete">background-color: rgb(255, 255, 255);</translation>
+ </message>
+ <message>
+ <source>background-color: rgb(150, 150, 150);</source>
+ <translation type="obsolete">background-color: rgb(150, 150, 150);</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation type="obsolete">&amp;Archivo</translation>
+ </message>
+ <message>
+ <source>Load profile </source>
+ <translation type="obsolete">Cargar perfil</translation>
+ </message>
+ <message>
+ <source>&amp;Clients</source>
+ <translation type="obsolete">&amp;Clientes</translation>
+ </message>
+ <message>
+ <source>&amp;Logging</source>
+ <translation type="obsolete">&amp;Logging</translation>
+ </message>
+ <message>
+ <source>&amp;Help</source>
+ <translation type="obsolete">&amp;Ayuda</translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="145"/>
+ <source>toolBar</source>
+ <translation>Barra de herramientas</translation>
+ </message>
+</context>
+<context>
+ <name>MsgDialog</name>
+ <message>
+ <source>Dialog</source>
+ <translation type="obsolete">Dialogo</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="obsolete">Cancelar</translation>
+ </message>
+ <message>
+ <source>Send</source>
+ <translation type="obsolete">Enviar</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectionDialog</name>
+ <message>
+ <source>Target for Projection</source>
+ <translation type="obsolete">Objetivo para projección</translation>
+ </message>
+</context>
+<context>
+ <name>ServerChatDialog</name>
+ <message>
+ <source>&amp;Send File...</source>
+ <translation type="obsolete">&amp;Enviar archivo...</translation>
+ </message>
+ <message>
+ <source> has joined the chat.</source>
+ <translation type="obsolete"> ha ingresado en el chat.</translation>
+ </message>
+ <message>
+ <source> has left the chat.</source>
+ <translation type="obsolete"> ha abandonado el chat.</translation>
+ </message>
+ <message>
+ <source>PVS File Transfer with </source>
+ <translation type="obsolete">PVS transferencia de datos con</translation>
+ </message>
+ <message>
+ <source>Send file &apos;</source>
+ <translation type="obsolete">Enviar archivo &apos;</translation>
+ </message>
+ <message>
+ <source>&apos; to </source>
+ <translation type="obsolete">&apos; a </translation>
+ </message>
+</context>
+<context>
+ <name>ServerChatDialogClass</name>
+ <message>
+ <source>PVSmgr - Chat </source>
+ <translation type="obsolete">PVSmgr - Chat </translation>
+ </message>
+ <message>
+ <source>&amp;Send</source>
+ <translation type="obsolete">&amp;Enviar</translation>
+ </message>
+</context>
+<context>
+ <name>ServerFileTransfert</name>
+ <message>
+ <source>Open File</source>
+ <translation type="obsolete">Abrir archivo</translation>
+ </message>
+ <message>
+ <source>PVS File Transfer</source>
+ <translation type="obsolete">PVS Transferencia de datos</translation>
+ </message>
+ <message>
+ <source>User &apos;</source>
+ <translation type="obsolete">Usuario &apos;</translation>
+ </message>
+ <message>
+ <source>&apos; would like to send you a file: </source>
+ <translation type="obsolete">&apos; desea enviarle un archivo: </translation>
+ </message>
+ <message>
+ <source>PVS - File Transfer</source>
+ <translation type="obsolete">PVS - Transferecia de datos</translation>
+ </message>
+ <message>
+ <source>File Transfer complete.</source>
+ <translation type="obsolete">La transferencia de datos ha sido completada.</translation>
+ </message>
+ <message>
+ <source>File Transfer canceled!</source>
+ <translation type="obsolete">La transferencia de datos ha sido cancelada!</translation>
+ </message>
+</context>
+<context>
+ <name>SessionName</name>
+ <message>
+ <location filename="../../build/ui_sessionname.h" line="72"/>
+ <source>Set session name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_sessionname.h" line="73"/>
+ <source>New session name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_sessionname.h" line="74"/>
+ <source>Random name</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>profileDialog</name>
+ <message>
+ <source>Profile</source>
+ <translation type="obsolete">Perfil</translation>
+ </message>
+ <message>
+ <source>This field can&apos;t be empty.</source>
+ <translation type="obsolete">Esta sección no puede estar vacía</translation>
+ </message>
+ <message>
+ <source>This name is already in the list.</source>
+ <translation type="obsolete">Este nombre ya se encuentra en la lista.</translation>
+ </message>
+ <message>
+ <source>You can only load one profile at time</source>
+ <translation type="obsolete">Solamenten se puede cargar un perfil a la vez.</translation>
+ </message>
+</context>
+<context>
+ <name>projectionDialog</name>
+ <message>
+ <source>Dialog</source>
+ <translation type="obsolete">Dialogo</translation>
+ </message>
+ <message>
+ <source>Select all</source>
+ <translation type="obsolete">Seleccionar todo</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="obsolete">Cancelar</translation>
+ </message>
+ <message>
+ <source>Project</source>
+ <translation type="obsolete">Proyectar</translation>
+ </message>
+ <message>
+ <source>Select Target for projection</source>
+ <translation type="obsolete">Seleccionar objetivo para proyección</translation>
+ </message>
+</context>
+</TS>
diff --git a/i18n/server/pvsmgr_fr_FR.ts b/i18n/server/pvsmgr_fr_FR.ts
new file mode 100644
index 0000000..71f8e51
--- /dev/null
+++ b/i18n/server/pvsmgr_fr_FR.ts
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="130"/>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="59"/>
+ <source>Exit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="335"/>
+ <source>Session Name: %1 [click to edit]</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="371"/>
+ <source>No Projection Source selected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="371"/>
+ <source>You did not select any active client as the connection source.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="575"/>
+ <source>Projection Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="576"/>
+ <source>Could not send screen contents of %1 to other clients: VNC Startup failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="135"/>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="60"/>
+ <source>Lock or Unlock all Clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="127"/>
+ <source>PVS2 Manager</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="128"/>
+ <source>&amp;Exit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="132"/>
+ <source>Ctrl+Q</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="133"/>
+ <source>lock</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="137"/>
+ <source>Ctrl+A</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="138"/>
+ <source>Broadcast Screen to Everyone</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="140"/>
+ <source>Student&apos;s Screen to Everyone</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="142"/>
+ <source>Student&apos;s Screen to Tutor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="143"/>
+ <source>Tutor&apos;s Screen to Student</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="144"/>
+ <source>Tutor&apos;s Screen to Everyone</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="145"/>
+ <source>toolBar</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SessionName</name>
+ <message>
+ <location filename="../../build/ui_sessionname.h" line="72"/>
+ <source>Set session name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_sessionname.h" line="73"/>
+ <source>New session name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_sessionname.h" line="74"/>
+ <source>Random name</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/i18n/server/pvsmgr_pl_PL.ts b/i18n/server/pvsmgr_pl_PL.ts
new file mode 100644
index 0000000..71f8e51
--- /dev/null
+++ b/i18n/server/pvsmgr_pl_PL.ts
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="130"/>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="59"/>
+ <source>Exit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="335"/>
+ <source>Session Name: %1 [click to edit]</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="371"/>
+ <source>No Projection Source selected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="371"/>
+ <source>You did not select any active client as the connection source.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="575"/>
+ <source>Projection Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="576"/>
+ <source>Could not send screen contents of %1 to other clients: VNC Startup failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="135"/>
+ <location filename="../../src/server/mainwindow/mainwindow.cpp" line="60"/>
+ <source>Lock or Unlock all Clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="127"/>
+ <source>PVS2 Manager</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="128"/>
+ <source>&amp;Exit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="132"/>
+ <source>Ctrl+Q</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="133"/>
+ <source>lock</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="137"/>
+ <source>Ctrl+A</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="138"/>
+ <source>Broadcast Screen to Everyone</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="140"/>
+ <source>Student&apos;s Screen to Everyone</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="142"/>
+ <source>Student&apos;s Screen to Tutor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="143"/>
+ <source>Tutor&apos;s Screen to Student</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="144"/>
+ <source>Tutor&apos;s Screen to Everyone</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_mainwindow.h" line="145"/>
+ <source>toolBar</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SessionName</name>
+ <message>
+ <location filename="../../build/ui_sessionname.h" line="72"/>
+ <source>Set session name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_sessionname.h" line="73"/>
+ <source>New session name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../build/ui_sessionname.h" line="74"/>
+ <source>Random name</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/icons/altexit.svg b/icons/altexit.svg
new file mode 100644
index 0000000..5331ab6
--- /dev/null
+++ b/icons/altexit.svg
@@ -0,0 +1,301 @@
+<?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"
+ id="svg2"
+ inkscape:label="Pozadí"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.3.1 r9886"
+ version="1.0"
+ sodipodi:docname="exit.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ height="42"
+ width="42"
+ xml:space="preserve"><defs
+ id="defs3"><linearGradient
+ inkscape:collect="always"
+ id="linearGradient5837"><stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5839" /><stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop5841" /></linearGradient><linearGradient
+ inkscape:collect="always"
+ id="linearGradient5771"><stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop5773" /><stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop5775" /></linearGradient><linearGradient
+ inkscape:collect="always"
+ id="linearGradient5757"><stop
+ style="stop-color:#eeeeec;stop-opacity:1;"
+ offset="0"
+ id="stop5759" /><stop
+ style="stop-color:#b6b9b2;stop-opacity:1"
+ offset="1"
+ id="stop5761" /></linearGradient><linearGradient
+ inkscape:collect="always"
+ id="linearGradient5749"><stop
+ style="stop-color:#555753;stop-opacity:1;"
+ offset="0"
+ id="stop5751" /><stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="1"
+ id="stop5753" /></linearGradient><radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient5031"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.774389,0,0,1.969706,444.1734,-872.88106)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" /><linearGradient
+ inkscape:collect="always"
+ id="linearGradient5060"><stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0"
+ id="stop5062" /><stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop5064" /></linearGradient><radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient5029"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.7182065,0,0,1.969706,-1790.093,-872.88106)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" /><linearGradient
+ id="linearGradient5048"><stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="0"
+ id="stop5050" /><stop
+ id="stop5056"
+ offset="0.5"
+ style="stop-color:black;stop-opacity:1;" /><stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop5052" /></linearGradient><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5048"
+ id="linearGradient5027"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.242688,0,0,1.969706,-1503.9583,-872.8854)"
+ x1="302.85715"
+ y1="366.64789"
+ x2="302.85715"
+ y2="609.50507" /><linearGradient
+ inkscape:collect="always"
+ id="linearGradient5551"><stop
+ style="stop-color:#d80000;stop-opacity:1;"
+ offset="0"
+ id="stop5553" /><stop
+ style="stop-color:#ff1919;stop-opacity:1"
+ offset="1"
+ id="stop5555" /></linearGradient><linearGradient
+ inkscape:collect="always"
+ id="linearGradient4962"><stop
+ style="stop-color:#4f7633;stop-opacity:1;"
+ offset="0"
+ id="stop4964" /><stop
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1"
+ id="stop4966" /></linearGradient><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4962"
+ id="linearGradient4968"
+ x1="36"
+ y1="24"
+ x2="36"
+ y2="6.8892298"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.8011917,0,0,1.8095239,-37.714462,-9.2361809)" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5551"
+ id="linearGradient5569"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.8216585,0,0,1.8541455,18.126603,-32.105968)"
+ x1="-5"
+ y1="30.485746"
+ x2="-5"
+ y2="28" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5749"
+ id="linearGradient5755"
+ x1="20.736568"
+ y1="8"
+ x2="12.734337"
+ y2="8"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.1250002,0,0,1.8421053,-13.744192,-10.257484)" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5757"
+ id="linearGradient5763"
+ x1="15"
+ y1="10"
+ x2="20"
+ y2="10"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.888889,0,0,1.8421053,-10.792802,-10.257484)" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5771"
+ id="linearGradient5777"
+ x1="19"
+ y1="3"
+ x2="19"
+ y2="10"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.4863836,0,0,1.5000001,-26.950209,-7.7838001)" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5837"
+ id="linearGradient5848"
+ gradientUnits="userSpaceOnUse"
+ x1="10"
+ y1="44.016026"
+ x2="10"
+ y2="12.805173"
+ gradientTransform="matrix(0.9130435,0,0,0.9130435,0.03570263,-1.5229299)" /></defs><sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="9.5142462"
+ inkscape:cx="43.072055"
+ inkscape:cy="24.870715"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="48px"
+ height="48px"
+ inkscape:showpageshadow="false"
+ gridtolerance="10000"
+ inkscape:window-width="1920"
+ inkscape:window-height="1148"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ showgrid="false"
+ inkscape:window-maximized="1"><inkscape:grid
+ type="xygrid"
+ id="grid4948" /></sodipodi:namedview><metadata
+ id="metadata6"><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="Vrstva 1"
+ inkscape:groupmode="layer"
+ id="layer1"><g
+ style="display:inline"
+ id="g5022"
+ transform="matrix(0.02080446,0,0,0.01766701,39.885061,36.47886)"><rect
+ y="-150.69685"
+ x="-1234.8357"
+ height="478.35718"
+ width="1082.8979"
+ id="rect4173"
+ style="opacity:0.39195981;color:#000000;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" /><path
+ sodipodi:nodetypes="cccc"
+ id="path5058"
+ d="m -151.93764,-150.67604 c 0,0 0,478.33079 0,478.33079 139.980909,0.90045 338.40573,-107.16966 338.40565,-239.196176 0,-132.026537 -156.208156,-239.134594 -338.40565,-239.134614 z"
+ style="opacity:0.40206185;color:#000000;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ inkscape:connector-curvature="0" /><path
+ style="opacity:0.40206185;color:#000000;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m -1227.8411,-150.67604 c 0,0 0,478.33079 0,478.33079 -142.8742,0.90045 -345.4002,-107.16966 -345.4002,-239.196177 0,-132.026537 159.4368,-239.134593 345.4002,-239.134613 z"
+ id="path5018"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" /></g><rect
+ style="color:#000000;fill:url(#linearGradient4968);fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect4960"
+ width="27.017878"
+ height="38"
+ x="11.818312"
+ y="0.71620047" /><path
+ style="fill:none;stroke:#73d216;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.36486487"
+ d="m 13.892632,37.745842 23.937179,0 0,-35.8066791"
+ id="path5547"
+ sodipodi:nodetypes="ccc"
+ inkscape:connector-curvature="0" /><path
+ style="color:#000000;fill:url(#linearGradient5763);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient5755);stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 12.818311,1.7162006 17,0 0,27.6315784 -17,7.368421 0,-34.9999994 z"
+ id="rect5746"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" /><path
+ style="color:#000000;fill:url(#linearGradient5569);fill-opacity:1;fill-rule:nonzero;stroke:#a60f11;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 11.800398,10.7162 0,5.966898 -10.97955017,0 0,11.107665 10.97955017,0 0,5.925436 L 24.818312,22.591327 11.800398,10.7162 z"
+ id="rect5549"
+ sodipodi:nodetypes="cccccccc"
+ inkscape:connector-curvature="0" /><path
+ style="color:#000000;fill:none;stroke:#ffffff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.23873877;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 12.822048,12.993676 0,4.737635 -10.9835615,0 0,9.037558 10.9835615,0 0,4.707273 10.362518,-8.940522 -10.362518,-9.541944 z"
+ id="path5561"
+ sodipodi:nodetypes="cccccccc"
+ inkscape:connector-curvature="0" /><path
+ style="fill:none;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.61261262"
+ d="M 28.864415,3.6030354 28.846444,28.589344 13.818312,35.186053"
+ id="path5765"
+ sodipodi:nodetypes="ccc"
+ inkscape:connector-curvature="0" /><path
+ style="fill:url(#linearGradient5777);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 15.318311,1.2162005 12.431919,6 7.459151,0 0,-6 -19.89107,0 z"
+ id="path5769"
+ inkscape:connector-curvature="0" /><rect
+ style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect5797"
+ width="1"
+ height="1"
+ x="26.318312"
+ y="15.216201" /><rect
+ y="16.2162"
+ x="27.318312"
+ height="1"
+ width="1"
+ id="rect5799"
+ style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /><rect
+ style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect5805"
+ width="0.99999976"
+ height="1"
+ x="27.318312"
+ y="17.2162" /><rect
+ y="17.2162"
+ x="26.318312"
+ height="1"
+ width="0.99999976"
+ id="rect5807"
+ style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /><rect
+ style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect5829"
+ width="0.99999976"
+ height="1"
+ x="25.318312"
+ y="18.2162" /><rect
+ y="16.2162"
+ x="26.318312"
+ height="1"
+ width="1"
+ id="rect5831"
+ style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /><rect
+ style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect5833"
+ width="1"
+ height="1"
+ x="26.318312"
+ y="18.2162" /><path
+ style="opacity:0.52401745;color:#000000;fill:url(#linearGradient5848);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 12.333257,11.7162 0,5.449728 -10.0149457,0 0,2.482337 c 2.3080298,1.546537 6.143561,2.567935 10.4999997,2.567935 3.5582,0 6.783715,-0.678579 9.101902,-1.769022 L 12.333257,11.7162 z"
+ id="path5835"
+ inkscape:connector-curvature="0" /></g></svg> \ No newline at end of file
diff --git a/icons/altterm.svg b/icons/altterm.svg
new file mode 100644
index 0000000..2197700
--- /dev/null
+++ b/icons/altterm.svg
@@ -0,0 +1,498 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="48px"
+ height="48px"
+ id="svg1306"
+ sodipodi:version="0.32"
+ inkscape:version="0.43+devel"
+ sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/apps"
+ sodipodi:docname="utilities-terminal.svg"
+ inkscape:export-filename="/home/andreas/projekt/bild/tango/terminal4.png"
+ inkscape:export-xdpi="240.00000"
+ inkscape:export-ydpi="240.00000">
+ <defs
+ id="defs1308">
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient5031"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5060">
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0"
+ id="stop5062" />
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop5064" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient5029"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <linearGradient
+ id="linearGradient5048">
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="0"
+ id="stop5050" />
+ <stop
+ id="stop5056"
+ offset="0.5"
+ style="stop-color:black;stop-opacity:1;" />
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop5052" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5048"
+ id="linearGradient5027"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+ x1="302.85715"
+ y1="366.64789"
+ x2="302.85715"
+ y2="609.50507" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6447">
+ <stop
+ style="stop-color:#777973;stop-opacity:1;"
+ offset="0"
+ id="stop6449" />
+ <stop
+ style="stop-color:#777973;stop-opacity:0;"
+ offset="1"
+ id="stop6451" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4254">
+ <stop
+ style="stop-color:#616161;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop4256" />
+ <stop
+ style="stop-color:#a0a0a0;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop4258" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5176">
+ <stop
+ id="stop5178"
+ offset="0.0000000"
+ style="stop-color:#a2a59c;stop-opacity:1.0000000;" />
+ <stop
+ id="stop5180"
+ offset="1.0000000"
+ style="stop-color:#535750;stop-opacity:1.0000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2667">
+ <stop
+ id="stop2669"
+ offset="0.0000000"
+ style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+ <stop
+ id="stop2671"
+ offset="1.0000000"
+ style="stop-color:#fcfcff;stop-opacity:0.0000000;" />
+ </linearGradient>
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="26.729263"
+ x2="17.199417"
+ y1="1.6537577"
+ x1="11.492236"
+ gradientTransform="matrix(1.236157,0.000000,0.000000,0.896051,-1.081820,2.830699)"
+ id="linearGradient2673"
+ xlink:href="#linearGradient2667"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2238">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2240" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2242" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2224">
+ <stop
+ style="stop-color:#32342f;stop-opacity:0.54639173;"
+ offset="0.0000000"
+ id="stop2226" />
+ <stop
+ style="stop-color:#32342f;stop-opacity:0;"
+ offset="1"
+ id="stop2228" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2214">
+ <stop
+ style="stop-color:#a9aaa7;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2216" />
+ <stop
+ style="stop-color:#676964;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop2218" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2206">
+ <stop
+ style="stop-color:#777973;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2208" />
+ <stop
+ style="stop-color:#cbccca;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop2210" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2198">
+ <stop
+ style="stop-color:#748f48;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2200" />
+ <stop
+ style="stop-color:#1f2816;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop2202" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2198"
+ id="linearGradient2204"
+ x1="23.118565"
+ y1="9.5830288"
+ x2="22.440805"
+ y2="34.225887"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.950085,0.000000,0.000000,0.965659,1.243978,0.255342)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2206"
+ id="linearGradient2212"
+ x1="29.870447"
+ y1="32.285740"
+ x2="24.841814"
+ y2="14.157946"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.957412,0.000000,0.000000,0.952331,1.022766,0.133307)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5176"
+ id="linearGradient2220"
+ x1="8.6529236"
+ y1="9.5865316"
+ x2="21.305075"
+ y2="32.497993"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.957412,0.000000,0.000000,0.952331,1.022766,0.133307)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2224"
+ id="radialGradient2230"
+ cx="24.041630"
+ cy="42.242130"
+ fx="24.041630"
+ fy="42.242130"
+ r="17.576654"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.304598,-1.841788e-16,29.37527)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2238"
+ id="linearGradient2244"
+ x1="20.338758"
+ y1="19.636894"
+ x2="48.845253"
+ y2="49.730762"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.953506,0.000000,0.000000,0.947873,1.141528,1.205591)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4254"
+ id="linearGradient4260"
+ x1="11.048059"
+ y1="9.1463490"
+ x2="26.178129"
+ y2="30.343304"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.997583,0.000000,0.000000,0.989941,0.104141,7.028871e-2)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2214"
+ id="linearGradient5719"
+ x1="40.253334"
+ y1="42.318577"
+ x2="36.451904"
+ y2="37.999615"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.744756,0.000000,9.569132)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6447"
+ id="radialGradient6453"
+ cx="37.495606"
+ cy="39.510023"
+ fx="37.495606"
+ fy="39.510023"
+ r="2.5100370"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.737790,0.000000,9.844321)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="0.19607843"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="23.810703"
+ inkscape:cy="12.124648"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="926"
+ inkscape:window-height="975"
+ inkscape:window-x="397"
+ inkscape:window-y="25"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ 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>Terminal</dc:title>
+ <dc:date>2005-10-15</dc:date>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Andreas Nilsson</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>terminal</rdf:li>
+ <rdf:li>emulator</rdf:li>
+ <rdf:li>term</rdf:li>
+ <rdf:li>command line</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title>Jakub Steiner</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="g5022"
+ transform="matrix(2.454499e-2,0,0,2.086758e-2,46.14369,39.34109)">
+ <rect
+ y="-150.69685"
+ x="-1559.2523"
+ height="478.35718"
+ width="1339.6335"
+ id="rect4173"
+ style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path5058"
+ d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
+ style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ <path
+ style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
+ id="path5018"
+ sodipodi:nodetypes="cccc" />
+ </g>
+ <rect
+ style="opacity:1.0000000;fill:url(#linearGradient2212);fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2220);stroke-width:0.99999946;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="rect1316"
+ width="44.996037"
+ height="38.998734"
+ x="1.5026338"
+ y="3.5015533"
+ rx="4.8517075"
+ ry="4.8517079" />
+ <rect
+ style="opacity:1.0000000;fill:url(#linearGradient2204);fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient4260);stroke-width:0.99495775;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="rect1314"
+ width="37.088005"
+ height="29.022322"
+ x="5.4962788"
+ y="7.4827089"
+ rx="1.6452150"
+ ry="1.6452144" />
+ <g
+ id="g2286"
+ style="opacity:0.25568182">
+ <path
+ id="path1345"
+ d="M 8.0152033,11.500361 L 39.994145,11.500361"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 8.0152033,13.500361 L 39.994145,13.500361"
+ id="path2264" />
+ <path
+ id="path2266"
+ d="M 8.0152033,15.500361 L 39.994145,15.500361"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 8.0152033,17.500361 L 39.994145,17.500361"
+ id="path2268" />
+ <path
+ id="path2270"
+ d="M 8.0152033,19.500361 L 39.994145,19.500361"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 8.0152033,21.500361 L 39.994145,21.500361"
+ id="path2272" />
+ <path
+ id="path2274"
+ d="M 8.0152033,23.500361 L 39.994145,23.500361"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 8.0152033,25.500361 L 39.994145,25.500361"
+ id="path2276" />
+ <path
+ id="path2278"
+ d="M 8.0152033,27.500361 L 39.994145,27.500361"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 8.0152033,29.500361 L 39.994145,29.500361"
+ id="path2280" />
+ <path
+ id="path2282"
+ d="M 8.0152033,31.500361 L 39.994145,31.500361"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 8.0152033,33.500361 L 39.994145,33.500361"
+ id="path2284" />
+ </g>
+ <rect
+ style="opacity:0.76373626;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2244);stroke-width:0.99999946;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect2232"
+ width="42.945141"
+ height="37.000587"
+ x="2.5542557"
+ y="4.5007114"
+ rx="3.7910469"
+ ry="3.7910469" />
+ <path
+ style="font-size:18.585011px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125.00000%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1.0000000;stroke:#6ed66e;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.27868852;font-family:Bitstream Vera Sans Mono"
+ d="M 11.625000,20.679392 L 11.625000,17.625000 L 20.609828,21.685794 L 20.609828,23.541713 L 11.625000,27.629147 L 11.625000,24.583829 L 18.589396,22.729971 L 11.625000,20.679392 z M 30.517635,30.705752 L 30.517635,32.679948 L 19.614229,32.679948 L 19.614229,30.705752 L 30.517635,30.705752"
+ id="text1340"
+ sodipodi:nodetypes="ccccccccccccc" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ style="opacity:0.53142856;fill:url(#linearGradient2673);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.25pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 7.625388,8 C 7.102102,8 6.05153,8.190188 6.05153,9.0259761 L 6.16958,25.542519 C 23.841567,24.579133 20.294433,17.286426 42,13.633318 L 41.937264,9.2913791 C 41.859002,8.1662868 41.397947,8.0594548 40.327115,8.066071 L 7.625388,8 z "
+ id="path2443" />
+ <rect
+ style="opacity:0.71428573;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.9999992;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="rect1340"
+ width="34.026031"
+ height="26.057468"
+ x="6.9894562"
+ y="8.9805145"
+ rx="0.11773217"
+ ry="0.11773217" />
+ <rect
+ style="opacity:1;fill:url(#radialGradient6453);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5719);stroke-width:1.00000119;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect5025"
+ width="4.0200734"
+ height="2.9590063"
+ x="35.485569"
+ y="37.514935"
+ rx="0.35819405"
+ ry="0.56022596" />
+ <rect
+ style="opacity:1;fill:#93d94c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect6458"
+ width="2"
+ height="2"
+ x="32"
+ y="38"
+ rx="0.56022543"
+ ry="0.56022543" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="path2300"
+ sodipodi:cx="28.3125"
+ sodipodi:cy="38.75"
+ sodipodi:rx="0.5625"
+ sodipodi:ry="0.5625"
+ d="M 28.875 38.75 A 0.5625 0.5625 0 1 1 27.75,38.75 A 0.5625 0.5625 0 1 1 28.875 38.75 z"
+ transform="translate(4.375000,-6.250000e-2)" />
+ </g>
+</svg>
diff --git a/icons/broadcast.svg b/icons/broadcast.svg
new file mode 100644
index 0000000..9d8b2f5
--- /dev/null
+++ b/icons/broadcast.svg
@@ -0,0 +1,32 @@
+<?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"
+ version="1.1"
+ width="256"
+ height="256"
+ id="svg3066">
+ <metadata
+ id="metadata3072">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs3070" />
+ <path
+ d="m 101.25424,238.1677 c -2.681354,-0.9063 -5.882664,-4.44171 -6.478524,-7.15463 -0.58697,-2.67245 32.549954,-115.15847 34.716434,-117.84781 3.76841,-4.67787 3.97836,-4.13837 22.86296,58.75 17.19707,57.26863 17.70155,59.65202 13.51294,63.84091 -2.52259,2.52275 -58.14313,4.59864 -64.61381,2.41153 z M 99.450096,148.47239 C 36.209676,114.39067 56.888616,19.509389 128.27948,16.194398 c 74.82178,-3.474305 102.21415,97.343712 35.91435,132.183272 -8.25378,4.33723 -9.45024,4.38009 -10.84176,0.38837 -1.72728,-4.95488 -1.42108,-5.55464 4.15217,-8.13271 57.70355,-26.69254 37.94505,-114.718076 -25.75,-114.718076 -63.801984,0 -83.551484,87.985766 -25.75,114.718536 5.57324,2.57758 5.87946,3.17734 4.15217,8.13225 -1.38946,3.98581 -2.83934,3.94604 -10.706314,-0.29365 z M 107.20058,133.2308 C 64.201286,112.03676 72.380306,45.525947 119.34731,34.455037 c 58.22233,-13.723979 91.06284,66.022883 39.90693,96.906303 -8.70662,5.25629 -9.68982,5.33292 -10.9341,0.85216 -1.54031,-5.54681 -1.47552,-5.7007 3.39675,-8.06783 41.31662,-20.07316 23.16679,-83.859948 -23.04117,-80.977136 -42.258784,2.636433 -55.204114,60.895106 -17.86619,80.404326 5.91323,3.08969 5.91782,3.09866 4.39213,8.5924 -1.24209,4.47255 -1.12141,4.45648 -8.00108,1.06554 z m 7.55366,-15.00818 c -33.446494,-17.97823 -20.953814,-67.807366 17,-67.807366 38.06499,0 50.43287,50.452626 16.65035,67.922256 -3.81961,1.9752 -3.50013,2.12347 -5.00189,-2.32147 -1.6627,-4.92129 -1.50835,-5.34547 2.94537,-8.0941 25.76529,-15.901157 6.01919,-55.611013 -23.28699,-46.830669 -21.32579,6.389365 -23.210034,42.189589 -2.58241,49.065469 1.0008,0.3336 -1.03495,9.7856 -2.09314,9.71848 -0.34721,-0.022 -1.98129,-0.76569 -3.63129,-1.6526 z m 11,-14.52889 c -13.54367,-4.801859 -16.92678,-22.050493 -6.17629,-31.489548 7.56488,-6.642051 16.7877,-6.642051 24.35258,0 15.09896,13.257062 0.70983,38.185538 -18.17629,31.489548 z"
+ id="path3076"
+ style="fill:#000000" />
+</svg>
diff --git a/icons/cam32.svg b/icons/cam32.svg
new file mode 100644
index 0000000..9a4c1c7
--- /dev/null
+++ b/icons/cam32.svg
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="32"
+ height="32"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.3.1 r9886"
+ sodipodi:docname="cam32.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0"
+ style="display:inline"
+ enable-background="new">
+ <defs
+ id="defs4">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 16 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="32 : 16 : 1"
+ inkscape:persp3d-origin="16 : 10.666667 : 1"
+ id="perspective2476" />
+ <filter
+ inkscape:collect="always"
+ id="filter3249">
+ <feBlend
+ inkscape:collect="always"
+ mode="lighten"
+ in2="BackgroundImage"
+ id="feBlend3251" />
+ </filter>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.4"
+ inkscape:cx="2.3730814"
+ inkscape:cy="13.178208"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer2"
+ showgrid="true"
+ objecttolerance="10000"
+ gridtolerance="10000"
+ guidetolerance="10000"
+ inkscape:window-width="1920"
+ inkscape:window-height="1150"
+ inkscape:window-x="-4"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid2410"
+ visible="true"
+ enabled="true"
+ dotted="false" />
+ </sodipodi:namedview>
+ <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:groupmode="layer"
+ id="layer2"
+ inkscape:label="Zeichnung"
+ style="display:inline;filter:url(#filter3249)">
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.112;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 7.7249594,2.1626795 C 4.4957594,2.1626795 1.8749594,4.7834796 1.8749594,8.0126796 C 1.8749594,10.095133 2.9648234,11.924089 4.6049594,12.960804 L 4.6049594,19.32268 C 4.6049594,20.18692 5.3007194,20.88268 6.1649594,20.88268 L 9.2264598,20.88268 L 4.5869594,28.275054 C 4.3708994,28.649282 4.5003554,29.126622 4.8745754,29.34268 L 5.5473314,29.73268 C 5.9215634,29.94874 6.3988994,29.819277 6.6149594,29.445054 L 11.927204,20.88268 L 13.662704,20.88268 L 18.97496,29.445054 C 19.19102,29.819282 19.668356,29.948735 20.042576,29.73268 L 20.715332,29.34268 C 21.089564,29.12662 21.21902,28.649278 21.00296,28.275054 L 16.36346,20.88268 L 20.20496,20.88268 C 21.0692,20.88268 21.76496,20.18692 21.76496,19.32268 L 21.76496,18.46468 C 22.325624,18.204431 24.411872,17.382582 26.28896,18.54268 C 27.179144,19.092846 27.270764,20.488512 28.16096,21.03868 C 28.758116,21.407742 29.279804,21.407742 29.87696,21.03868 C 30.322052,20.763596 30.032288,20.31392 30.03296,19.79068 C 30.035804,17.190681 30.035804,15.214679 30.03296,12.61468 C 30.032288,12.09144 30.322052,11.641764 29.87696,11.36668 C 29.279804,10.997616 28.758116,10.997616 28.16096,11.36668 C 27.270764,11.916846 27.179144,13.312512 26.28896,13.86268 C 24.411668,15.02291 22.325348,14.195954 21.76496,13.935804 L 21.76496,12.960804 C 23.405096,11.924089 24.49496,10.095133 24.49496,8.0126796 C 24.49496,4.7834796 21.87416,2.1626795 18.64496,2.1626795 C 16.155776,2.1626795 14.029412,3.7187916 13.18496,5.911554 C 12.340496,3.7187916 10.214132,2.1626795 7.7249594,2.1626795 z"
+ id="rect3212"
+ sodipodi:nodetypes="csccccccccccccccccccssssssssccsscc" />
+ <rect
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3235"
+ width="0"
+ height="3"
+ x="-25"
+ y="-26" />
+ </g>
+</svg>
diff --git a/icons/cam_off32.svg b/icons/cam_off32.svg
new file mode 100644
index 0000000..2df7e9c
--- /dev/null
+++ b/icons/cam_off32.svg
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="32"
+ height="32"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.47 r22583"
+ sodipodi:docname="cam_on32.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0"
+ style="display:inline"
+ enable-background="new">
+ <defs
+ id="defs4">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 16 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="32 : 16 : 1"
+ inkscape:persp3d-origin="16 : 10.666667 : 1"
+ id="perspective2476" />
+ <filter
+ inkscape:collect="always"
+ id="filter3249">
+ <feBlend
+ inkscape:collect="always"
+ mode="lighten"
+ in2="BackgroundImage"
+ id="feBlend3251" />
+ </filter>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.02381"
+ inkscape:cx="10.394302"
+ inkscape:cy="19.913197"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer2"
+ showgrid="true"
+ objecttolerance="10000"
+ gridtolerance="10000"
+ guidetolerance="10000"
+ inkscape:window-width="1024"
+ inkscape:window-height="710"
+ inkscape:window-x="-4"
+ inkscape:window-y="-3"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid2410"
+ visible="true"
+ enabled="true"
+ dotted="false" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Zeichnung"
+ style="display:inline;filter:url(#filter3249)">
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.31199998;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 7.7249594,2.1626795 C 4.4957594,2.1626795 1.8749594,4.7834796 1.8749594,8.0126796 C 1.8749594,10.095133 2.9648234,11.924089 4.6049594,12.960804 L 4.6049594,19.32268 C 4.6049594,20.18692 5.3007194,20.88268 6.1649594,20.88268 L 9.2264598,20.88268 L 4.5869594,28.275054 C 4.3708994,28.649282 4.5003554,29.126622 4.8745754,29.34268 L 5.5473314,29.73268 C 5.9215634,29.94874 6.3988994,29.819277 6.6149594,29.445054 L 11.927204,20.88268 L 13.662704,20.88268 L 18.97496,29.445054 C 19.19102,29.819282 19.668356,29.948735 20.042576,29.73268 L 20.715332,29.34268 C 21.089564,29.12662 21.21902,28.649278 21.00296,28.275054 L 16.36346,20.88268 L 20.20496,20.88268 C 21.0692,20.88268 21.76496,20.18692 21.76496,19.32268 L 21.76496,18.46468 C 22.325624,18.204431 24.411872,17.382582 26.28896,18.54268 C 27.179144,19.092846 27.270764,20.488512 28.16096,21.03868 C 28.758116,21.407742 29.279804,21.407742 29.87696,21.03868 C 30.322052,20.763596 30.032288,20.31392 30.03296,19.79068 C 30.035804,17.190681 30.035804,15.214679 30.03296,12.61468 C 30.032288,12.09144 30.322052,11.641764 29.87696,11.36668 C 29.279804,10.997616 28.758116,10.997616 28.16096,11.36668 C 27.270764,11.916846 27.179144,13.312512 26.28896,13.86268 C 24.411668,15.02291 22.325348,14.195954 21.76496,13.935804 L 21.76496,12.960804 C 23.405096,11.924089 24.49496,10.095133 24.49496,8.0126796 C 24.49496,4.7834796 21.87416,2.1626795 18.64496,2.1626795 C 16.155776,2.1626795 14.029412,3.7187916 13.18496,5.911554 C 12.340496,3.7187916 10.214132,2.1626795 7.7249594,2.1626795 z"
+ id="rect3212"
+ sodipodi:nodetypes="csccccccccccccccccccssssssssccsscc" />
+ <rect
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3235"
+ width="0"
+ height="3"
+ x="-25"
+ y="-26" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ff0000;fill-opacity:1;stroke:none"
+ id="path3595"
+ sodipodi:cx="18.438444"
+ sodipodi:cy="15.612311"
+ sodipodi:rx="3.5615551"
+ sodipodi:ry="3.3876889"
+ d="m 21.999999,15.612311 a 3.5615551,3.3876889 0 1 1 -7.12311,0 3.5615551,3.3876889 0 1 1 7.12311,0 z"
+ transform="translate(8.5615559,12)" />
+ </g>
+</svg>
diff --git a/icons/cam_on32.svg b/icons/cam_on32.svg
new file mode 100644
index 0000000..9f381fe
--- /dev/null
+++ b/icons/cam_on32.svg
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="32"
+ height="32"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.47 r22583"
+ sodipodi:docname="cam32.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0"
+ style="display:inline"
+ enable-background="new">
+ <defs
+ id="defs4">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 16 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="32 : 16 : 1"
+ inkscape:persp3d-origin="16 : 10.666667 : 1"
+ id="perspective2476" />
+ <filter
+ inkscape:collect="always"
+ id="filter3249">
+ <feBlend
+ inkscape:collect="always"
+ mode="lighten"
+ in2="BackgroundImage"
+ id="feBlend3251" />
+ </filter>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.02381"
+ inkscape:cx="10.394302"
+ inkscape:cy="19.913197"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer2"
+ showgrid="true"
+ objecttolerance="10000"
+ gridtolerance="10000"
+ guidetolerance="10000"
+ inkscape:window-width="1024"
+ inkscape:window-height="710"
+ inkscape:window-x="-4"
+ inkscape:window-y="-3"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid2410"
+ visible="true"
+ enabled="true"
+ dotted="false" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Zeichnung"
+ style="display:inline;filter:url(#filter3249)">
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.31199998;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 7.7249594,2.1626795 C 4.4957594,2.1626795 1.8749594,4.7834796 1.8749594,8.0126796 C 1.8749594,10.095133 2.9648234,11.924089 4.6049594,12.960804 L 4.6049594,19.32268 C 4.6049594,20.18692 5.3007194,20.88268 6.1649594,20.88268 L 9.2264598,20.88268 L 4.5869594,28.275054 C 4.3708994,28.649282 4.5003554,29.126622 4.8745754,29.34268 L 5.5473314,29.73268 C 5.9215634,29.94874 6.3988994,29.819277 6.6149594,29.445054 L 11.927204,20.88268 L 13.662704,20.88268 L 18.97496,29.445054 C 19.19102,29.819282 19.668356,29.948735 20.042576,29.73268 L 20.715332,29.34268 C 21.089564,29.12662 21.21902,28.649278 21.00296,28.275054 L 16.36346,20.88268 L 20.20496,20.88268 C 21.0692,20.88268 21.76496,20.18692 21.76496,19.32268 L 21.76496,18.46468 C 22.325624,18.204431 24.411872,17.382582 26.28896,18.54268 C 27.179144,19.092846 27.270764,20.488512 28.16096,21.03868 C 28.758116,21.407742 29.279804,21.407742 29.87696,21.03868 C 30.322052,20.763596 30.032288,20.31392 30.03296,19.79068 C 30.035804,17.190681 30.035804,15.214679 30.03296,12.61468 C 30.032288,12.09144 30.322052,11.641764 29.87696,11.36668 C 29.279804,10.997616 28.758116,10.997616 28.16096,11.36668 C 27.270764,11.916846 27.179144,13.312512 26.28896,13.86268 C 24.411668,15.02291 22.325348,14.195954 21.76496,13.935804 L 21.76496,12.960804 C 23.405096,11.924089 24.49496,10.095133 24.49496,8.0126796 C 24.49496,4.7834796 21.87416,2.1626795 18.64496,2.1626795 C 16.155776,2.1626795 14.029412,3.7187916 13.18496,5.911554 C 12.340496,3.7187916 10.214132,2.1626795 7.7249594,2.1626795 z"
+ id="rect3212"
+ sodipodi:nodetypes="csccccccccccccccccccssssssssccsscc" />
+ <rect
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3235"
+ width="0"
+ height="3"
+ x="-25"
+ y="-26" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#00a000;fill-opacity:1;stroke:none"
+ id="path3595"
+ sodipodi:cx="18.438444"
+ sodipodi:cy="15.612311"
+ sodipodi:rx="3.5615551"
+ sodipodi:ry="3.3876889"
+ d="m 21.999999,15.612311 a 3.5615551,3.3876889 0 1 1 -7.12311,0 3.5615551,3.3876889 0 1 1 7.12311,0 z"
+ transform="translate(8.5615559,12)" />
+ </g>
+</svg>
diff --git a/icons/chat_msg16.svg b/icons/chat_msg16.svg
new file mode 100644
index 0000000..1e4be83
--- /dev/null
+++ b/icons/chat_msg16.svg
@@ -0,0 +1,97 @@
+<?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="16"
+ height="16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.47 r22583"
+ sodipodi:docname="chat_msg16.svg">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3590">
+ <stop
+ style="stop-color:#00ff00;stop-opacity:1;"
+ offset="0"
+ id="stop3592" />
+ <stop
+ style="stop-color:#006400;stop-opacity:1;"
+ offset="1"
+ id="stop3594" />
+ </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" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3590"
+ id="radialGradient3596"
+ cx="140.41119"
+ cy="140.19443"
+ fx="140.41119"
+ fy="140.19443"
+ r="79.791901"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.86519943,0.92220815,-0.87022772,0.81643229,140.92859,-103.75317)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.4"
+ inkscape:cx="13.435304"
+ inkscape:cy="7.4195703"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1920"
+ inkscape:window-height="1150"
+ inkscape:window-x="-4"
+ inkscape:window-y="-3"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Ebene 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-151.60409,-146.84165)">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient3596);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.39215686;stroke-dasharray:2, 2;stroke-dashoffset:0"
+ id="path2816"
+ sodipodi:cx="159.6041"
+ sodipodi:cy="154.84164"
+ sodipodi:rx="78.791901"
+ sodipodi:ry="78.791901"
+ d="m 238.396,154.84164 a 78.791901,78.791901 0 1 1 -157.583805,0 78.791901,78.791901 0 1 1 157.583805,0 z"
+ transform="matrix(0.0501304,0,0,0.0501304,151.60308,147.07937)" />
+ </g>
+</svg>
diff --git a/icons/darrow16.svg b/icons/darrow16.svg
new file mode 100644
index 0000000..4b1609a
--- /dev/null
+++ b/icons/darrow16.svg
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.47 r22583"
+ sodipodi:docname="darrow16.svg"
+ inkscape:export-filename="/home/jjl/ok.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="44.8"
+ inkscape:cx="9.5866317"
+ inkscape:cy="8.5407368"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1150"
+ inkscape:window-x="-4"
+ inkscape:window-y="-3"
+ inkscape:window-maximized="1"
+ guidetolerance="10000"
+ objecttolerance="10000">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4187"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Ebene 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.50000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="M 4,6 C 5.3333333,7.3333333 6.6666667,8.6666667 8,10 9.3333333,8.6666667 10.666667,7.3333333 12,6"
+ id="path4344"
+ transform="translate(0,1036.3622)"
+ sodipodi:nodetypes="ccc" />
+ </g>
+</svg>
diff --git a/icons/dozent.svg b/icons/dozent.svg
new file mode 100644
index 0000000..85a74d6
--- /dev/null
+++ b/icons/dozent.svg
@@ -0,0 +1,303 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="48px"
+ height="48px"
+ id="svg2108"
+ sodipodi:version="0.32"
+ inkscape:version="0.45"
+ sodipodi:docbase="/home/dobey/Projects/gnome-icon-theme/scalable/stock/generic"
+ sodipodi:docname="stock_person.svg"
+ inkscape:export-filename="/home/jimmac/src/cvs/gnome/gnome-icon-theme/48x48/stock/generic/stock_person.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient4562">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop4564" />
+ <stop
+ style="stop-color:#d6d6d2;stop-opacity:1;"
+ offset="1"
+ id="stop4566" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4356">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop4358" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop4360" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3824">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3826" />
+ <stop
+ style="stop-color:#c9c9c9;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop3828" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3816">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3818" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3820" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3816"
+ id="radialGradient3822"
+ cx="31.112698"
+ cy="19.008621"
+ fx="31.112698"
+ fy="19.008621"
+ r="8.6620579"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4356"
+ id="linearGradient4362"
+ x1="20.661695"
+ y1="35.817974"
+ x2="22.626925"
+ y2="36.217758"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3161,0.243028,-0.243028,1.3161,-9.262129,-16.07396)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4356"
+ id="linearGradient4366"
+ gradientUnits="userSpaceOnUse"
+ x1="22.686766"
+ y1="36.390400"
+ x2="21.408455"
+ y2="35.739632"
+ gradientTransform="matrix(-1.308485,0.281154,0.281154,1.308485,57.41196,-17.2385)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4356"
+ id="linearGradient1366"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.308485,0.281154,0.281154,1.308485,39.09106,-26.21225)"
+ x1="22.686766"
+ y1="36.390400"
+ x2="21.408455"
+ y2="35.739632" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3824"
+ id="linearGradient1372"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.338350,0.000000,0.000000,1.338350,-33.47918,-20.70004)"
+ x1="30.935921"
+ y1="29.553486"
+ x2="30.935921"
+ y2="35.803486" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4562"
+ id="radialGradient4568"
+ cx="24.753788"
+ cy="26.814409"
+ fx="24.753788"
+ fy="26.814409"
+ r="17.986024"
+ gradientTransform="matrix(1.354517,4.451877e-16,-3.340511e-8,1.366395,-8.947464,-9.871365)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4562"
+ id="radialGradient3816"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.558489,1.477485e-16,-1.377346e-8,0.563387,14.87134,4.364123)"
+ cx="29.922075"
+ cy="17.727694"
+ fx="29.922075"
+ fy="17.727694"
+ r="17.986024" />
+ <filter
+ inkscape:collect="always"
+ x="-0.076111111"
+ width="1.1522222"
+ y="-0.28344828"
+ height="1.5668966"
+ id="filter5655">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.4531044"
+ id="feGaussianBlur5657" />
+ </filter>
+ </defs>
+ <sodipodi:namedview
+ inkscape:showpageshadow="false"
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="0.16862745"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="31.500535"
+ inkscape:cy="28.945566"
+ inkscape:current-layer="layer2"
+ showgrid="false"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ fill="#9db029"
+ stroke="#727e0a"
+ inkscape:window-width="872"
+ inkscape:window-height="815"
+ inkscape:window-x="202"
+ inkscape:window-y="68" />
+ <metadata
+ id="metadata4">
+ <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>Person</dc:title>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Jakub Steiner</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source>http://jimmac.musichall.cz</dc:source>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>user</rdf:li>
+ <rdf:li>person</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/GPL/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:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/SourceCode" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="cipek"
+ inkscape:groupmode="layer"
+ style="display:inline">
+ <path
+ style="opacity:1;color:#000000;fill:url(#linearGradient1372);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ d="M 13.365469,24.850231 L 19.043607,24.850231 L 15.731361,21.774572 L 15.021593,22.720929 L 14.311825,22.011162 L 13.365469,24.850231 z "
+ id="path4173" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path4370"
+ d="M 19.882923,32.490544 C 21.530768,31.712992 22.297815,29.810737 22.297815,29.810737 C 21.014177,24.39981 16.976336,20.652646 16.976336,20.652646 C 16.976336,20.652646 20.274824,29.141269 19.882923,32.490544 z "
+ style="opacity:0.22784807;color:#000000;fill:url(#linearGradient1366);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="dalsi cipek"
+ style="display:inline">
+ <rect
+ style="opacity:0.34857143;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible;filter:url(#filter5655);enable-background:accumulate"
+ id="rect4608"
+ width="38.183765"
+ height="10.253048"
+ x="5.3033009"
+ y="35.448853"
+ rx="5.126524"
+ ry="5.126524"
+ transform="matrix(0.9351852,0,0,0.9351852,1.5811694,2.2763322)" />
+ <path
+ style="opacity:1;color:#000000;fill:url(#radialGradient4568);fill-opacity:1.0;fill-rule:evenodd;stroke:#888a85;stroke-width:0.99999982px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ d="M 17.918908,43.517006 L 32.114254,43.517006 C 36.136269,43.517006 40.118235,42.042236 41.577816,37.838868 C 42.963864,33.847271 41.814406,26.246002 32.824021,20.094686 L 16.026195,20.094686 C 7.0358098,25.772823 5.9122958,33.538186 7.9821665,38.075456 C 10.090864,42.697836 13.660304,43.517006 17.918908,43.517006 z "
+ id="path4308"
+ sodipodi:nodetypes="cczcczc" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path4364"
+ d="M 38.203826,41.464292 C 39.851671,40.68674 40.618718,38.784486 40.618718,38.784486 C 39.33508,33.373558 35.297238,29.626395 35.297238,29.626395 C 35.297238,29.626395 38.595727,38.115017 38.203826,41.464292 z "
+ style="opacity:0.29120878;color:#000000;fill:url(#linearGradient4366);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true" />
+ <path
+ style="opacity:0.54945056;color:#000000;fill:url(#linearGradient4362);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ d="M 11.642995,42.046125 C 9.9732599,41.316765 9.2259419,39.559099 9.2259419,39.559099 C 10.351871,34.11317 14.204505,30.128795 14.204505,30.128795 C 14.204505,30.128795 11.153975,38.709646 11.642995,42.046125 z "
+ id="path4354"
+ sodipodi:nodetypes="cccc"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true" />
+ <path
+ sodipodi:nodetypes="cczcczc"
+ id="path4314"
+ d="M 17.593144,42.482789 L 32.120832,42.452196 C 35.775407,42.452196 39.393589,41.112158 40.719828,37.292799 C 41.97925,33.665864 40.58869,26.759027 32.419643,21.169679 L 16.464198,20.833163 C 8.295151,25.99256 6.714018,33.0485 8.6253819,37.507773 C 10.536748,41.967046 13.325894,42.452196 17.593144,42.482789 z "
+ style="opacity:0.64285714;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999988px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1 22.45064,19.008621 A 8.6620579 8.6620579 0 1 1 39.774755 19.008621 z"
+ sodipodi:ry="8.6620579"
+ sodipodi:rx="8.6620579"
+ sodipodi:cy="19.008621"
+ sodipodi:cx="31.112698"
+ id="path4318"
+ style="opacity:1;color:#000000;fill:url(#radialGradient3822);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ sodipodi:type="arc"
+ transform="matrix(1.338350,0.000000,0.000000,1.338350,-17.02698,-7.522361)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;color:#000000;fill:url(#radialGradient3816);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.74718857px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="path4320"
+ sodipodi:cx="31.112698"
+ sodipodi:cy="19.008621"
+ sodipodi:rx="8.6620579"
+ sodipodi:ry="8.6620579"
+ d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1 22.45064,19.008621 A 8.6620579 8.6620579 0 1 1 39.774755 19.008621 z"
+ transform="matrix(1.338350,0.000000,0.000000,1.338350,-16.85969,-12.20659)" />
+ <path
+ d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1 22.45064,19.008621 A 8.6620579 8.6620579 0 1 1 39.774755 19.008621 z"
+ sodipodi:ry="8.6620579"
+ sodipodi:rx="8.6620579"
+ sodipodi:cy="19.008621"
+ sodipodi:cx="31.112698"
+ id="path4322"
+ style="opacity:0.19620254;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.82296228px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ sodipodi:type="arc"
+ transform="matrix(1.215123,0.000000,0.000000,1.215123,-13.02574,-9.864199)" />
+ </g>
+</svg>
diff --git a/icons/exit.svg b/icons/exit.svg
new file mode 100644
index 0000000..d8766c9
--- /dev/null
+++ b/icons/exit.svg
@@ -0,0 +1,301 @@
+<?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"
+ id="svg2"
+ inkscape:label="Pozadí"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.3.1 r9886"
+ version="1.0"
+ sodipodi:docname="exit.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ height="128"
+ width="128"
+ xml:space="preserve"><defs
+ id="defs3"><linearGradient
+ inkscape:collect="always"
+ id="linearGradient5837"><stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5839" /><stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop5841" /></linearGradient><linearGradient
+ inkscape:collect="always"
+ id="linearGradient5771"><stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop5773" /><stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop5775" /></linearGradient><linearGradient
+ inkscape:collect="always"
+ id="linearGradient5757"><stop
+ style="stop-color:#eeeeec;stop-opacity:1;"
+ offset="0"
+ id="stop5759" /><stop
+ style="stop-color:#b6b9b2;stop-opacity:1"
+ offset="1"
+ id="stop5761" /></linearGradient><linearGradient
+ inkscape:collect="always"
+ id="linearGradient5749"><stop
+ style="stop-color:#555753;stop-opacity:1;"
+ offset="0"
+ id="stop5751" /><stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="1"
+ id="stop5753" /></linearGradient><radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient5031"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.774389,0,0,1.969706,444.1734,-872.88106)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" /><linearGradient
+ inkscape:collect="always"
+ id="linearGradient5060"><stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0"
+ id="stop5062" /><stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop5064" /></linearGradient><radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient5029"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.7182065,0,0,1.969706,-1790.093,-872.88106)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" /><linearGradient
+ id="linearGradient5048"><stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="0"
+ id="stop5050" /><stop
+ id="stop5056"
+ offset="0.5"
+ style="stop-color:black;stop-opacity:1;" /><stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop5052" /></linearGradient><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5048"
+ id="linearGradient5027"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.242688,0,0,1.969706,-1503.9583,-872.8854)"
+ x1="302.85715"
+ y1="366.64789"
+ x2="302.85715"
+ y2="609.50507" /><linearGradient
+ inkscape:collect="always"
+ id="linearGradient5551"><stop
+ style="stop-color:#d80000;stop-opacity:1;"
+ offset="0"
+ id="stop5553" /><stop
+ style="stop-color:#ff1919;stop-opacity:1"
+ offset="1"
+ id="stop5555" /></linearGradient><linearGradient
+ inkscape:collect="always"
+ id="linearGradient4962"><stop
+ style="stop-color:#4f7633;stop-opacity:1;"
+ offset="0"
+ id="stop4964" /><stop
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1"
+ id="stop4966" /></linearGradient><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4962"
+ id="linearGradient4968"
+ x1="36"
+ y1="24"
+ x2="36"
+ y2="6.8892298"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.3577652,0,0,5.3825499,-112.81773,-27.90054)" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5551"
+ id="linearGradient5569"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4186451,0,0,5.5152798,53.285258,-95.928252)"
+ x1="-5"
+ y1="30.485746"
+ x2="-5"
+ y2="28" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5749"
+ id="linearGradient5755"
+ x1="20.736568"
+ y1="8"
+ x2="12.734337"
+ y2="8"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.3209553,0,0,5.4794655,-41.516554,-30.938475)" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5757"
+ id="linearGradient5763"
+ x1="15"
+ y1="10"
+ x2="20"
+ y2="10"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.6186267,0,0,5.4794655,-32.737447,-30.938475)" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5771"
+ id="linearGradient5777"
+ x1="19"
+ y1="3"
+ x2="19"
+ y2="10"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(7.3959144,0,0,4.4618507,-80.798735,-23.580336)" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5837"
+ id="linearGradient5848"
+ gradientUnits="userSpaceOnUse"
+ x1="10"
+ y1="44.016026"
+ x2="10"
+ y2="12.805173"
+ gradientTransform="matrix(2.715909,0,0,2.715909,-0.52733565,-4.9569592)" /></defs><sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="4.7571231"
+ inkscape:cx="43.072055"
+ inkscape:cy="58.504488"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="48px"
+ height="48px"
+ inkscape:showpageshadow="false"
+ gridtolerance="10000"
+ inkscape:window-width="1280"
+ inkscape:window-height="998"
+ inkscape:window-x="1920"
+ inkscape:window-y="0"
+ showgrid="false"
+ inkscape:window-maximized="1"><inkscape:grid
+ type="xygrid"
+ id="grid4948" /></sodipodi:namedview><metadata
+ id="metadata6"><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="Vrstva 1"
+ inkscape:groupmode="layer"
+ id="layer1"><g
+ style="display:inline"
+ id="g5022"
+ transform="matrix(0.06188426,0,0,0.0525517,118.00725,108.08191)"><rect
+ y="-150.69685"
+ x="-1234.8357"
+ height="478.35718"
+ width="1082.8979"
+ id="rect4173"
+ style="opacity:0.39195981;color:#000000;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" /><path
+ sodipodi:nodetypes="cccc"
+ id="path5058"
+ d="m -151.93764,-150.67604 c 0,0 0,478.33079 0,478.33079 139.980909,0.90045 338.40573,-107.16966 338.40565,-239.196176 0,-132.026537 -156.208156,-239.134594 -338.40565,-239.134614 z"
+ style="opacity:0.40206185;color:#000000;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ inkscape:connector-curvature="0" /><path
+ style="opacity:0.40206185;color:#000000;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m -1227.8411,-150.67604 c 0,0 0,478.33079 0,478.33079 -142.8742,0.90045 -345.4002,-107.16966 -345.4002,-239.196177 0,-132.026537 159.4368,-239.134593 345.4002,-239.134613 z"
+ id="path5018"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" /></g><rect
+ style="color:#000000;fill:url(#linearGradient4968);fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:2.97456694px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect4960"
+ width="80.366486"
+ height="113.03354"
+ x="34.520824"
+ y="1.7034839" /><path
+ style="fill:none;stroke:#73d216;stroke-width:2.97456694px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.36486487"
+ d="m 40.691028,111.85063 71.202742,0 0,-106.5093625"
+ id="path5547"
+ sodipodi:nodetypes="ccc"
+ inkscape:connector-curvature="0" /><path
+ style="color:#000000;fill:url(#linearGradient5763);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient5755);stroke-width:2.97456646px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 37.495388,4.6780512 50.567638,0 0,82.1919788 -50.567638,21.91786 0,-104.1098388 z"
+ id="rect5746"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" /><path
+ style="color:#000000;fill:url(#linearGradient5569);fill-opacity:1;fill-rule:nonzero;stroke:#a60f11;stroke-width:2.97456694px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 34.467538,31.449152 0,17.748937 -32.6594067,0 0,33.040493 32.6594067,0 0,17.625606 L 73.190194,66.772511 34.467538,31.449152 z"
+ id="rect5549"
+ sodipodi:nodetypes="cccccccc"
+ inkscape:connector-curvature="0" /><path
+ style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2.97456646px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.23873877;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 37.506504,38.223656 0,14.092413 -32.6713384,0 0,26.882821 32.6713384,0 0,14.002098 L 68.330507,66.606807 37.506504,38.223656 z"
+ id="path5561"
+ sodipodi:nodetypes="cccccccc"
+ inkscape:connector-curvature="0" /><path
+ style="fill:none;stroke:#ffffff;stroke-width:2.97456694px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.61261262"
+ d="M 85.225598,10.290568 85.172142,84.614014 40.469958,104.23637"
+ id="path5765"
+ sodipodi:nodetypes="ccc"
+ inkscape:connector-curvature="0" /><path
+ style="fill:url(#linearGradient5777);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 44.931805,3.1907675 36.979575,17.8474015 22.18774,0 0,-17.8474015 -59.167315,0 z"
+ id="path5769"
+ inkscape:connector-curvature="0" /><rect
+ style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect5797"
+ width="2.9745669"
+ height="2.9745669"
+ x="77.652046"
+ y="44.834705" /><rect
+ y="47.809269"
+ x="80.62661"
+ height="2.9745669"
+ width="2.9745669"
+ id="rect5799"
+ style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /><rect
+ style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect5805"
+ width="2.9745662"
+ height="2.9745669"
+ x="80.62661"
+ y="50.783836" /><rect
+ y="50.783836"
+ x="77.652046"
+ height="2.9745669"
+ width="2.9745662"
+ id="rect5807"
+ style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /><rect
+ style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect5829"
+ width="2.9745662"
+ height="2.9745669"
+ x="74.677475"
+ y="53.758404" /><rect
+ y="47.809269"
+ x="77.652046"
+ height="2.9745669"
+ width="2.9745669"
+ id="rect5831"
+ style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /><rect
+ style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect5833"
+ width="2.9745669"
+ height="2.9745669"
+ x="77.652046"
+ y="53.758404" /><path
+ style="opacity:0.52401745;color:#000000;fill:url(#linearGradient5848);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 36.052563,34.423719 0,16.21058 -29.7901264,0 0,7.383878 c 6.8653894,4.600277 18.2744334,7.638494 31.2329514,7.638494 10.584104,0 20.178614,-2.018479 27.074217,-5.262074 L 36.052563,34.423719 z"
+ id="path5835"
+ inkscape:connector-curvature="0" /></g></svg> \ No newline at end of file
diff --git a/icons/eye.svg b/icons/eye.svg
new file mode 100644
index 0000000..86518ca
--- /dev/null
+++ b/icons/eye.svg
@@ -0,0 +1,227 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="679.85107"
+ height="273.03406"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.3.1 r9886"
+ version="1.0"
+ sodipodi:docname="eye.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 136.51703 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="679.85107 : 136.51703 : 1"
+ inkscape:persp3d-origin="339.92554 : 91.011353 : 1"
+ id="perspective40" />
+ <filter
+ inkscape:collect="always"
+ x="-0.13315918"
+ width="1.2663183"
+ y="-0.17460185"
+ height="1.3492037"
+ id="filter7676">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="4.2217398"
+ id="feGaussianBlur7678" />
+ </filter>
+ <filter
+ inkscape:collect="always"
+ id="filter7812">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.5536207"
+ id="feGaussianBlur7814" />
+ </filter>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="369.80514"
+ inkscape:cy="181.01782"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer4"
+ width="720px"
+ height="380px"
+ inkscape:window-width="1440"
+ inkscape:window-height="825"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ showgrid="false"
+ inkscape:window-maximized="0" />
+ <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:groupmode="layer"
+ id="layer2"
+ inkscape:label="contorno do olho"
+ style="display:inline"
+ transform="translate(-20.71769,-59.43312)" />
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="contorno de dentro do olho"
+ style="display:inline"
+ transform="translate(-20.71769,-59.43312)" />
+ <g
+ inkscape:groupmode="layer"
+ id="layer4"
+ inkscape:label="globo"
+ style="display:inline"
+ transform="translate(-20.71769,-59.43312)">
+ <path
+ style="fill:#000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:6.69999981;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+ d="m 481.09375,57.96875 c -25.39921,15.110915 -52.20223,32.787596 -82.96875,31.125 -3.5914,0.673505 2.03678,-2.217156 2.3125,-3.3125 2.62926,-3.433689 6.68865,-6.977146 6.5,-11.625 -0.53691,-4.946256 -6.69003,-4.20107 -8.84375,-0.8125 -3.9536,3.769614 -3.32111,2.774307 -0.8125,-0.96875 2.24514,-3.822269 5.61118,-12.260191 -1.09375,-13.15625 -6.01423,0.918012 -9.50743,7.113085 -14.69331,9.866882 -10.26164,8.369292 -22.41227,16.934418 -36.30641,15.072977 -53.72305,1.047782 -108.626,-3.113655 -160.90653,11.685141 -51.35446,13.69982 -99.267054,38.55627 -141.875,70.0625 -3.048334,2.12661 -2.276213,8.03211 2.09375,6.8125 8.211698,-2.51981 14.171563,-9.40952 21.96875,-13 34.05154,-20.28784 72.12098,-33.91806 111.03125,-41.28125 -33.54638,25.43937 -66.89104,52.9231 -89.78125,88.5 -8.957329,19.10769 -31.741233,24.03902 -48.583539,34.03339 -9.361182,5.3546 -17.846019,12.72437 -22.541461,22.68536 7.649975,14.87252 26.008088,17.97455 41.15625,19.125 9.423209,0.47593 18.105773,4.19357 26.59375,7.75 22.30659,5.50129 44.37841,-4.70899 66.35384,-6.10788 44.08504,9.45087 88.19758,21.84305 133.70787,21.49983 36.36129,0.38446 74.1255,-1.3376 108.28204,12.92055 5.46404,2.84482 17.19974,15.05554 19.9375,3.53125 -1.26287,-6.22055 -6.76948,-10.57243 -11.34375,-14.59375 12.9823,-2.06869 26.59266,1.10229 38.5625,6.0625 5.17403,2.69731 9.97418,10.02413 16.375,7.75 4.94448,-3.58819 -0.0179,-10.07141 -2.5,-13.25 15.35411,4.88261 29.81558,13.44132 41.65625,24 4.59888,2.47448 9.39875,-3.87618 5.625,-7.65625 -6.77061,-11.36846 -16.57439,-20.60479 -27.25,-28.375 17.55048,-6.12386 38.03668,-4.35617 54.6875,3.5625 4.23149,2.6819 9.06974,5.99946 14.34375,4.4375 3.83878,-5.18362 -2.08947,-10.05955 -6.1875,-12.40625 -4.50824,-4.04708 -9.85255,-6.91 -15.25,-9.5625 6.57447,-3.36388 13.04775,-7.35863 20,-9.6875 18.22316,-3.68869 36.10361,5.47593 51.21875,14.6875 4.23269,5.16958 12.64886,-1.8307 8.78125,-7.09375 -7.53352,-10.23555 -20.83608,-14.08091 -29.5625,-23.09375 13.64039,-5.83593 27.46611,3.47153 39.52003,9.06637 3.36128,2.41587 10.89686,5.79937 12.01122,-0.47262 -0.25102,-6.50888 -7.88117,-9.10451 -11.96875,-13 -5.82828,-4.48002 -13.96556,-8.40107 -19.25,-11.78125 10.74859,-7.00416 24.33957,-1.10705 34.50454,4.50707 4.75099,2.60055 9.27808,5.58028 13.90171,8.39918 5.11336,-3.02768 4.26345,-10.0929 -0.15625,-13.28125 -7.07063,-6.38333 -16.12136,-10.25487 -23.09375,-16.71875 19.56886,-2.81292 41.02227,6.20812 59.375,-4.09375 2.26529,-1.80556 8.9674,-3.31209 4.65625,-6.375 -5.4753,-5.44002 -13.38048,-0.32938 -19.96875,-1.90625 -6.10807,-0.19222 -12.6147,-0.35864 -18.0625,-3.1875 20.1595,-6.97259 44.13613,-9.87386 58.5625,-27.25 1.65836,-2.45831 7.40465,-7.30729 2.96875,-9.6875 -6.72896,1.25527 -13.31389,4.88435 -20.45804,5.20846 -13.0545,1.6955 -26.43768,0.35288 -39.19821,-2.83346 14.32174,-6.23785 31.30577,-12.33658 37.75776,-27.91233 -0.17879,-2.59784 -9.29491,2.01447 -13.10151,2.22483 -20.45374,4.92459 -42.45181,7.73412 -63.03125,2.0625 14.4195,-9.7004 32.07824,-17.8407 38.62244,-35.21643 -3.38349,0.66073 -9.43782,3.99953 -14.02881,5.43909 -25.35606,9.39184 -53.49269,12.9853 -80.09363,6.87109 15.69535,-13.04475 34.84916,-22.61653 45.09375,-41 -15.99696,-1.870573 -29.19193,8.876958 -43.648,13.68196 -9.72896,3.99043 -19.84221,7.09347 -30.32075,8.28679 10.03757,-6.72375 21.33352,-14.493636 23.42682,-27.4262 1.10913,-4.160457 -6.40048,4.207414 -9.03387,5.083912 -19.93085,14.301648 -45.46116,19.130678 -69.37773,14.199748 -4.80562,-1.179819 -11.31229,-1.503309 -15.26522,-3.32621 10.12198,-11.59394 26.37655,-18.6331 31.3125,-34.25 0.62274,-4.160151 4.55373,-9.761352 -2.34375,-4.5 z"
+ id="path2261"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#666666;fill-rule:evenodd;stroke:none;display:inline"
+ d="m 81.47075,268.61679 c 15.94489,17.53333 41.74324,18.28795 62.87892,11.688 23.23421,0.57572 45.41058,9.40415 68.72263,10.44182 65.43429,7.16513 131.4219,4.82956 197.09178,3.98655 64.37744,-4.59678 126.63354,-35.24768 168.97264,-84.05476 -8.33023,-14.65501 -30.8226,-14.84558 -44.14895,-25.11141 -60.32068,-29.13368 -124.91572,-51.70539 -192.27559,-55.53538 -53.90939,-5.57368 -112.85002,4.43891 -153.82077,42.37544 -33.75658,28.60106 -53.11696,73.8789 -94.892449,92.66729 -4.053531,1.56722 -8.251784,2.76449 -12.528211,3.54245 z"
+ id="path2265"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:0.89673899;fill:#999999;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 97.73181,264.21275 C 112.63779,266.47123 126.64038,262.85766 139.73957,265.56784 L 204.10629,288.60435 C 195.40427,293.37954 152.35849,277.14819 146.51501,280.47382 L 126.86622,284.53909 C 110.15154,282.73741 92.345,283.84738 80.7932,268.27802 L 97.73181,264.21275 z"
+ id="path2272"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ style="fill:#808080;fill-rule:evenodd;stroke:none;display:inline"
+ d="m 133.64167,242.53133 c 27.50815,-51.14773 73.20386,-96.95122 132.00456,-108.30328 52.79273,-10.65456 107.61735,-3.63476 159.28708,9.54267 48.81115,13.29529 94.93516,34.70701 139.6266,58.10795 -29.65245,44.51047 -82.74875,64.96073 -133.05284,75.57102 -81.75024,15.90244 -167.27118,13.42478 -247.88465,-7.5245 -17.50777,-5.31227 -36.65105,-11.29198 -48.94399,-25.57106 l -1.03676,-1.8228 0,0 z"
+ id="path2278"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 134.99676,241.85379 C 135.2226,241.85379 135.44845,241.85379 134.99676,241.85379 z"
+ id="path2276" />
+ <path
+ style="opacity:0.79891298;fill:#e6e6e6;fill-rule:evenodd;stroke:none;display:inline"
+ d="m 153.968,241.17624 c 26.7927,-50.47181 85.80366,-71.38398 139.53321,-77.13755 65.75324,-6.98583 134.4866,2.16061 193.95463,31.89901 13.64756,8.50227 35.35766,19.78912 37.41559,34.93057 -25.08991,33.44111 -69.02856,42.74702 -107.91811,49.67193 -72.30606,10.81287 -146.78506,7.7574 -218.14658,-7.9104 -15.99603,-5.36267 -36.20604,-8.42366 -45.92977,-23.57734 -1.02734,-2.58317 -0.56544,-5.65374 1.09103,-7.87622 z"
+ id="path2280"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g2413">
+ <path
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.56083322px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 473.48666,197.47258 C 468.74687,308.55384 294.10222,340.93623 244.92215,243.13481 200.55471,156.11706 302.58878,66.118123 387.79184,99.037329 c 45.07985,10.867551 87.42911,49.038071 85.69482,98.435251 z"
+ id="path2283"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#008000;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-opacity:1;filter:url(#filter7676)"
+ d="m 403.1389,428.3588 c 0.0435,9.67932 -7.77585,17.4868 -16.31097,20.85189 -13.22862,5.35312 -30.08123,3.36545 -40.27296,-7.12413 -5.75209,-5.75269 -7.59684,-15.19166 -3.5883,-22.42311 5.68733,-10.51571 18.34901,-15.27007 29.80963,-15.01096 11.13203,0.17689 23.25993,5.17101 28.4714,15.55262 1.22491,2.53289 1.89691,5.33701 1.8912,8.15369 z"
+ id="path3310"
+ inkscape:connector-curvature="0"
+ transform="matrix(2.96492,0,0,3.42532,-751.055,-1270.47)" />
+ <path
+ style="fill:#000000;stroke:none"
+ d="m 380.84549,190.36192 c 2.81958,55.24725 -99.13882,21.09771 -57.49428,-20.2459 17.54576,-18.68812 62.39805,-10.99019 57.49428,20.2459 z"
+ id="path4281"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:0.44021702;fill:#d5fff6;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 391.78608,157.16074 c 16.9962,6.49757 23.58584,25.7675 23.78236,42.56667 2.04734,22.99296 -5.96987,48.58614 -26.83634,60.75717 -14.08001,8.4391 -30.89832,12.54636 -47.21517,12.2002 -27.50067,-4.24202 -56.93256,-19.6649 -65.50666,-47.96231 -6.27507,-21.39637 -0.59573,-44.6981 9.58852,-63.89041 5.80786,-5.8752 20.98446,-12.16952 25.46742,-9.13163 -10.72298,18.18593 -19.11286,42.69912 -6.72151,62.14111 11.3407,16.56766 33.39226,25.03433 52.94994,20.68213 17.98068,-2.16099 35.4801,-14.72319 38.56112,-33.38244 3.01622,-14.66509 0.13471,-29.85393 -4.06968,-43.98049 z"
+ id="path4285"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#d5fff6;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter7812)"
+ d="m 298.96249,157.83828 c -10.41374,15.71344 -9.85756,36.91705 -0.74821,53.07927 9.67568,18.17443 29.67442,31.37945 50.6466,29.909 7.01218,-0.20367 13.86313,-2.13271 19.90936,-5.71688 8.46968,-4.88696 16.89416,-10.52768 22.90863,-18.36462 2.14795,-2.31181 1.18762,-6.19676 -0.80182,-1.79649 -12.1994,16.12111 -34.37191,21.65502 -53.60588,17.89191 -17.07399,-3.03543 -33.71071,-14.20823 -39.19122,-31.24815 -2.50588,-8.59849 -3.16909,-17.73056 -2.61029,-26.65119 0.47615,-5.81341 1.66973,-11.56372 3.49283,-17.10285 z"
+ id="path4287"
+ inkscape:connector-curvature="0" />
+ <g
+ transform="matrix(1.0471,0,0,0.813144,-227.066,-21.5052)"
+ id="g2246"
+ style="opacity:1;fill:#ffffff;stroke:none;display:inline">
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:none"
+ d="m 508.02224,261.67934 c -7.63859,-1.12968 -14.98372,0.82449 -22.33977,2.66383 7.65135,-0.0553 15.02218,-0.0849 22.33977,-2.66383 z"
+ id="path9108"
+ inkscape:connector-curvature="0" />
+ <g
+ style="fill:#ffffff;stroke:none"
+ id="g9157">
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:none"
+ d="m 566.73258,306.44537 c -1.30508,6.05747 -1.21807,12.05081 0.74766,17.95762 1.30957,8.46017 1.15032,0.0479 1.38591,-3.82908 0.85824,-4.93544 -1.07062,-9.39482 -2.13357,-14.12854 z"
+ id="path9090"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:none"
+ d="m 532.12249,306.86912 c -3.36157,5.19095 -5.37068,10.82119 -5.60652,17.02741 -1.79859,8.61675 1.27527,-0.16523 2.84912,-3.59095 2.40314,-4.13035 2.0659,-8.85869 2.7574,-13.43646 z"
+ id="path9092"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:none"
+ d="m 544.29582,310.84621 c -1.3156,6.04279 -1.2107,12.01985 0.75666,17.91071 1.35482,8.69757 1.13513,-0.60425 1.40015,-4.36487 0.79263,-4.71238 -1.18998,-9.01822 -2.15681,-13.54584 z"
+ id="path9094"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:none"
+ d="m 516.9515,297.18907 c -5.03124,3.59621 -8.96541,8.09715 -11.46114,13.78434 -4.83371,7.35653 1.247,0.31402 3.96766,-2.29568 3.74315,-2.95074 5.17744,-7.49335 7.49348,-11.48866 z"
+ id="path9084"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:none"
+ d="m 574.2663,299.66507 c 0.18162,5.52194 1.19016,10.76285 4.81102,15.11598 3.9442,7.87648 1.42402,-0.56343 0.66484,-4.5585 -0.2654,-4.18755 -3.49603,-7.08536 -5.47586,-10.55748 z"
+ id="path9088"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:none"
+ d="m 580.72863,291.94055 c 2.61345,5.605 6.31733,10.29728 11.45093,13.79283 6.34629,6.09983 0.53718,-1.16836 -1.52982,-4.32113 -2.2237,-4.22965 -6.40935,-6.4548 -9.92111,-9.4717 z"
+ id="path9096"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:none"
+ d="m 509.59397,286.63183 c -6.32858,4.42417 -10.32617,10.88861 -14.41055,17.27708 5.50504,-5.27164 10.88241,-10.40408 14.41055,-17.27708 z"
+ id="path9098"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:none"
+ d="m 505.78712,277.56953 c -4.98591,2.03096 -9.96489,4.07122 -12.88781,8.87635 -4.84591,4.96337 -4.98955,6.04274 1.15629,1.92709 5.34445,-2.15811 8.29819,-6.41578 11.73152,-10.80344 z"
+ id="path9100"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:none"
+ d="m 506.39223,251.65549 c -6.27415,-4.50102 -13.69906,-6.12595 -21.08112,-7.85796 6.82791,3.45338 13.39468,6.80115 21.08112,7.85796 z"
+ id="path9102"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:none"
+ d="m 511.41741,238.4071 c -3.62132,-5.0132 -8.14187,-8.92482 -13.84146,-11.3921 -7.38059,-4.79688 -0.30778,1.24856 2.31549,3.95614 2.96941,3.72836 7.51913,5.13992 11.52597,7.43596 z"
+ id="path9104"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:none"
+ d="m 503.02107,273.51427 c -7.53468,-0.75948 -14.85796,0.81813 -22.18111,2.39709 7.5103,-0.16352 14.91075,-0.24851 22.18111,-2.39709 z"
+ id="path9110"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/icons/graduate.svg b/icons/graduate.svg
new file mode 100644
index 0000000..63f9f88
--- /dev/null
+++ b/icons/graduate.svg
@@ -0,0 +1,1932 @@
+<?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"
+ version="1.0"
+ width="128"
+ height="128"
+ id="svg43586">
+ <metadata
+ id="metadata3781">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs43588">
+ <linearGradient
+ id="linearGradient44699">
+ <stop
+ id="stop44701"
+ style="stop-color:#000173;stop-opacity:0.93333334"
+ offset="0" />
+ <stop
+ id="stop44703"
+ style="stop-color:#3575f0;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient44693">
+ <stop
+ id="stop44695"
+ style="stop-color:#3690e6;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop44697"
+ style="stop-color:#d0e9ff;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient44681">
+ <stop
+ id="stop44683"
+ style="stop-color:#ff5c38;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop44685"
+ style="stop-color:#fb7e65;stop-opacity:0.99607843"
+ offset="0.30397323" />
+ <stop
+ id="stop44687"
+ style="stop-color:#cd0000;stop-opacity:0.98039216"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient44627">
+ <stop
+ id="stop44629"
+ style="stop-color:#fffcfb;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop44633"
+ style="stop-color:#f4ad94;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient44615">
+ <stop
+ id="stop44617"
+ style="stop-color:#2f68fa;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop44619"
+ style="stop-color:#c7d5fb;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient44605">
+ <stop
+ id="stop44607"
+ style="stop-color:#d0ecff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop44609"
+ style="stop-color:#d7f0ff;stop-opacity:1"
+ offset="0.5" />
+ <stop
+ id="stop44611"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient44090">
+ <stop
+ id="stop44092"
+ style="stop-color:#0926bb;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop44094"
+ style="stop-color:#6bb5fe;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient44080">
+ <stop
+ id="stop44082"
+ style="stop-color:#2c8300;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop44084"
+ style="stop-color:#57aeff;stop-opacity:1"
+ offset="0.25" />
+ <stop
+ id="stop44086"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" />
+ <stop
+ id="stop44088"
+ style="stop-color:#5aafff;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <filter
+ color-interpolation-filters="sRGB"
+ id="filter3297">
+ <feGaussianBlur
+ id="feGaussianBlur3299"
+ stdDeviation="0.26694977" />
+ </filter>
+ <filter
+ color-interpolation-filters="sRGB"
+ id="filter3293">
+ <feGaussianBlur
+ id="feGaussianBlur3295"
+ stdDeviation="0.355" />
+ </filter>
+ <linearGradient
+ x1="41.945538"
+ y1="46.665127"
+ x2="41.945538"
+ y2="82.333244"
+ id="linearGradient3277"
+ xlink:href="#linearGradient3319"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4960409,0,0,1.4960409,402.17032,589.33425)" />
+ <radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient3267"
+ xlink:href="#linearGradient3261"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-247.63486,-320.15198)" />
+ <linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient3243"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.1200468,0)" />
+ <linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient3240"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,983.32613,0)" />
+ <radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient3211"
+ xlink:href="#linearGradient3205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1805.2301,-312.49477)" />
+ <linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient3203"
+ xlink:href="#linearGradient3197"
+ gradientUnits="userSpaceOnUse" />
+ <filter
+ color-interpolation-filters="sRGB"
+ id="filter3385">
+ <feGaussianBlur
+ id="feGaussianBlur3387"
+ stdDeviation="0.14607691" />
+ </filter>
+ <linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient3345"
+ xlink:href="#linearGradient3339"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ cx="53.60223"
+ cy="59.728882"
+ r="17.834057"
+ fx="53.60223"
+ fy="59.728882"
+ id="radialGradient3333"
+ xlink:href="#linearGradient3327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,1.655849,-1.6391884,0,152.15006,-32.923726)" />
+ <linearGradient
+ x1="41.945538"
+ y1="46.665127"
+ x2="41.945538"
+ y2="82.333244"
+ id="linearGradient3325"
+ xlink:href="#linearGradient3319"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="96.381813"
+ y1="30.666691"
+ x2="96.381813"
+ y2="13.187494"
+ id="linearGradient3302"
+ xlink:href="#linearGradient3282"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9348508,0,0,0.9348508,453.69103,638.99314)" />
+ <linearGradient
+ x1="96.125"
+ y1="11.1875"
+ x2="96.125"
+ y2="52.101334"
+ id="linearGradient3296"
+ xlink:href="#linearGradient14685"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(447.42856,636.93359)" />
+ <radialGradient
+ cx="546.31165"
+ cy="705.48486"
+ r="25.28125"
+ fx="546.31165"
+ fy="705.48486"
+ id="radialGradient3288"
+ xlink:href="#linearGradient3282"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.0328206,0,-3.2890618e-8,1.7173381,-565.71835,-518.49911)" />
+ <filter
+ color-interpolation-filters="sRGB"
+ id="filter14850">
+ <feGaussianBlur
+ id="feGaussianBlur14852"
+ stdDeviation="0.23870038" />
+ </filter>
+ <linearGradient
+ x1="96.125"
+ y1="11.1875"
+ x2="96.125"
+ y2="52.101334"
+ id="linearGradient14842"
+ xlink:href="#linearGradient14685"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(458.16198,644.6232)" />
+ <linearGradient
+ x1="96.125"
+ y1="11.1875"
+ x2="96.125"
+ y2="52.101334"
+ id="linearGradient14833"
+ xlink:href="#linearGradient14685"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(458.16198,644.6232)" />
+ <filter
+ color-interpolation-filters="sRGB"
+ id="filter14824">
+ <feGaussianBlur
+ id="feGaussianBlur14826"
+ stdDeviation="0.37332047" />
+ </filter>
+ <linearGradient
+ x1="96.125"
+ y1="11.1875"
+ x2="96.125"
+ y2="52.101334"
+ id="linearGradient14723"
+ xlink:href="#linearGradient14685"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(447.42856,636.93359)" />
+ <radialGradient
+ cx="546.31165"
+ cy="705.48486"
+ r="25.28125"
+ fx="546.31165"
+ fy="705.48486"
+ id="radialGradient14715"
+ xlink:href="#linearGradient14709"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.0328206,0,-3.2890618e-8,1.7173381,-565.71835,-518.49911)" />
+ <linearGradient
+ x1="96.125"
+ y1="11.1875"
+ x2="96.125"
+ y2="52.101334"
+ id="linearGradient14699"
+ xlink:href="#linearGradient14685"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(447.42856,636.93359)" />
+ <linearGradient
+ x1="96.125"
+ y1="11.1875"
+ x2="96.125"
+ y2="52.101334"
+ id="linearGradient14691"
+ xlink:href="#linearGradient14685"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient14685">
+ <stop
+ id="stop14687"
+ style="stop-color:#0917a0;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop14689"
+ style="stop-color:#0345f4;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient14709">
+ <stop
+ id="stop14711"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop14713"
+ style="stop-color:#5eb2ff;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3282">
+ <stop
+ id="stop3284"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="0" />
+ <stop
+ id="stop3286"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3319">
+ <stop
+ id="stop3321"
+ style="stop-color:#7d491f;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop44679"
+ style="stop-color:#87570f;stop-opacity:1"
+ offset="0.5" />
+ <stop
+ id="stop3323"
+ style="stop-color:#926600;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3327">
+ <stop
+ id="stop3329"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3335"
+ style="stop-color:#fdd99a;stop-opacity:1"
+ offset="0.5" />
+ <stop
+ id="stop3331"
+ style="stop-color:#c39539;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3339">
+ <stop
+ id="stop3341"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3347"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" />
+ <stop
+ id="stop3343"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3197">
+ <stop
+ id="stop3199"
+ style="stop-color:#002f32;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3201"
+ style="stop-color:#045b04;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3205">
+ <stop
+ id="stop3207"
+ style="stop-color:#2c8300;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3215"
+ style="stop-color:#3db800;stop-opacity:1"
+ offset="0.25" />
+ <stop
+ id="stop3213"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" />
+ <stop
+ id="stop3209"
+ style="stop-color:#69cf35;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3219">
+ <stop
+ id="stop3221"
+ style="stop-color:#0e7309;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3223"
+ style="stop-color:#70d13e;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3261">
+ <stop
+ id="stop3263"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="0" />
+ <stop
+ id="stop3269"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="0.5" />
+ <stop
+ id="stop3265"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient43942"
+ xlink:href="#linearGradient3339"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-342.04097,860.45213)" />
+ <linearGradient
+ x1="96.381813"
+ y1="30.666691"
+ x2="96.381813"
+ y2="13.187494"
+ id="linearGradient43945"
+ xlink:href="#linearGradient3282"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9348508,0,0,0.9348508,-335.7785,862.51168)" />
+ <linearGradient
+ x1="96.125"
+ y1="11.1875"
+ x2="96.125"
+ y2="52.101334"
+ id="linearGradient43948"
+ xlink:href="#linearGradient14685"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-342.04097,860.45213)" />
+ <radialGradient
+ cx="546.31165"
+ cy="705.48486"
+ r="25.28125"
+ fx="546.31165"
+ fy="705.48486"
+ id="radialGradient43952"
+ xlink:href="#linearGradient14709"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.0328206,0,-3.2890618e-8,1.7173381,-1355.1879,-294.98057)" />
+ <radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient43957"
+ xlink:href="#linearGradient3261"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-1037.1044,-96.63344)" />
+ <linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient43963"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,193.8566,223.51854)" />
+ <linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient43966"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-789.58958,223.51854)" />
+ <radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient43969"
+ xlink:href="#linearGradient3205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1015.7606,-88.97623)" />
+ <linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient43972"
+ xlink:href="#linearGradient3197"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-342.04097,860.45213)" />
+ <linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient43992"
+ xlink:href="#linearGradient3197"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-342.04097,860.45213)" />
+ <radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient43994"
+ xlink:href="#linearGradient3205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1015.7606,-88.97623)" />
+ <linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient43996"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-789.58958,223.51854)" />
+ <linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient43998"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,193.8566,223.51854)" />
+ <radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient44000"
+ xlink:href="#linearGradient3261"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-1037.1044,-96.63344)" />
+ <radialGradient
+ cx="53.60223"
+ cy="59.728882"
+ r="17.834057"
+ fx="53.60223"
+ fy="59.728882"
+ id="radialGradient44002"
+ xlink:href="#linearGradient3327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,1.655849,-1.6391884,0,152.15006,-32.923726)" />
+ <linearGradient
+ x1="41.945538"
+ y1="46.665127"
+ x2="41.945538"
+ y2="82.333244"
+ id="linearGradient44004"
+ xlink:href="#linearGradient3319"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient44006"
+ xlink:href="#linearGradient3339"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-342.04097,860.45213)" />
+ <linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient44038"
+ xlink:href="#linearGradient3197"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-342.04097,860.45213)" />
+ <radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient44040"
+ xlink:href="#linearGradient3205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1015.7606,-88.97623)" />
+ <linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient44042"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-789.58958,223.51854)" />
+ <linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient44044"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,193.8566,223.51854)" />
+ <radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient44046"
+ xlink:href="#linearGradient3261"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-1037.1044,-96.63344)" />
+ <radialGradient
+ cx="53.60223"
+ cy="59.728882"
+ r="17.834057"
+ fx="53.60223"
+ fy="59.728882"
+ id="radialGradient44048"
+ xlink:href="#linearGradient44627"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,1.655849,-1.6391884,0,152.15006,-32.923726)" />
+ <linearGradient
+ x1="41.945538"
+ y1="46.665127"
+ x2="41.945538"
+ y2="82.333244"
+ id="linearGradient44050"
+ xlink:href="#linearGradient3319"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient44052"
+ xlink:href="#linearGradient3339"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-342.04097,860.45213)" />
+ <linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient44057"
+ xlink:href="#linearGradient3339"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-282.47353,882.69271)" />
+ <radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient44061"
+ xlink:href="#linearGradient44605"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.856113,-0.0637264,0.1161478,1.5603521,-743.30707,-121.7687)" />
+ <linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient44067"
+ xlink:href="#linearGradient44090"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,253.42404,245.75912)" />
+ <linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient44070"
+ xlink:href="#linearGradient44090"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-730.02214,245.75912)" />
+ <radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient44073"
+ xlink:href="#linearGradient44080"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1075.328,-66.735647)" />
+ <linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient44076"
+ xlink:href="#linearGradient44699"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-282.47353,882.69271)" />
+ <linearGradient
+ x1="-246.57739"
+ y1="958.07971"
+ x2="-248.7769"
+ y2="964.61743"
+ id="linearGradient44613"
+ xlink:href="#linearGradient44615"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="-246.57739"
+ y1="958.07971"
+ x2="-248.7769"
+ y2="964.61743"
+ id="linearGradient44625"
+ xlink:href="#linearGradient44615"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,-476.93424,0)" />
+ <linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient44635"
+ xlink:href="#linearGradient3197"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-342.04097,860.45213)" />
+ <radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient44637"
+ xlink:href="#linearGradient3205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1015.7606,-88.97623)" />
+ <linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient44639"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-789.58958,223.51854)" />
+ <linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient44641"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,193.8566,223.51854)" />
+ <radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient44643"
+ xlink:href="#linearGradient3261"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-1037.1044,-96.63344)" />
+ <radialGradient
+ cx="53.60223"
+ cy="59.728882"
+ r="17.834057"
+ fx="53.60223"
+ fy="59.728882"
+ id="radialGradient44645"
+ xlink:href="#linearGradient3327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,1.655849,-1.6391884,0,152.15006,-32.923726)" />
+ <linearGradient
+ x1="41.945538"
+ y1="46.665127"
+ x2="41.945538"
+ y2="82.333244"
+ id="linearGradient44647"
+ xlink:href="#linearGradient3319"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient44649"
+ xlink:href="#linearGradient3339"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-342.04097,860.45213)" />
+ <linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient44654"
+ xlink:href="#linearGradient3339"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-324.93283,864.80693)" />
+ <radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient44658"
+ xlink:href="#linearGradient3261"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-1019.9963,-92.27864)" />
+ <linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient44664"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,210.96474,227.87334)" />
+ <linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient44667"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-772.48144,227.87334)" />
+ <radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient44670"
+ xlink:href="#linearGradient3205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1032.8687,-84.621431)" />
+ <linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient44673"
+ xlink:href="#linearGradient3197"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-324.93283,864.80693)" />
+ <linearGradient
+ x1="60.126968"
+ y1="81.913818"
+ x2="60.126968"
+ y2="47.542713"
+ id="linearGradient44677"
+ xlink:href="#linearGradient44681"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="-35.566662"
+ y1="76.562927"
+ x2="-35.566662"
+ y2="84.910484"
+ id="linearGradient44691"
+ xlink:href="#linearGradient44693"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient3339-4">
+ <stop
+ id="stop3341-7"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3347-6"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" />
+ <stop
+ id="stop3343-3"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <filter
+ color-interpolation-filters="sRGB"
+ id="filter3385-1">
+ <feGaussianBlur
+ stdDeviation="0.14607691"
+ id="feGaussianBlur3387-7" />
+ </filter>
+ <linearGradient
+ id="linearGradient3339-4-5">
+ <stop
+ id="stop3341-7-9"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3347-6-7"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" />
+ <stop
+ id="stop3343-3-5"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <filter
+ color-interpolation-filters="sRGB"
+ id="filter3385-1-3">
+ <feGaussianBlur
+ stdDeviation="0.14607691"
+ id="feGaussianBlur3387-7-8" />
+ </filter>
+ <linearGradient
+ id="linearGradient2288">
+ <stop
+ id="stop2290"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop2292"
+ style="stop-color:#898989;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2300">
+ <stop
+ id="stop2302"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop2304"
+ style="stop-color:#414141;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4013">
+ <stop
+ id="stop4015"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop4017"
+ style="stop-color:#414141;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2318">
+ <stop
+ id="stop2320"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop2326"
+ style="stop-color:#373737;stop-opacity:1"
+ offset="0.5" />
+ <stop
+ id="stop2322"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2392">
+ <stop
+ id="stop2394"
+ style="stop-color:#000000;stop-opacity:0.43298969"
+ offset="0" />
+ <stop
+ id="stop2398"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2338">
+ <stop
+ id="stop2340"
+ style="stop-color:#545454;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop2344"
+ style="stop-color:#545454;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2380">
+ <stop
+ id="stop2382"
+ style="stop-color:#838383;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop2384"
+ style="stop-color:#767676;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3836">
+ <stop
+ id="stop3838"
+ style="stop-color:#c90000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3844"
+ style="stop-color:#ff7474;stop-opacity:1"
+ offset="0.5" />
+ <stop
+ id="stop3846"
+ style="stop-color:#c90000;stop-opacity:1"
+ offset="0.75" />
+ <stop
+ id="stop3840"
+ style="stop-color:#fa5555;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3895">
+ <stop
+ id="stop3897"
+ style="stop-color:#930000;stop-opacity:0.50515461"
+ offset="0" />
+ <stop
+ id="stop3899"
+ style="stop-color:#930000;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3924">
+ <stop
+ id="stop3926"
+ style="stop-color:#ff6e6e;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3928"
+ style="stop-color:#ff7171;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3854">
+ <stop
+ id="stop3856"
+ style="stop-color:#a00000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3860"
+ style="stop-color:#c90000;stop-opacity:0"
+ offset="0.75" />
+ <stop
+ id="stop3862"
+ style="stop-color:#a00000;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="190.18034"
+ y1="96.076317"
+ x2="156.40744"
+ y2="143.56932"
+ id="linearGradient4267"
+ xlink:href="#linearGradient3895"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.15456164,0.0742179,-0.26720209,0.55645793,-25.12409,-37.753765)" />
+ <linearGradient
+ x1="144.45633"
+ y1="98.692307"
+ x2="155.86334"
+ y2="161.02338"
+ id="linearGradient4270"
+ xlink:href="#linearGradient3836"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.17904978,0.08597686,-0.23065756,0.48035238,-27.126192,-39.899064)" />
+ <linearGradient
+ x1="219.53198"
+ y1="120.31494"
+ x2="211.80861"
+ y2="127.47651"
+ id="linearGradient4274"
+ xlink:href="#linearGradient2380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3111525,0.14941036,-0.13272956,0.27641428,176.94498,-18.034295)" />
+ <radialGradient
+ cx="180.07829"
+ cy="176.38765"
+ r="53.050598"
+ fx="180.07837"
+ fy="177.18346"
+ id="radialGradient4277"
+ xlink:href="#linearGradient2338"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3111525,0.14941036,-0.13272956,0.27641428,181.50014,-10.290523)" />
+ <linearGradient
+ x1="136.33336"
+ y1="113.51798"
+ x2="173.3575"
+ y2="164.5226"
+ id="linearGradient4280"
+ xlink:href="#linearGradient2392"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.30683297,0.14733613,-0.13459826,0.28030568,192.43253,-12.112587)" />
+ <linearGradient
+ x1="263.96207"
+ y1="41.317993"
+ x2="24.068567"
+ y2="220.45784"
+ id="linearGradient4283"
+ xlink:href="#linearGradient2318"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.30683297,0.14733613,-0.13459826,0.28030568,53.95566,-40.35458)" />
+ <linearGradient
+ x1="170.29684"
+ y1="219.20184"
+ x2="75.611801"
+ y2="140.29272"
+ id="linearGradient4287"
+ xlink:href="#linearGradient2300"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.33782136,0.16221653,-0.12225159,0.25459306,58.055303,-38.988031)" />
+ <linearGradient
+ x1="366.57416"
+ y1="39.730881"
+ x2="168.78265"
+ y2="53.4328"
+ id="linearGradient4293"
+ xlink:href="#linearGradient2300"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.19716773,0.09467679,-0.20946225,0.43621227,58.510819,-38.988032)" />
+ <linearGradient
+ x1="81.846077"
+ y1="136.15834"
+ x2="168.78268"
+ y2="53.432808"
+ id="linearGradient4296"
+ xlink:href="#linearGradient2288"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.19716773,0.09467679,-0.20946225,0.43621227,58.510819,-38.988032)" />
+ <linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient4357"
+ xlink:href="#linearGradient3197"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-324.93283,864.80693)" />
+ <radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient4359"
+ xlink:href="#linearGradient3205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1032.8687,-84.621431)" />
+ <linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient4361"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-772.48144,227.87334)" />
+ <linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient4363"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,210.96474,227.87334)" />
+ <radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient4365"
+ xlink:href="#linearGradient3261"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-1019.9963,-92.27864)" />
+ <radialGradient
+ cx="53.60223"
+ cy="59.728882"
+ r="17.834057"
+ fx="53.60223"
+ fy="59.728882"
+ id="radialGradient4367"
+ xlink:href="#linearGradient3327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,1.655849,-1.6391884,0,152.15006,-32.923726)" />
+ <linearGradient
+ x1="41.945538"
+ y1="46.665127"
+ x2="41.945538"
+ y2="82.333244"
+ id="linearGradient4369"
+ xlink:href="#linearGradient3319"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient4371"
+ xlink:href="#linearGradient44699"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-282.47353,882.69271)" />
+ <radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient4373"
+ xlink:href="#linearGradient44080"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1075.328,-66.735647)" />
+ <linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient4375"
+ xlink:href="#linearGradient44090"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-730.02214,245.75912)" />
+ <linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient4377"
+ xlink:href="#linearGradient44090"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,253.42404,245.75912)" />
+ <linearGradient
+ x1="-246.57739"
+ y1="958.07971"
+ x2="-248.7769"
+ y2="964.61743"
+ id="linearGradient4379"
+ xlink:href="#linearGradient44615"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="-35.566662"
+ y1="76.562927"
+ x2="-35.566662"
+ y2="84.910484"
+ id="linearGradient4381"
+ xlink:href="#linearGradient44693"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient4383"
+ xlink:href="#linearGradient44605"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.856113,-0.0637264,0.1161478,1.5603521,-743.30707,-121.7687)" />
+ <linearGradient
+ x1="-246.57739"
+ y1="958.07971"
+ x2="-248.7769"
+ y2="964.61743"
+ id="linearGradient4385"
+ xlink:href="#linearGradient44615"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,-476.93424,0)" />
+ <radialGradient
+ cx="53.60223"
+ cy="59.728882"
+ r="17.834057"
+ fx="53.60223"
+ fy="59.728882"
+ id="radialGradient4387"
+ xlink:href="#linearGradient44627"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,1.655849,-1.6391884,0,152.15006,-32.923726)" />
+ <linearGradient
+ x1="60.126968"
+ y1="81.913818"
+ x2="60.126968"
+ y2="47.542713"
+ id="linearGradient4389"
+ xlink:href="#linearGradient44681"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient2288-5">
+ <stop
+ id="stop2290-0"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop2292-6"
+ style="stop-color:#898989;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2300-4">
+ <stop
+ id="stop2302-6"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop2304-2"
+ style="stop-color:#414141;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4013-5">
+ <stop
+ id="stop4015-8"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop4017-6"
+ style="stop-color:#414141;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2318-2">
+ <stop
+ id="stop2320-8"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop2326-4"
+ style="stop-color:#373737;stop-opacity:1"
+ offset="0.5" />
+ <stop
+ id="stop2322-7"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2392-2">
+ <stop
+ id="stop2394-4"
+ style="stop-color:#000000;stop-opacity:0.43298969"
+ offset="0" />
+ <stop
+ id="stop2398-0"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2338-6">
+ <stop
+ id="stop2340-2"
+ style="stop-color:#545454;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop2344-9"
+ style="stop-color:#545454;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2380-9">
+ <stop
+ id="stop2382-0"
+ style="stop-color:#838383;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop2384-8"
+ style="stop-color:#767676;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3836-1">
+ <stop
+ id="stop3838-3"
+ style="stop-color:#c90000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3844-1"
+ style="stop-color:#ff7474;stop-opacity:1"
+ offset="0.5" />
+ <stop
+ id="stop3846-1"
+ style="stop-color:#c90000;stop-opacity:1"
+ offset="0.75" />
+ <stop
+ id="stop3840-0"
+ style="stop-color:#fa5555;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3895-3">
+ <stop
+ id="stop3897-4"
+ style="stop-color:#930000;stop-opacity:0.50515461"
+ offset="0" />
+ <stop
+ id="stop3899-0"
+ style="stop-color:#930000;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3924-3">
+ <stop
+ id="stop3926-9"
+ style="stop-color:#ff6e6e;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3928-1"
+ style="stop-color:#ff7171;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3854-9">
+ <stop
+ id="stop3856-6"
+ style="stop-color:#a00000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3860-9"
+ style="stop-color:#c90000;stop-opacity:0"
+ offset="0.75" />
+ <stop
+ id="stop3862-3"
+ style="stop-color:#a00000;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="137.93805"
+ y1="118.24712"
+ x2="183.56607"
+ y2="110.30299"
+ id="linearGradient5108"
+ xlink:href="#linearGradient3854-9"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.17353113,0.0833269,0.22354827,0.46554701,115.25407,-34.956172)" />
+ <linearGradient
+ x1="190.18034"
+ y1="96.076317"
+ x2="156.40744"
+ y2="143.56932"
+ id="linearGradient5111"
+ xlink:href="#linearGradient3924-3"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.14979776,0.07193037,0.25896642,0.53930685,115.19546,-34.989862)" />
+ <linearGradient
+ x1="190.18034"
+ y1="96.076317"
+ x2="156.40744"
+ y2="143.56932"
+ id="linearGradient5114"
+ xlink:href="#linearGradient3895-3"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.14979776,0.07193037,0.25896642,0.53930685,115.52106,-35.084377)" />
+ <linearGradient
+ x1="144.45633"
+ y1="98.692307"
+ x2="155.86334"
+ y2="161.02338"
+ id="linearGradient5117"
+ xlink:href="#linearGradient3836-1"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.17353113,0.0833269,0.22354827,0.46554701,115.25407,-34.956172)" />
+ <linearGradient
+ x1="219.53198"
+ y1="120.31494"
+ x2="211.80861"
+ y2="127.47651"
+ id="linearGradient5121"
+ xlink:href="#linearGradient2380-9"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3015622,0.14480526,0.12863859,0.26789468,115.25407,-34.956172)" />
+ <radialGradient
+ cx="180.07829"
+ cy="176.38765"
+ r="53.050598"
+ fx="180.07837"
+ fy="177.18346"
+ id="radialGradient5124"
+ xlink:href="#linearGradient2338-6"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3015622,0.14480526,0.12863859,0.26789468,115.25407,-34.956172)" />
+ <linearGradient
+ x1="136.33336"
+ y1="113.51798"
+ x2="173.3575"
+ y2="164.5226"
+ id="linearGradient5127"
+ xlink:href="#linearGradient2392-2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2973758,0.14279496,0.13044969,0.27166614,115.25407,-34.956172)" />
+ <linearGradient
+ x1="263.96207"
+ y1="41.317993"
+ x2="24.068567"
+ y2="220.45784"
+ id="linearGradient5130"
+ xlink:href="#linearGradient2318-2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2973758,0.14279496,0.13044969,0.27166614,115.25407,-34.956172)" />
+ <linearGradient
+ x1="366.57416"
+ y1="39.730881"
+ x2="168.78265"
+ y2="53.4328"
+ id="linearGradient5133"
+ xlink:href="#linearGradient2300-4"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.19109066,0.09175867,0.20300624,0.42276738,115.25407,-34.956172)" />
+ <linearGradient
+ x1="81.846077"
+ y1="136.15834"
+ x2="168.78268"
+ y2="53.432808"
+ id="linearGradient5136"
+ xlink:href="#linearGradient2288-5"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.19109066,0.09175867,0.20300624,0.42276738,115.25407,-34.956172)" />
+ <radialGradient
+ cx="53.60223"
+ cy="59.728882"
+ r="17.834057"
+ fx="53.60223"
+ fy="59.728882"
+ id="radialGradient5139"
+ xlink:href="#linearGradient44627"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.4772178,-2.4522929,0,220.99205,-95.843466)" />
+ <linearGradient
+ x1="60.126968"
+ y1="81.913818"
+ x2="60.126968"
+ y2="47.542713"
+ id="linearGradient5141"
+ xlink:href="#linearGradient44681"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4960409,0,0,1.4960409,-6.6306562,-46.588225)" />
+ <linearGradient
+ x1="170.29684"
+ y1="219.20184"
+ x2="75.611801"
+ y2="140.29272"
+ id="linearGradient5144"
+ xlink:href="#linearGradient2300-4"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.32740907,0.15721672,0.11848357,0.24674603,115.25407,-34.956172)" />
+ <linearGradient
+ x1="-246.57739"
+ y1="958.07971"
+ x2="-248.7769"
+ y2="964.61743"
+ id="linearGradient5157"
+ xlink:href="#linearGradient44615"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,-155.83313,-881.68159)" />
+ <radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient5160"
+ xlink:href="#linearGradient44605"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.856113,-0.0637264,0.1161478,1.5603521,-422.20596,-1003.4503)" />
+ <linearGradient
+ x1="-35.566662"
+ y1="76.562927"
+ x2="-35.566662"
+ y2="84.910484"
+ id="linearGradient5163"
+ xlink:href="#linearGradient44693"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.1784451,0,0,0.9316118,126.37167,5.1827454)" />
+ <linearGradient
+ x1="-246.57739"
+ y1="958.07971"
+ x2="-248.7769"
+ y2="964.61743"
+ id="linearGradient5166"
+ xlink:href="#linearGradient44615"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(321.10111,-881.68159)" />
+ <linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient5169"
+ xlink:href="#linearGradient44090"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,574.52515,-635.92247)" />
+ <linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient5172"
+ xlink:href="#linearGradient44090"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-408.92103,-635.92247)" />
+ <radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient5175"
+ xlink:href="#linearGradient44080"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1396.4291,-948.41724)" />
+ <linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient5178"
+ xlink:href="#linearGradient44699"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(38.627584,1.0111154)" />
+ <radialGradient
+ cx="53.60223"
+ cy="59.728882"
+ r="17.834057"
+ fx="53.60223"
+ fy="59.728882"
+ id="radialGradient5183"
+ xlink:href="#linearGradient3327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.4772178,-2.4522929,0,178.53275,-113.72924)" />
+ <linearGradient
+ x1="41.945538"
+ y1="46.665127"
+ x2="41.945538"
+ y2="82.333244"
+ id="linearGradient5185"
+ xlink:href="#linearGradient3319"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4960409,0,0,1.4960409,-49.089956,-64.474005)" />
+ <radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient5188"
+ xlink:href="#linearGradient3261"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-698.89519,-973.96023)" />
+ <linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient5194"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,532.06585,-653.80825)" />
+ <linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient5197"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-451.38033,-653.80825)" />
+ <radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient5200"
+ xlink:href="#linearGradient3205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1353.9698,-966.30302)" />
+ <linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient5203"
+ xlink:href="#linearGradient3197"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-3.8317162,-16.874665)" />
+ <linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient5207"
+ xlink:href="#linearGradient3339-4"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient5209"
+ xlink:href="#linearGradient3339-4-5"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <g
+ id="g5230">
+ <path
+ d="m 41.095244,6.5756554 c -14.71669,0 -26.69498,11.9782896 -26.69498,26.6949796 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.69497,-11.97829 26.69497,-26.69498 0,-14.71669 -11.97829,-26.6949796 -26.69497,-26.6949796 z"
+ id="path3281"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297)" />
+ <path
+ d="m 41.012034,43.844085 c -21.63445,0 -39.1875002,17.34747 -39.1875002,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.9062502,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z"
+ id="path3283"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293)" />
+ <path
+ d="m 40.262034,42.594085 c -21.63445,0 -39.1875002,17.34747 -39.1875002,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.9062502,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z"
+ id="path2214"
+ style="fill:url(#linearGradient5203);fill-opacity:1;stroke:none" />
+ <path
+ d="m 40.262034,44.754795 c -20.11022,0 -36.4266002,15.9074 -36.4266002,35.53322 l 0,5.61655 c 0,5.55039 5.83324,17.193505 26.8697002,17.193505 l 19.08475,0 c 21.03599,0 26.89875,-11.076875 26.89875,-17.193505 l 0,-5.61655 c 0,-19.62582 -16.31638,-35.53322 -36.4266,-35.53322 z"
+ id="path3193"
+ style="fill:url(#radialGradient5200);fill-opacity:1;stroke:none" />
+ <path
+ d="m 57.748464,52.065975 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.65267"
+ id="path3217"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient5197);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 22.937054,52.065975 c -8.46364,9.0621 -14.9152802,24.09751 -16.8055102,38.65267"
+ id="path3227"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient5194);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 33.570244,56.267355 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z"
+ id="path3249"
+ style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:#52aa5d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 40.342762,68.887007 34.019443,57.9347 l 12.646637,-10e-7 -6.323318,10.952308 z"
+ id="path3245"
+ style="fill:#ff2600;fill-opacity:1;stroke:#800000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <path
+ d="m 46.704854,56.267355 c 2.78286,1.49402 6.04258,3.41066 4.80157,8.16267 4.9405,-2.10693 8.86936,-8.77007 5.28173,-14.28468 l -10.0833,6.12201 z"
+ id="path3247"
+ style="fill:#a0ff74;fill-opacity:1;fill-rule:evenodd;stroke:#5eaa5e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="m 23.708474,50.847995 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z"
+ id="path3251"
+ style="fill:url(#radialGradient5188);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ d="m 83.554544,24.461435 c -14.71669,0 -26.69498,11.97829 -26.69498,26.69498 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.694966,-11.97829 26.694966,-26.69498 0,-14.71669 -11.978286,-26.69498 -26.694966,-26.69498 z"
+ id="path44010"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297)" />
+ <path
+ d="m 66.023242,32.019412 a 25.68048,25.68048 0 1 1 -51.360959,0 25.68048,25.68048 0 1 1 51.360959,0 z"
+ id="path2309"
+ style="fill:url(#radialGradient5183);fill-opacity:1;stroke:url(#linearGradient5185);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <path
+ d="m 83.471334,61.729865 c -21.63445,0 -39.1875,17.34747 -39.1875,38.750005 l 0,6.125 c 0,6.05287 6.27536,18.75004 28.90625,18.75004 l 20.53125,0 c 22.630376,0 28.937496,-12.07968 28.937496,-18.75004 l 0,-6.125 c 0,-21.402545 -17.55305,-38.750005 -39.187496,-38.750005 z"
+ id="path44012"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293)" />
+ <path
+ d="m 82.721334,60.479865 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125005 c 0,6.05287 6.27536,18.75004 28.90625,18.75004 l 20.53125,0 c 22.630376,0 28.937496,-12.07968 28.937496,-18.75004 l 0,-6.125005 c 0,-21.40254 -17.55305,-38.75 -39.187496,-38.75 z"
+ id="path44014"
+ style="fill:url(#linearGradient5178);fill-opacity:1;stroke:none" />
+ <path
+ d="m 82.721334,62.640575 c -20.11022,0 -36.4266,15.9074 -36.4266,35.53322 l 0,5.616555 c 0,5.55039 5.83324,17.19346 26.8697,17.19346 l 19.08475,0 c 21.035986,0 26.898746,-11.07683 26.898746,-17.19346 l 0,-5.616555 c 0,-19.62582 -16.31638,-35.53322 -36.426596,-35.53322 z"
+ id="path44016"
+ style="fill:url(#radialGradient5175);fill-opacity:1;stroke:none" />
+ <path
+ d="m 100.20776,69.951755 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.652675"
+ id="path44018"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient5172);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 65.396354,69.951755 c -8.46364,9.0621 -14.91528,24.09751 -16.80551,38.652675"
+ id="path44020"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient5169);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 76.029544,74.153135 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z"
+ id="path44022"
+ style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5166);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="m 82.802063,84.286357 -6.375115,-8.729195 12.750228,0 -6.375113,8.729195 z"
+ id="path44024"
+ style="fill:url(#linearGradient5163);fill-opacity:1;stroke:none" />
+ <path
+ d="m 66.167774,68.733775 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z"
+ id="path44028"
+ style="fill:url(#radialGradient5160);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ d="m 89.238444,74.153135 c 2.3027,1.97418 4.96223,3.5307 3.72122,8.28271 5.66073,-1.14662 9.949706,-8.89011 6.36208,-14.40472 l -10.0833,6.12201 z"
+ id="path44621"
+ style="fill:#9dcfff;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5157);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <g
+ transform="matrix(1,0,0,0.87225898,-2.8684654,-5.2100742)"
+ id="g3842-8">
+ <path
+ d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z"
+ id="path3337-3"
+ style="fill:url(#linearGradient5209);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z"
+ transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)"
+ id="path3360-1"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1-3)" />
+ <path
+ d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z"
+ id="path3375-8"
+ style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ </g>
+ <path
+ d="M 94.866576,3.8320402 125.6365,30.998333 84.545268,42.990242 53.315632,16.353847 94.866576,3.8320402 z"
+ id="path2368"
+ style="fill:url(#linearGradient5144);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ d="m 108.48254,49.905192 a 25.680481,25.680481 0 1 1 -51.360957,0 25.680481,25.680481 0 1 1 51.360957,0 z"
+ id="path44030"
+ style="fill:url(#radialGradient5139);fill-opacity:1;stroke:url(#linearGradient5141);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <path
+ d="M 95.339339,2.2381767 126.15042,28.890606 125.62204,31.068045 94.816591,4.063144 95.339339,2.2381767 z"
+ id="path1526"
+ style="fill:url(#linearGradient5136);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ d="M 95.339339,2.2381767 53.897375,14.26818 53.368996,16.44562 94.816591,4.063144 95.339339,2.2381767 z"
+ id="path2296"
+ style="fill:url(#linearGradient5133);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z"
+ id="path2308"
+ style="fill:url(#linearGradient5130);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z"
+ id="path2390"
+ style="fill:url(#linearGradient5127);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z"
+ id="path2334"
+ style="fill:url(#radialGradient5124);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ d="m 107.19478,29.038759 c 0,0 -0.0232,-2.96189 -2.87177,-5.616365 -2.84859,-2.654477 -14.259844,-12.214967 -33.764071,-5.122837 -1.779252,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660762 -4.034895,9.807253 -4.034895,9.807253 0,0 14.650436,1.009743 20.024613,13.294259 12.141744,-9.677712 23.688825,-4.204767 23.688825,-4.204767 l -0.74633,-10.659294 z"
+ id="path2378"
+ style="fill:url(#linearGradient5121);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ d="m 64.162631,30.18291 c 0.149332,0.01059 14.629755,1.063358 19.976289,13.284672 11.922076,-9.502622 23.13746,-4.443379 23.5442,-4.255555 l 0.0324,0.45444 c 0,0 -11.547076,-5.472945 -23.688824,4.204771 C 78.652529,31.586719 64.002093,30.576979 64.002093,30.576979 c 0,0 0.15161,-0.371808 0.160545,-0.394069 z"
+ id="path2346"
+ style="fill:#4a4a4a;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ d="m 113.60446,18.082424 -1.90168,-1.445041 c 3.80497,-1.738734 7.43718,0.715259 6.56708,4.719089 l -1.22689,5.969541 c 0.0432,0.587925 0.46457,1.781249 0.0473,2.502842 -0.10735,1.184875 -1.3604,1.258502 -1.25176,2.164778 0.0432,0.587928 1.47788,1.196989 1.72301,2.387496 1.28414,1.824459 3.37872,5.88301 5.33931,7.295208 1.50561,0.927498 1.91686,1.943279 3.66098,1.18229 0,0 0.6432,-0.265733 0.69931,0.363737 -4.78339,3.695975 -10.00982,-9.009253 -9.00872,-5.467637 6.68202,14.27976 8.21084,11.272157 8.55487,11.806497 0.34402,0.534341 -0.051,0.986356 -0.051,0.986356 l -0.52871,-0.0085 0.31272,0.287043 -0.61385,0.906853 -1.43837,-0.446058 1.1172,0.687721 -0.50866,0.94379 -0.9153,-0.08514 0.59413,0.3268 -0.11363,0.491771 -0.88399,0.162157 0.27578,0.392223 -0.39504,0.452019 -0.6965,-0.539975 0.48614,0.466097 -0.75596,0.975096 -1.02048,-0.122078 0.23885,0.497407 -1.04019,1.111575 -1.12285,-0.335247 c 0,0 -6.11605,-12.190603 -6.8614,-16.29223 -0.74535,-4.101625 0.96815,-7.63512 0.96815,-7.63512 0,0 1.05742,0.01691 0.30676,-1.546372 -1.12002,-0.511482 -0.42667,-1.981163 -0.26766,-3.106818 0.15902,-1.125658 1.60584,-1.208306 1.60584,-1.208306 -0.003,0.176234 0.87053,-5.232949 1.07604,-6.640612 0.20551,-1.407664 -1.17557,-3.094485 -2.97083,-2.199306 z"
+ id="path2312"
+ style="fill:url(#linearGradient5117);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ d="m 115.91213,31.697338 c -0.0283,0.09625 -0.0898,0.176977 -0.0753,0.298474 0.004,0.05087 0.0627,0.104062 0.0857,0.155615 -0.22808,0.653732 -0.85238,4.783698 1.5573,9.275224 2.58485,5.743692 6.17379,11.446673 6.67497,12.239195 l -0.1105,0.02029 0.0473,0.07568 -0.0838,0.0075 c -1.74796,-2.671528 -5.72681,-9.566492 -7.26492,-13.103586 -1.77943,-4.092008 -1.17869,-7.872147 -1.17869,-7.872147 0,0 0.0503,-0.585045 0.0905,-0.972506 l 0.25759,-0.123687 z m -0.53294,0.255905 c -0.0271,0.148082 -0.031,0.106964 -0.0618,0.281061 -0.77301,5.472219 0.0637,7.784838 0.11098,7.947636 1.94994,4.370678 4.95692,10.04966 7.46633,15.116404 l -0.0945,0.121887 -0.0483,-0.0096 c -0.5523,-1.068673 -6.26702,-12.131795 -7.3696,-14.550761 -1.1561,-2.536393 -0.37181,-8.172154 -0.37181,-8.172154 0,0 0.0816,-0.42384 0.12,-0.615067 l 0.2487,-0.119421 z m -0.39081,0.187665 c -0.0306,0.130484 -0.0222,0.09744 -0.0568,0.245885 -0.98219,4.521543 -1.12277,6.100908 -0.27012,8.906683 l 6.93973,14.975782 -0.16129,0.164884 c -0.37775,-0.7712 -5.57624,-11.39103 -6.96106,-15.020189 -1.43567,-3.762422 0.19657,-8.991591 0.19657,-8.991591 l 0.0199,-0.140706 0.29311,-0.140748 z m 0.99844,0.121722 c 0.0529,0.08014 0.0814,0.164318 0.16349,0.249406 -0.0109,0.10155 -0.41901,4.037563 1.62811,7.601687 3.30572,6.554234 5.62206,9.753525 6.88943,11.229006 l -0.17979,-0.05576 0.29245,0.17655 c 0.31865,0.362827 0.53553,0.579229 0.70221,0.733969 l -0.10906,0.205391 c -3.0155,-2.788048 -7.67376,-11.678343 -8.65681,-13.976383 -0.93689,-2.190161 -0.78502,-5.120942 -0.73003,-6.163868 z m 0.17663,0.254022 c 0.0928,0.0955 0.20817,0.19957 0.32125,0.30481 -0.0584,0.327528 -0.008,2.619958 0.65763,4.351427 3.59805,8.221928 7.67344,12.549433 9.17238,13.980214 l -0.0949,0.143916 c -5.65706,-5.243362 -8.61552,-12.638435 -9.23491,-13.928329 -0.62085,-1.292946 -0.81735,-4.779678 -0.8215,-4.852038 z m 0.42111,0.398955 c 0.0105,0.0099 0.0153,0.02121 0.026,0.03126 0.54782,2.496948 1.35363,3.685882 1.84436,4.273434 0.003,0.0777 0.0112,0.16213 0.0562,0.344646 -0.22166,-0.32497 -0.32388,-0.389714 -0.33083,-0.256486 -1.15972,-2.095324 -1.45557,-3.836954 -1.59566,-4.392858 z"
+ id="path3870"
+ style="fill:url(#linearGradient5114);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ d="m 115.85352,31.663647 c -0.0283,0.09625 -0.0898,0.176979 -0.0753,0.298476 0.0136,0.184351 0.17979,0.373322 0.38738,0.579103 0.0136,0.06266 0.023,0.09735 0.037,0.168058 0.54619,2.757078 1.41267,3.989248 1.9272,4.605283 0.003,0.09157 -0.0166,0.121374 0.064,0.406472 0.19472,0.41613 0.33888,0.683193 0.52495,1.070479 -0.13062,-0.153536 -0.32065,-0.428383 -0.67134,-1.011121 -1.52995,-2.542366 -1.77339,-5.051088 -1.89601,-5.177698 -0.0955,-0.263292 -0.0761,2.732998 0.66584,4.664456 3.66253,8.369271 7.8511,12.742461 9.28077,14.092121 l -0.0949,0.143913 c -5.73254,-5.249092 -8.71969,-12.741574 -9.34329,-14.040234 -0.62731,-1.30638 -0.82968,-4.891829 -0.82968,-4.891832 0,0 -0.45066,4.026286 1.62315,7.636865 4.45297,8.828902 7.13324,11.594718 7.83436,12.218056 l -0.11332,0.196508 C 122.164,49.96029 117.3874,40.848354 116.39171,38.520764 c -1.00935,-2.35954 -0.76537,-5.787484 -0.7283,-6.547252 -0.12263,-0.126609 -1.15961,4.606322 1.49125,9.547401 2.58485,5.743694 6.1738,11.446675 6.67498,12.239197 l -0.1105,0.02029 0.27578,0.392223 -0.0764,0.09133 c -1.6443,-2.454711 -5.91251,-9.85128 -7.50091,-13.503989 -1.77942,-4.092007 -1.17868,-7.872149 -1.17869,-7.872149 0,0 0.0503,-0.585043 0.0905,-0.972507 l 0.52406,-0.251641 z m -0.7994,0.383859 c -0.0271,0.148081 -0.031,0.106966 -0.0618,0.281063 -0.77301,5.472217 0.0637,7.784832 0.11099,7.947633 1.96639,4.407561 5.0083,10.150784 7.5303,15.249641 l -0.20679,-0.02093 c -0.5523,-1.068673 -6.26703,-12.131795 -7.3696,-14.550762 -1.15611,-2.53639 -0.37182,-8.172152 -0.37182,-8.172152 0,0 0.0816,-0.423842 0.12001,-0.615066 l 0.2487,-0.119424 z m -0.39082,0.187664 c -0.0306,0.130488 -0.0222,0.09744 -0.0568,0.245888 -0.98219,4.521544 -1.12277,6.100905 -0.27013,8.906678 l 6.98665,15.073486 -0.15702,0.17377 c -0.29822,-0.608735 -5.61583,-11.467249 -7.01224,-15.126773 -1.43567,-3.762428 0.19656,-8.991591 0.19656,-8.991591 l 0.0199,-0.14071 0.29312,-0.140748 z"
+ id="path3920"
+ style="fill:url(#linearGradient5111);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ d="m 113.60446,18.082424 -1.27483,-0.959065 c 3.80497,-1.738734 5.70753,0.846273 5.94023,4.233113 l -1.22689,5.969541 c 0.0432,0.587925 0.46457,1.781249 0.0473,2.502842 -0.10735,1.184875 -1.3604,1.258502 -1.25176,2.164778 0.0432,0.587928 1.47788,1.196989 1.72301,2.387496 1.28414,1.824459 3.37872,5.88301 5.33931,7.295208 1.50561,0.927498 1.91686,1.943279 3.66098,1.18229 0,0 0.6432,-0.265733 0.69931,0.363737 -4.78339,3.695975 -10.00982,-9.009253 -9.00872,-5.467637 6.68202,14.27976 8.21084,11.272157 8.55487,11.806497 0.34402,0.534341 -0.051,0.986356 -0.051,0.986356 l -0.52871,-0.0085 0.31272,0.287043 -0.61385,0.906853 -1.43837,-0.446058 1.1172,0.687721 -0.50866,0.94379 -0.9153,-0.08514 0.59413,0.3268 -0.11363,0.491771 -0.88399,0.162157 0.27578,0.392223 -0.39504,0.452019 -0.6965,-0.539975 0.48614,0.466097 -0.75596,0.975096 -1.02048,-0.122078 0.23885,0.497407 -1.04019,1.111575 -1.12285,-0.335247 c 0,0 -6.11605,-12.190603 -6.8614,-16.29223 -0.74535,-4.101625 0.96815,-7.63512 0.96815,-7.63512 0,0 1.05742,0.01691 0.30676,-1.546372 -1.12002,-0.511482 0.0153,-2.06224 0.17434,-3.187895 0.15901,-1.125658 1.16384,-1.127229 1.16384,-1.127229 0.77459,0.06526 1.26996,-4.856376 1.47547,-6.264039 0.20551,-1.407664 -1.575,-3.471058 -3.37026,-2.575879 z"
+ id="use3848"
+ style="fill:url(#linearGradient5108);fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ d="m 114.28311,29.943753 c 0.49479,-0.31028 1.3331,-0.405599 2.65708,0.298067 -0.28917,0.677244 -0.92757,0.954658 -1.04227,1.516989 -0.52987,0.05596 -1.07253,0.09282 -1.54418,0.107535 -0.0359,-0.185534 -0.0611,-0.35482 -0.19267,-0.628878 -0.26879,-0.122748 -0.42825,-0.300007 -0.52061,-0.515126 0.0395,-0.111579 0.19072,-0.495192 0.64265,-0.778587 z"
+ id="path3946"
+ style="fill:#7f0000;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ d="m 114.69752,30.761267 c 0.54914,-0.263686 1.20881,-0.03202 1.4725,0.517115 0.20064,0.41784 0.11214,0.890735 -0.18245,1.213425 -0.3225,-0.311108 -0.80766,-0.41008 -1.2351,-0.204831 -0.1342,0.06444 -0.24525,0.145845 -0.33893,0.250191 -0.0889,-0.08724 -0.17614,-0.184704 -0.23313,-0.303405 -0.26369,-0.549131 -0.032,-1.208808 0.51711,-1.472495 z"
+ id="path3937"
+ style="fill:#f6ca12;fill-opacity:1;stroke:none" />
+ <path
+ d="m 115.34938,30.99509 c 2.45474,1.059132 -2.30147,0.635082 0,0 z"
+ id="path3942"
+ style="fill:#f6f1d7;fill-opacity:1;stroke:none" />
+ <g
+ transform="matrix(0.92615143,0,0,0.79615016,38.327829,16.316524)"
+ id="g3842">
+ <path
+ d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z"
+ id="path3337"
+ style="fill:url(#linearGradient5207);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z"
+ transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)"
+ id="path3360"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1)" />
+ <path
+ d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z"
+ id="path3375"
+ style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ </g>
+ </g>
+</svg>
diff --git a/icons/lock.svg b/icons/lock.svg
new file mode 100644
index 0000000..f38e28a
--- /dev/null
+++ b/icons/lock.svg
@@ -0,0 +1,545 @@
+<?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="128"
+ height="128"
+ id="svg3304"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.3.1 r9886"
+ sodipodi:docname="lock.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.1">
+ <defs
+ id="defs3306">
+ <linearGradient
+ id="linearGradient3877">
+ <stop
+ style="stop-color:white;stop-opacity:1;"
+ offset="0"
+ id="stop3879" />
+ <stop
+ id="stop3895"
+ offset="0.84337348"
+ style="stop-color:white;stop-opacity:1;" />
+ <stop
+ style="stop-color:white;stop-opacity:0;"
+ offset="1"
+ id="stop3881" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3866">
+ <stop
+ id="stop3868"
+ offset="0"
+ style="stop-color:white;stop-opacity:1;" />
+ <stop
+ id="stop3870"
+ offset="1"
+ style="stop-color:#d3d7cf;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3858">
+ <stop
+ style="stop-color:black;stop-opacity:1"
+ offset="0"
+ id="stop3860" />
+ <stop
+ style="stop-color:#c4a000;stop-opacity:0;"
+ offset="1"
+ id="stop3862" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3776">
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0"
+ id="stop3778" />
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop3780" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3734">
+ <stop
+ style="stop-color:white;stop-opacity:1;"
+ offset="0"
+ id="stop3736" />
+ <stop
+ style="stop-color:white;stop-opacity:0;"
+ offset="1"
+ id="stop3738" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2833">
+ <stop
+ style="stop-color:#edd400;stop-opacity:1"
+ offset="0"
+ id="stop2835" />
+ <stop
+ id="stop2841"
+ offset="0.2"
+ style="stop-color:#fce94f;stop-opacity:1;" />
+ <stop
+ style="stop-color:#fce94f;stop-opacity:1;"
+ offset="0.5"
+ id="stop2843" />
+ <stop
+ style="stop-color:#edd400;stop-opacity:1"
+ offset="1"
+ id="stop2837" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2817">
+ <stop
+ style="stop-color:white;stop-opacity:1;"
+ offset="0"
+ id="stop2819" />
+ <stop
+ id="stop3899"
+ offset="0.50602412"
+ style="stop-color:white;stop-opacity:1;" />
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="1"
+ id="stop2821" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5233">
+ <stop
+ style="stop-color:#555753;stop-opacity:1"
+ offset="0"
+ id="stop5235" />
+ <stop
+ style="stop-color:black;stop-opacity:1"
+ offset="1"
+ id="stop5237" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5225">
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0"
+ id="stop5227" />
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop5229" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5137">
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1;"
+ offset="0"
+ id="stop5139" />
+ <stop
+ style="stop-color:#e6e6e3;stop-opacity:1;"
+ offset="1"
+ id="stop5141" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6240">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6242" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6244" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient11400">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop11402" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop11404" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11400"
+ id="linearGradient11406"
+ x1="23.154902"
+ y1="34.572548"
+ x2="23.529411"
+ y2="40.219608"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.6462532,0,0,2.6423294,2.2740707e-8,1.0310995)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6240"
+ id="linearGradient6246"
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.6462532,0,0,2.6423294,2.2740707e-8,1.0310995)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5137"
+ id="linearGradient5147"
+ gradientUnits="userSpaceOnUse"
+ x1="17.247635"
+ y1="6.3760414"
+ x2="39.904388"
+ y2="38.876041"
+ gradientTransform="matrix(2.6462531,0,0,2.6423293,3.2740707e-8,1.0311005)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5137"
+ id="linearGradient5223"
+ gradientUnits="userSpaceOnUse"
+ x1="31.743324"
+ y1="37.842293"
+ x2="31.86105"
+ y2="43.82579"
+ gradientTransform="matrix(2.6462531,0,0,2.6423293,3.2740707e-8,1.0311005)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5225"
+ id="radialGradient5231"
+ cx="23.9375"
+ cy="42.6875"
+ fx="23.9375"
+ fy="42.6875"
+ r="23.75956"
+ gradientTransform="matrix(1,0,0,0.24763,0,32.1168)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5233"
+ id="radialGradient5239"
+ cx="24.006104"
+ cy="32.997028"
+ fx="24.006104"
+ fy="32.997028"
+ r="19.00016"
+ gradientTransform="matrix(3.2618616,0,0,2.0567681,-14.778366,6.7236745)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3866"
+ id="radialGradient3795"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.9501949,0,0,4.9312816,-64.40234,-40.569523)"
+ cx="27.953125"
+ cy="18.315439"
+ fx="27.953125"
+ fy="18.315439"
+ r="5.1281252" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3776"
+ id="linearGradient3801"
+ gradientUnits="userSpaceOnUse"
+ x1="42.4706"
+ y1="32.399456"
+ x2="13.479223"
+ y2="22.632544" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3734"
+ id="linearGradient3822"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.6462531,0,0,2.2852688,3.2740707e-8,8.3508755)"
+ x1="18.21875"
+ y1="20.46875"
+ x2="19.1875"
+ y2="30.4375" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2833"
+ id="linearGradient3830"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.6462531,0,0,2.6608098,3.2740707e-8,-1.9716145)"
+ x1="17.871288"
+ y1="23.875"
+ x2="29.689016"
+ y2="23.875" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2817"
+ id="radialGradient3833"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.8185475,0,0,4.7571019,-82.742779,-26.387223)"
+ cx="19.468771"
+ cy="12.116604"
+ fx="19.468771"
+ fy="12.116604"
+ r="6.0156317" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3776"
+ id="linearGradient3846"
+ gradientUnits="userSpaceOnUse"
+ x1="42.4706"
+ y1="32.399456"
+ x2="13.479223"
+ y2="22.632544" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3776"
+ id="linearGradient3848"
+ gradientUnits="userSpaceOnUse"
+ x1="42.4706"
+ y1="32.399456"
+ x2="13.479223"
+ y2="22.632544" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3776"
+ id="linearGradient3850"
+ gradientUnits="userSpaceOnUse"
+ x1="42.4706"
+ y1="32.399456"
+ x2="13.479223"
+ y2="22.632544" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3858"
+ id="linearGradient3864"
+ x1="13.5"
+ y1="17.84375"
+ x2="36"
+ y2="19.5"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.6462532,0,0,2.6423294,2.2740707e-8,1.0310995)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3877"
+ id="radialGradient3893"
+ cx="23.582689"
+ cy="19.995197"
+ fx="23.582689"
+ fy="19.995197"
+ r="7.9999981"
+ gradientTransform="matrix(2.4179185,-0.17539675,0.07919932,1.0885605,3.8528916,36.235277)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#849193"
+ borderopacity="1.0000000"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="4"
+ inkscape:cx="14.458556"
+ inkscape:cy="137.34659"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:showpageshadow="false"
+ showborder="false"
+ inkscape:window-width="1920"
+ inkscape:window-height="1148"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:grid-points="true"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata3309">
+ <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>Video display</dc:title>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Luca Ferretti &lt;elle.uca@libero.it&gt;</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>monitor</rdf:li>
+ <rdf:li>display</rdf:li>
+ <rdf:li>video</rdf:li>
+ <rdf:li>screen</rdf:li>
+ <rdf:li>LCD</rdf:li>
+ <rdf:li>CRT</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/GPL/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:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/SourceCode" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <rect
+ style="fill:none;stroke:none"
+ id="rect4784"
+ width="127.02015"
+ height="126.83181"
+ x="0"
+ y="1.0310991" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.4;fill:url(#radialGradient5231);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path13582"
+ sodipodi:cx="23.9375"
+ sodipodi:cy="42.6875"
+ sodipodi:rx="23.75956"
+ sodipodi:ry="5.8835783"
+ d="m 47.69706,42.6875 a 23.75956,5.8835783 0 1 1 -47.51911963,0 23.75956,5.8835783 0 1 1 47.51911963,0 z"
+ transform="matrix(2.5622214,0,0,2.2824361,3.8307981,17.139617)" />
+ <path
+ style="color:#000000;fill:url(#linearGradient5223);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:2.64429069;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m 38.041157,94.921917 c 0,0 3.220161,13.038843 -10.204824,13.161243 -6.431124,0.0579 -5.113825,10.6622 -5.113825,10.6622 l 81.627552,-0.0829 c 0,0 1.10731,-10.29283 -5.351289,-10.41351 C 85.800671,108.0055 88.915147,94.756118 88.915147,94.756118 l -50.87399,0.165805 z"
+ id="path9222"
+ sodipodi:nodetypes="csccscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient5147);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:2.64429069;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ d="m 12.936542,10.222273 100.898548,0 c 5.35898,0 9.26448,3.772334 9.26448,9.58146 l 0.029,69.239175 c 0,4.470996 -1.39814,5.853364 -5.38422,5.853364 L 9.3467343,94.846239 C 6.2260838,94.770158 4.0050195,93.539183 3.9631201,89.510574 l 0.040161,-70.202925 c 0,-4.687032 4.0736617,-9.085376 8.9332609,-9.085376 z"
+ id="rect5040"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="fill:url(#radialGradient5239);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.64429069px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="rect9208"
+ width="97.912216"
+ height="60.764832"
+ x="14.570122"
+ y="20.853388" />
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="-0.875"
+ inkscape:original="M 12.9375 10.21875 C 8.0779008 10.21875 4 14.625468 4 19.3125 L 3.96875 89.5 C 4.0106494 93.528609 6.2230995 94.767669 9.34375 94.84375 L 117.75 94.90625 C 121.73608 94.90625 123.125 93.502246 123.125 89.03125 L 123.09375 19.8125 C 123.09375 14.003374 119.20273 10.21875 113.84375 10.21875 L 12.9375 10.21875 z "
+ xlink:href="#rect5040"
+ style="fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ id="path5145"
+ inkscape:href="#rect5040"
+ d="m 12.90625,11.09375 c -4.330629,0 -8.0625,4.039241 -8.0625,8.21875 L 4.8125,89.5 c 0.019294,1.855084 0.4897758,2.867548 1.21875,3.5 0.7231916,0.627435 1.8484188,0.929392 3.28125,0.96875 l 0.03125,0 108.375,0.0625 c 1.89031,0 2.92407,-0.315334 3.53125,-0.96875 0.60718,-0.653416 0.96875,-1.886359 0.96875,-4.03125 L 122.1875,19.8125 c 0,-5.418403 -3.42798,-8.71875 -8.375,-8.71875 l -100.90625,0 z" />
+ <path
+ style="opacity:0.6;fill:url(#linearGradient11406);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 37.026787,96.25858 c 0.221388,5.74059 -0.749824,7.69299 -4.322984,9.71117 l 62.492334,3.42794 c -2.511344,-3.0879 -6.164211,-7.75083 -5.167976,-13.180559 l -53.001374,0.04145 z"
+ id="path10672"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#8d8d8f;stroke-width:2.64429069px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:0.43902438"
+ d="m 26.441695,110.67737 c 17.747608,0.005 73.557332,0 73.557332,0"
+ id="path6575"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path8029"
+ d="m 25.53086,113.3405 c 17.747608,0.005 76.00002,0 76.00002,0"
+ style="fill:none;stroke:#ffffff;stroke-width:2.64429069px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="color:#000000;fill:url(#linearGradient3830);fill-opacity:1;fill-rule:nonzero;stroke:#b09000;stroke-width:2.64429021;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057;marker:none;visibility:visible;display:inline;overflow:visible"
+ id="rect1918"
+ width="39.776482"
+ height="23.780937"
+ x="43.663181"
+ y="49.914207"
+ rx="2.5797536"
+ ry="2.5759287" />
+ <g
+ id="g3770"
+ style="opacity:0.3;fill-opacity:1;stroke:url(#linearGradient3801)"
+ transform="matrix(2.6462532,0,0,2.6423294,2.2740707e-8,3.6734295)">
+ <path
+ id="path3762"
+ d="m 17,20.5 14,0"
+ style="fill:none;stroke:url(#linearGradient3846);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path3764"
+ d="m 17,22.5 14,0"
+ style="fill:none;stroke:url(#linearGradient3848);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path3766"
+ d="m 17,24.5 14,0"
+ style="fill:none;stroke:url(#linearGradient3850);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ </g>
+ <rect
+ style="opacity:0.7;color:#000000;fill:none;stroke:url(#linearGradient3822);stroke-width:2.64428949;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057;marker:none;visibility:visible;display:inline;overflow:visible"
+ id="rect2845"
+ width="34.483986"
+ height="15.85399"
+ x="46.309422"
+ y="55.19886"
+ rx="0"
+ ry="0" />
+ <rect
+ style="opacity:0.2;color:#000000;fill:url(#linearGradient3864);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ id="rect3856"
+ width="37.047543"
+ height="2.6423297"
+ x="44.986298"
+ y="51.235359"
+ rx="1.3231266"
+ ry="1.3211648" />
+ <path
+ style="color:#000000;fill:none;stroke:url(#radialGradient3833);stroke-width:5.28858137;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:1.20000057;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m 50.27881,51.235359 0,-10.69316 c 0,-5.786795 5.901145,-10.445477 13.231266,-10.445477 7.330121,0 13.231265,4.658682 13.231265,10.445477 l 0,10.69316"
+ id="rect2811"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:none;stroke:url(#radialGradient3795);stroke-width:2.64429069;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:1.20000057;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m 75.418214,51.235359 0,-10.651891 c 0,-4.872825 -5.155248,-9.165581 -11.908138,-9.165581 -6.752892,0 -11.90814,4.292756 -11.90814,9.165581 l 0,10.651891"
+ id="path3750"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:none;stroke:url(#radialGradient3893);stroke-width:2.64428973;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:1.20000057;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m 83.356963,52.582029 c 0,1.44972 -1.150568,2.616823 -2.579751,2.616823 l -34.534282,0 c -1.429183,0 -2.579753,-1.167103 -2.579753,-2.616823 l 0,-0.05099"
+ id="rect3872"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:0.65;fill:url(#linearGradient6246);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 15.939782,22.252631 0,47.582656 C 59.455947,66.256913 75.741646,43.114943 111.12188,40.697127 l 0,-18.527393 -95.182098,0.0829 z"
+ id="path4073"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/icons/log-out.svg b/icons/log-out.svg
new file mode 100644
index 0000000..e94c873
--- /dev/null
+++ b/icons/log-out.svg
@@ -0,0 +1,284 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="48"
+ height="48"
+ id="svg5157"
+ sodipodi:version="0.32"
+ inkscape:version="0.45"
+ version="1.0"
+ sodipodi:docname="system-log-out.svg"
+ sodipodi:docbase="/home/dobey/Projects/gnome-icon-theme/scalable/actions"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs5159">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient7130">
+ <stop
+ style="stop-color:#4e9a06;stop-opacity:1"
+ offset="0"
+ id="stop7132" />
+ <stop
+ style="stop-color:#73d216;stop-opacity:1"
+ offset="1"
+ id="stop7134" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7121">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop7123" />
+ <stop
+ style="stop-color:#8ae234;stop-opacity:1"
+ offset="1"
+ id="stop7125" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6998"
+ inkscape:collect="always">
+ <stop
+ id="stop7000"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop7002"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7130"
+ id="linearGradient7145"
+ gradientUnits="userSpaceOnUse"
+ x1="11.5"
+ y1="68.75"
+ x2="-13.247213"
+ y2="21.843145" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7121"
+ id="linearGradient7147"
+ gradientUnits="userSpaceOnUse"
+ x1="-33.040741"
+ y1="10.966461"
+ x2="-30.919424"
+ y2="17.448257" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6998"
+ id="radialGradient7161"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.3222749,0,20.728756)"
+ cx="19.688505"
+ cy="30.585787"
+ fx="19.688505"
+ fy="30.585787"
+ r="4.6624851" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6998"
+ id="radialGradient7163"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.3222749,0,20.728756)"
+ cx="19.688505"
+ cy="30.585787"
+ fx="19.688505"
+ fy="30.585787"
+ r="4.6624851" />
+ </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="197.95843"
+ inkscape:cy="28.49025"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer2"
+ width="48px"
+ height="48px"
+ inkscape:window-width="872"
+ inkscape:window-height="624"
+ inkscape:window-x="684"
+ inkscape:window-y="208"
+ showborder="false"
+ inkscape:showpageshadow="false"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ gridspacingx="0.5px"
+ gridspacingy="0.5px"
+ gridempspacing="2"
+ inkscape:grid-points="true" />
+ <metadata
+ id="metadata5162">
+ <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>System-log-out</dc:title>
+ <dc:date>2007-08-27</dc:date>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Lapo Calamandrei</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title>Kalle Persson</dc:title>
+ </cc:Agent>
+ </dc:contributor>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>logout</rdf:li>
+ <rdf:li>exit</rdf:li>
+ <rdf:li>man</rdf:li>
+ <rdf:li>sign</rdf:li>
+ <rdf:li>running</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/GPL/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:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/SourceCode" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="shadow"
+ inkscape:groupmode="layer"
+ id="layer1"
+ style="display:inline">
+ <g
+ id="g6227"
+ transform="matrix(0.6759778,0,0,0.8422279,-72.059226,25.879981)"
+ style="opacity:0.33000004" />
+ <g
+ id="g7008"
+ style="opacity:0.5"
+ transform="matrix(1.2209709,0,0,1.465165,4.32932,-3.7089664)">
+ <path
+ transform="matrix(1.356682,0,0,1.1785115,-7.0105312,-5.8165354)"
+ d="M 24.35099 30.585787 A 4.6624851 1.5026019 0 1 1 15.02602,30.585787 A 4.6624851 1.5026019 0 1 1 24.35099 30.585787 z"
+ sodipodi:ry="1.5026019"
+ sodipodi:rx="4.6624851"
+ sodipodi:cy="30.585787"
+ sodipodi:cx="19.688505"
+ id="path6984"
+ style="opacity:0.5;fill:url(#radialGradient7161);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(3.7061179,0,0,1.3310245,-58.247641,-11.710432)"
+ d="M 24.35099 30.585787 A 4.6624851 1.5026019 0 1 1 15.02602,30.585787 A 4.6624851 1.5026019 0 1 1 24.35099 30.585787 z"
+ sodipodi:ry="1.5026019"
+ sodipodi:rx="4.6624851"
+ sodipodi:cy="30.585787"
+ sodipodi:cx="19.688505"
+ id="path6986"
+ style="opacity:0.25;fill:url(#radialGradient7163);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="omino">
+ <g
+ id="g7138"
+ transform="translate(40,0)">
+ <g
+ id="g7094">
+ <path
+ id="path5955"
+ d="M -7.5,5.5 C -9.708,5.5 -11.5,7.292 -11.5,9.5 C -11.5,11.708 -9.7080001,13.5 -7.5,13.5 C -5.292,13.5 -3.5000001,11.708 -3.5,9.5 C -3.5,7.292 -5.2920001,5.5 -7.5,5.5 z M -20.6875,11.5 C -21.228728,11.552698 -21.725172,11.823486 -22.0625,12.25 L -26.0625,17.25 C -26.752856,18.112945 -26.612945,19.372144 -25.75,20.0625 C -24.887055,20.752856 -23.627856,20.612945 -22.9375,19.75 L -19.53125,15.5 L -15.75,15.5 L -22.1875,23.3125 C -22.420945,23.645583 -22.50685,24.06221 -22.5,24.5 L -22.5,31.5 L -30.5,31.5 L -30.5,35.5 L -20.5,35.5 C -19.395476,35.49989 -18.50011,34.604524 -18.5,33.5 L -18.5,27.3125 L -13.5,32.3125 L -13.5,40.5 L -9.5,40.5 L -9.5,31.5 L -9.5,30.65625 L -10.09375,30.09375 L -14.84375,25.34375 L -11.5,21.28125 L -11.5,22.5 C -11.49989,23.604524 -10.604524,24.49989 -9.5,24.5 L -2.5,24.5 C -1.778728,24.510201 -1.113613,24.122995 -0.75,23.5 C -0.386387,22.877006 -0.386387,22.122995 -0.75,21.5 C -1.113613,20.877004 -1.778728,20.489799 -2.5,20.5 L -7.5,20.5 L -7.5,16 C -10.390638,16 -12.843604,14.110886 -13.6875,11.5 L -20.5,11.5 C -20.562466,11.497069 -20.625034,11.497069 -20.6875,11.5 z "
+ style="opacity:1;fill:url(#linearGradient7145);fill-opacity:1;fill-rule:evenodd;stroke:#4e9a06;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ </g>
+ <path
+ d="M -20.625,12.5 C -20.883516,12.532601 -21.119099,12.669978 -21.28125,12.875 L -25.28125,17.875 C -25.632167,18.313646 -25.563646,18.930333 -25.125,19.28125 C -24.686354,19.632167 -24.069667,19.563646 -23.71875,19.125 L -20.3125,14.875 C -20.122073,14.638438 -19.834933,14.500611 -19.53125,14.5 L -15.75,14.5 C -15.36741,14.504084 -15.020291,14.724946 -14.854508,15.069775 C -14.688724,15.414605 -14.733008,15.823641 -14.96875,16.125 L -21.375,23.875 C -21.378721,23.880309 -21.37135,23.900494 -21.375,23.90625 L -21.40625,23.9375 C -21.46879,24.048638 -21.50412,24.205427 -21.5,24.46875 C -21.499838,24.479166 -21.499838,24.489584 -21.5,24.5 L -21.5,31.5 C -21.503016,32.051031 -21.948969,32.496984 -22.5,32.5 L -29.5,32.5 L -29.5,34.5 L -20.5,34.5 C -19.938773,34.499944 -19.500056,34.061227 -19.5,33.5 L -19.5,27.3125 C -19.504078,26.903415 -19.259899,26.532643 -18.882467,26.374807 C -18.505035,26.216972 -18.069603,26.303544 -17.78125,26.59375 L -12.78125,31.59375 C -12.595622,31.786381 -12.494406,32.045043 -12.5,32.3125 L -12.5,39.5 L -10.5,39.5 L -10.5,31.5 L -10.5,31.09375 L -10.78125,30.8125 C -10.791666,30.812662 -10.802084,30.812662 -10.8125,30.8125 L -15.5625,26.0625 C -15.923992,25.696513 -15.95096,25.116711 -15.625,24.71875 L -12.28125,20.65625 C -12.013038,20.330928 -11.570348,20.207488 -11.172497,20.347084 C -10.774646,20.486681 -10.506139,20.859664 -10.5,21.28125 L -10.5,22.5 C -10.499944,23.061227 -10.061227,23.499944 -9.5,23.5 L -2.5,23.5 C -2.1471898,23.50499 -1.8109749,23.318639 -1.625,23 C -1.439414,22.682027 -1.4394134,22.317974 -1.625,22 C -1.8109749,21.68136 -2.1471889,21.49501 -2.5,21.5 L -7.5,21.5 C -8.0510308,21.496984 -8.4969843,21.051031 -8.5,20.5 L -8.5,16.84375 C -11.109944,16.483168 -13.278833,14.83457 -14.3125,12.5 L -20.5,12.5 C -20.520828,12.500648 -20.541672,12.500648 -20.5625,12.5 C -20.578034,12.499271 -20.578204,12.5 -20.59375,12.5 C -20.609296,12.5 -20.609466,12.499271 -20.625,12.5 z "
+ id="path7104"
+ style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#8ae234;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ inkscape:original="M -20.6875 11.5 C -21.228728 11.552698 -21.725172 11.823486 -22.0625 12.25 L -26.0625 17.25 C -26.752856 18.112945 -26.612945 19.372144 -25.75 20.0625 C -24.887055 20.752856 -23.627856 20.612945 -22.9375 19.75 L -19.53125 15.5 L -15.75 15.5 L -22.1875 23.3125 C -22.420945 23.645583 -22.50685 24.06221 -22.5 24.5 L -22.5 31.5 L -30.5 31.5 L -30.5 35.5 L -20.5 35.5 C -19.395476 35.49989 -18.50011 34.604524 -18.5 33.5 L -18.5 27.3125 L -13.5 32.3125 L -13.5 40.5 L -9.5 40.5 L -9.5 31.5 L -9.5 30.65625 L -10.09375 30.09375 L -14.84375 25.34375 L -11.5 21.28125 L -11.5 22.5 C -11.49989 23.604524 -10.604524 24.49989 -9.5 24.5 L -2.5 24.5 C -1.778728 24.510201 -1.113613 24.122995 -0.75 23.5 C -0.386387 22.877006 -0.386387 22.122995 -0.75 21.5 C -1.113613 20.877004 -1.778728 20.489799 -2.5 20.5 L -7.5 20.5 L -7.5 16 C -10.390638 16 -12.843604 14.110886 -13.6875 11.5 L -20.5 11.5 C -20.562466 11.497069 -20.625034 11.497069 -20.6875 11.5 z "
+ inkscape:radius="-1.0054175"
+ sodipodi:type="inkscape:offset" />
+ <path
+ sodipodi:nodetypes="cccccccsscccscccccccccccccsccccc"
+ id="path7106"
+ d="M -1.625,22 C -1.810975,21.68136 -2.147189,21.49501 -2.5,21.5 L -7.5,21.5 C -8.051031,21.496984 -8.496984,21.051031 -8.5,20.5 L -8.5,16.84375 C -11.109944,16.483168 -13.278833,14.83457 -14.3125,12.5 L -20.5,12.5 C -20.520828,12.500648 -20.541672,12.500648 -20.5625,12.5 C -20.578034,12.499271 -20.578204,12.5 -20.59375,12.5 C -20.609296,12.5 -20.609466,12.499271 -20.625,12.5 C -20.883516,12.532601 -21.119099,12.669978 -21.28125,12.875 L -25.28125,17.875 C -25.632167,18.313646 -25.563646,18.930333 -25.125,19.28125 M -10.5,31.5 L -10.5,31.09375 L -10.78125,30.8125 C -10.791666,30.812662 -10.802084,30.812662 -10.8125,30.8125 L -15.5625,26.0625 C -15.923992,25.696513 -15.95096,25.116711 -15.625,24.71875 M -12.5,32.3125 L -12.5,39.5 M -14.854508,15.069775 C -14.688724,15.414605 -14.733008,15.823641 -14.96875,16.125 L -21.375,23.875 C -21.378721,23.880309 -21.37135,23.900494 -21.375,23.90625 L -21.40625,23.9375 C -21.46879,24.048638 -21.50412,24.205427 -21.5,24.46875 C -21.499838,24.479166 -21.499838,24.489584 -21.5,24.5 L -21.5,31.5 C -21.503016,32.051031 -21.948969,32.496984 -22.5,32.5 L -29.5,32.5 L -29.5,34.5"
+ style="opacity:0.3;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;display:inline" />
+ <path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/kalle/Desktop/system-log-out.png"
+ sodipodi:type="arc"
+ style="color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient7147);stroke-width:0.6666649;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path7119"
+ sodipodi:cx="-31.5"
+ sodipodi:cy="16"
+ sodipodi:rx="2"
+ sodipodi:ry="2"
+ d="M -29.5 16 A 2 2 0 1 1 -33.5,16 A 2 2 0 1 1 -29.5 16 z"
+ transform="matrix(1.500004,0,0,1.500004,39.750134,-14.500064)" />
+ </g>
+ <g
+ id="g7055"
+ transform="translate(130,0)">
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path7045"
+ d="M -28.5,33.5 L -20.5,33.5 L -20.5,24.5"
+ style="opacity:0.4089219;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path7047"
+ d="M -24.5,18.5 L -20.5,13.5 L -11.5,13.5"
+ style="opacity:0.5;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path7049"
+ d="M -2.5,22.5 L -9.5,22.5 L -9.5,13.5"
+ style="opacity:0.5;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path7051"
+ d="M -11.5,38.5 L -11.5,31.5 L -18.5,24.5"
+ style="opacity:0.5;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path7053"
+ d="M -10,14 L -19.5,25.5"
+ style="opacity:0.5;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ </g>
+</svg>
diff --git a/icons/ok16.svg b/icons/ok16.svg
new file mode 100644
index 0000000..3d60d49
--- /dev/null
+++ b/icons/ok16.svg
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.47 r22583"
+ sodipodi:docname="darrow16.svg"
+ inkscape:export-filename="/home/jjl/ok.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="44.8"
+ inkscape:cx="9.5866317"
+ inkscape:cy="8.5407368"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1150"
+ inkscape:window-x="-4"
+ inkscape:window-y="-3"
+ inkscape:window-maximized="1"
+ guidetolerance="10000"
+ objecttolerance="10000">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4187"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Ebene 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.50000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 4,9 c 1.3333333,1.333333 2.6666667,2.666667 4,4 1.6666667,-3 3.333333,-6 5,-9"
+ id="path4344"
+ transform="translate(0,1036.3622)"
+ sodipodi:nodetypes="ccc" />
+ </g>
+</svg>
diff --git a/icons/photo.svg b/icons/photo.svg
new file mode 100644
index 0000000..6552735
--- /dev/null
+++ b/icons/photo.svg
@@ -0,0 +1,1003 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="48"
+ height="48"
+ id="svg7854"
+ sodipodi:version="0.32"
+ inkscape:version="0.45"
+ version="1.0"
+ sodipodi:docbase="/home/dobey/Projects/gnome-icon-theme/scalable/devices"
+ sodipodi:docname="camera-photo.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs7856">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8954">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop8956" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop8958" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8940">
+ <stop
+ id="stop8942"
+ offset="0"
+ style="stop-color:#72776c;stop-opacity:1;" />
+ <stop
+ style="stop-color:#e0e0e0;stop-opacity:1;"
+ offset="0.5"
+ id="stop8944" />
+ <stop
+ id="stop8946"
+ offset="0.75"
+ style="stop-color:#8f9587;stop-opacity:1;" />
+ <stop
+ id="stop8948"
+ offset="1"
+ style="stop-color:#c1c1c1;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8928">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8930" />
+ <stop
+ style="stop-color:#cccccc;stop-opacity:1;"
+ offset="1"
+ id="stop8932" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8909">
+ <stop
+ style="stop-color:#edd400;stop-opacity:1;"
+ offset="0"
+ id="stop8911" />
+ <stop
+ style="stop-color:#edd400;stop-opacity:0;"
+ offset="1"
+ id="stop8913" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8895">
+ <stop
+ id="stop8899"
+ offset="0"
+ style="stop-color:#204a87;stop-opacity:0;" />
+ <stop
+ style="stop-color:#204a87;stop-opacity:0;"
+ offset="0.5"
+ id="stop8905" />
+ <stop
+ id="stop8897"
+ offset="1"
+ style="stop-color:#204a87;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8735">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8737" />
+ <stop
+ style="stop-color:#8b8b8b;stop-opacity:1;"
+ offset="1"
+ id="stop8739" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8700">
+ <stop
+ id="stop8702"
+ offset="0"
+ style="stop-color:#babdb6;stop-opacity:1;" />
+ <stop
+ style="stop-color:#e0e0e0;stop-opacity:1;"
+ offset="0.5"
+ id="stop8704" />
+ <stop
+ id="stop8706"
+ offset="0.75"
+ style="stop-color:#c0c3bb;stop-opacity:1;" />
+ <stop
+ id="stop8708"
+ offset="1"
+ style="stop-color:#dbdbdb;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8680">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop8682" />
+ <stop
+ id="stop8688"
+ offset="0.5"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ style="stop-color:#afafaf;stop-opacity:1;"
+ offset="1"
+ id="stop8684" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8670">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8672" />
+ <stop
+ id="stop8950"
+ offset="0.32142857"
+ style="stop-color:#ebebeb;stop-opacity:1;" />
+ <stop
+ id="stop8678"
+ offset="0.5"
+ style="stop-color:#909090;stop-opacity:1;" />
+ <stop
+ style="stop-color:#fafafa;stop-opacity:1;"
+ offset="1"
+ id="stop8674" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8658">
+ <stop
+ id="stop8660"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop8662"
+ offset="1"
+ style="stop-color:#a5a5a5;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8644">
+ <stop
+ style="stop-color:#717171;stop-opacity:1;"
+ offset="0"
+ id="stop8646" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="1"
+ id="stop8648" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8632">
+ <stop
+ style="stop-color:#2e3436;stop-opacity:1;"
+ offset="0"
+ id="stop8634" />
+ <stop
+ id="stop8640"
+ offset="0.5"
+ style="stop-color:#6b797d;stop-opacity:1;" />
+ <stop
+ style="stop-color:#2e3436;stop-opacity:1;"
+ offset="1"
+ id="stop8636" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2230">
+ <stop
+ style="stop-color:#eeeeee;stop-opacity:1;"
+ offset="0"
+ id="stop2232" />
+ <stop
+ style="stop-color:#a2a2a2;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop2234" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2230"
+ id="linearGradient1458"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.13066,0,0,0.6747171,28.550675,-1.9552823)"
+ x1="7.9151335"
+ y1="30.816841"
+ x2="7.9151335"
+ y2="24.700985" />
+ <linearGradient
+ id="linearGradient3301">
+ <stop
+ id="stop3303"
+ offset="0.0000000"
+ style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+ <stop
+ id="stop3305"
+ offset="1.0000000"
+ style="stop-color:#cbcbcb;stop-opacity:1.0000000;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3301"
+ id="linearGradient1456"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2673265,0,0,1.7297296,28.430708,-34.581052)"
+ x1="6.5595827"
+ y1="29.373810"
+ x2="6.5595827"
+ y2="30.191154" />
+ <linearGradient
+ id="linearGradient5895">
+ <stop
+ style="stop-color:#888a85;stop-opacity:1;"
+ offset="0"
+ id="stop5897" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop5899" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5871">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5873" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop5875" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5841">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5843" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop5845" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5829">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop5831" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop5833" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5819">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5821" />
+ <stop
+ style="stop-color:#a5a5a5;stop-opacity:0;"
+ offset="1"
+ id="stop5823" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5788">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5790" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop5792" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5776">
+ <stop
+ style="stop-color:#babdb6;stop-opacity:1;"
+ offset="0"
+ id="stop5778" />
+ <stop
+ id="stop5784"
+ offset="0.5"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ style="stop-color:#c0c3bb;stop-opacity:1;"
+ offset="0.75"
+ id="stop5786" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop5780" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5759">
+ <stop
+ style="stop-color:#898b86;stop-opacity:1;"
+ offset="0"
+ id="stop5761" />
+ <stop
+ id="stop5767"
+ offset="0.16071428"
+ style="stop-color:#b3b3b0;stop-opacity:1;" />
+ <stop
+ style="stop-color:#71746f;stop-opacity:1;"
+ offset="0.56037414"
+ id="stop5769" />
+ <stop
+ style="stop-color:#555753;stop-opacity:1;"
+ offset="1"
+ id="stop5763" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5788"
+ id="linearGradient5794"
+ x1="24.038181"
+ y1="18.620981"
+ x2="24.038181"
+ y2="15.495981"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9755756,0,0,1,0.1099098,-4)" />
+ <filter
+ inkscape:collect="always"
+ x="-0.0533544"
+ width="1.1067088"
+ y="-0.25483746"
+ height="1.5096749"
+ id="filter5813">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.2104779"
+ id="feGaussianBlur5815" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5819"
+ id="linearGradient5825"
+ x1="31.5"
+ y1="39"
+ x2="31.5"
+ y2="34.498264"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9490741,0,0,1,-1.1788194,-4)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5829"
+ id="linearGradient5835"
+ x1="44.5"
+ y1="32.25"
+ x2="40.625"
+ y2="32.25"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9512194,0,0,0.9756096,0.6707319,-3.304878)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8700"
+ id="linearGradient5839"
+ gradientUnits="userSpaceOnUse"
+ x1="6.0052037"
+ y1="7.1100197"
+ x2="37.575378"
+ y2="44"
+ gradientTransform="matrix(0.9756098,0,0,1,8.5365854e-2,-4)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5841"
+ id="linearGradient5847"
+ x1="25.84375"
+ y1="27.124889"
+ x2="25.84375"
+ y2="45"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5871"
+ id="linearGradient5877"
+ x1="13.928617"
+ y1="29.084788"
+ x2="35.02602"
+ y2="29.084787"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,-4)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5776"
+ id="linearGradient5887"
+ x1="22.992924"
+ y1="42.25816"
+ x2="39.224056"
+ y2="19.704054"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9780423,0,0,0.9730736,1.5876454,-1.307902)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5895"
+ id="linearGradient5901"
+ x1="22.0625"
+ y1="22.125"
+ x2="24"
+ y2="24.9375"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5895"
+ id="linearGradient5905"
+ gradientUnits="userSpaceOnUse"
+ x1="22.0625"
+ y1="22.125"
+ x2="24"
+ y2="24.9375" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8940"
+ id="linearGradient8604"
+ x1="25.632622"
+ y1="33.150757"
+ x2="39.421204"
+ y2="33.150757"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8658"
+ id="linearGradient8628"
+ x1="32.753944"
+ y1="29.525757"
+ x2="32.671204"
+ y2="39.484386"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8632"
+ id="linearGradient8638"
+ x1="28.3125"
+ y1="33.375"
+ x2="35.8125"
+ y2="33.375"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8644"
+ id="radialGradient8650"
+ cx="33.717392"
+ cy="34.229168"
+ fx="33.717392"
+ fy="34.229168"
+ r="3.5"
+ gradientTransform="matrix(0.9597076,0,0,1.4285709,-0.6258796,-20.549066)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8670"
+ id="radialGradient8676"
+ cx="9.2365828"
+ cy="16.462448"
+ fx="9.2365828"
+ fy="16.462448"
+ r="2.9610097"
+ gradientTransform="matrix(1.9559599,0,0,1.02177,-8.8298023,0.2455734)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8680"
+ id="radialGradient8686"
+ cx="9.2365828"
+ cy="15.62961"
+ fx="9.2365828"
+ fy="15.62961"
+ r="2.9610097"
+ gradientTransform="matrix(1.5304128,0,0,0.7994693,-4.8992018,4.1359504)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5759"
+ id="linearGradient8711"
+ gradientUnits="userSpaceOnUse"
+ x1="5"
+ y1="29.951863"
+ x2="20"
+ y2="29.951863"
+ gradientTransform="translate(0,-4)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8735"
+ id="linearGradient8741"
+ x1="24.75"
+ y1="14.559897"
+ x2="24.75"
+ y2="17.5625"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9747923,0,0,1,9.6892066e-2,-4)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8670"
+ id="radialGradient8745"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.1327366,0,0,1.114116,-10.462615,-1.2746684)"
+ cx="9.2365828"
+ cy="15.667007"
+ fx="9.1956778"
+ fy="16.975967"
+ r="2.9610097" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8670"
+ id="radialGradient8749"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.1327366,0,0,1.114116,-10.462615,-1.2746684)"
+ cx="9.2365828"
+ cy="15.667007"
+ fx="9.1956778"
+ fy="16.975967"
+ r="2.9610097" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8670"
+ id="radialGradient8753"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.1327366,0,0,1.114116,-10.462615,-1.2746684)"
+ cx="9.2365828"
+ cy="15.667007"
+ fx="9.1956778"
+ fy="16.975967"
+ r="2.9610097" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath8924">
+ <rect
+ ry="1.1324512"
+ rx="1.1324512"
+ y="29"
+ x="28.475426"
+ height="5"
+ width="8.17838"
+ id="rect8926"
+ style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ </clipPath>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8928"
+ id="radialGradient8934"
+ cx="35.132233"
+ cy="38.144695"
+ fx="35.132233"
+ fy="38.144695"
+ r="5.9602366"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8895"
+ id="radialGradient8936"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.953696,0,0,0.953696,1.4961981,1.4354241)"
+ cx="32.3125"
+ cy="31"
+ fx="32.3125"
+ fy="31"
+ r="2.6875" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8909"
+ id="radialGradient8938"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4953887,0,0,0.4953887,16.642078,14.429586)"
+ cx="32.104324"
+ cy="27.799385"
+ fx="32.104324"
+ fy="27.799385"
+ r="4.125" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8954"
+ id="radialGradient8960"
+ cx="7.375"
+ cy="35.875"
+ fx="7.375"
+ fy="35.875"
+ r="11.5"
+ gradientTransform="matrix(1,0,0,0.5,0,17.9375)"
+ gradientUnits="userSpaceOnUse" />
+ <filter
+ inkscape:collect="always"
+ x="-0.34117647"
+ width="1.6823529"
+ y="-0.34117647"
+ height="1.6823529"
+ id="filter9094">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.28648224"
+ id="feGaussianBlur9096" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8940"
+ id="linearGradient9105"
+ gradientUnits="userSpaceOnUse"
+ x1="25.632622"
+ y1="33.150757"
+ x2="39.421204"
+ y2="33.150757" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8928"
+ id="radialGradient9107"
+ gradientUnits="userSpaceOnUse"
+ cx="32.753944"
+ cy="29.525757"
+ fx="32.753944"
+ fy="29.525757"
+ r="5.9602366" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8658"
+ id="linearGradient9109"
+ gradientUnits="userSpaceOnUse"
+ x1="32.753944"
+ y1="29.525757"
+ x2="32.671204"
+ y2="39.484386" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#e0e0e0"
+ borderopacity="1"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="37.755423"
+ inkscape:cy="22.242989"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="48px"
+ height="48px"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1042"
+ inkscape:window-height="958"
+ inkscape:window-x="480"
+ inkscape:window-y="187"
+ showgrid="false" />
+ <metadata
+ id="metadata7859">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Jakub Steiner</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source>http://jimmac.musichall.cz</dc:source>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+ <dc:title>Photo Camera</dc:title>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>snapshot</rdf:li>
+ <rdf:li>camera</rdf:li>
+ <rdf:li>photo</rdf:li>
+ <rdf:li>compact</rdf:li>
+ <rdf:li>snap</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/GPL/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:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/SourceCode" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.24117647;color:#000000;fill:url(#radialGradient8960);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path8952"
+ sodipodi:cx="7.375"
+ sodipodi:cy="35.875"
+ sodipodi:rx="11.5"
+ sodipodi:ry="5.75"
+ d="M 18.875 35.875 A 11.5 5.75 0 1 1 -4.125,35.875 A 11.5 5.75 0 1 1 18.875 35.875 z"
+ transform="translate(3.875,0.5)" />
+ <path
+ style="opacity:0.34705882;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter5813);enable-background:accumulate"
+ d="M 9.25,30.5 C 7.8238976,30.5 6.4967572,30.783497 5.375,31.25 L 4.75,31.25 C 2.9495,31.25 1.5,32.6995 1.5,34.5 C 1.5,35.319227 1.8158092,36.054579 2.3125,36.625 C 2.3168879,36.634445 2.3080247,36.64683 2.3125,36.65625 C 3.2308853,38.589435 5.998375,40 9.25,40 C 11.85114,40 14.12695,39.099285 15.40625,37.75 L 43.625,37.75 C 45.4255,37.75 46.875,36.3005 46.875,34.5 C 46.875,32.6995 45.4255,31.25 43.625,31.25 L 13.125,31.25 C 12.003243,30.783497 10.676102,30.5 9.25,30.5 z "
+ id="rect5796"
+ transform="matrix(0.9766246,0,0,1,3.5063146e-2,0)" />
+ <path
+ style="opacity:1;color:#000000;fill:url(#linearGradient5839);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 5.2073173,9.5 C 4.2556608,9.5 3.5000002,10.260522 3.5000002,11.1875 L 3.5000002,15.71875 L 3.5000002,35.0625 L 3.5000002,35.28125 C 3.5000002,37.62061 6.110732,39.5 9.353659,39.5 C 11.880769,39.5 14.018446,38.17441 14.841464,36.5625 L 41.792685,36.5625 C 42.744341,36.5625 43.500002,35.80198 43.500002,34.875 L 43.500002,11.1875 C 43.500002,10.260522 42.744339,9.5 41.792685,9.5 L 5.2073173,9.5 z "
+ id="rect4783"
+ sodipodi:nodetypes="cccccscccccc" />
+ <path
+ sodipodi:nodetypes="cccccscccccc"
+ id="path5827"
+ d="M 5.6646343,9.865852 C 4.736769,9.865852 4,10.607826 4,11.512196 L 4,15.932926 L 4,34.55488 L 4,34.768294 C 4,37.050594 6.5454633,38.884148 9.7073169,38.884148 C 12.171249,38.884148 14.255485,37.590886 15.057927,36.018292 L 41.335367,36.018292 C 42.263232,36.018292 43,35.27632 43,34.371952 L 43,11.512196 C 43,10.607826 42.26323,9.865852 41.335367,9.865852 L 5.6646343,9.865852 z "
+ style="opacity:0.28823529;color:#000000;fill:url(#linearGradient5835);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <rect
+ style="opacity:0.47647059;color:#000000;fill:url(#linearGradient5825);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect5817"
+ width="25.625"
+ height="4.5"
+ x="14.125"
+ y="30.5"
+ rx="0.5931713"
+ ry="0.625" />
+ <path
+ style="opacity:1;color:#000000;fill:url(#linearGradient5887);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 30.4375 15 C 24.161402 15 19.0625 20.068286 19.0625 26.3125 C 19.0625 30.442697 21.327842 34.027952 24.65625 36 L 36.21875 36 C 39.547157 34.027952 41.8125 30.442696 41.8125 26.3125 C 41.8125 20.068287 36.713597 15 30.4375 15 z "
+ id="path5879" />
+ <path
+ style="opacity:1;color:#000000;fill:url(#linearGradient8711);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 4,33.763325 C 3.5625,38.391398 12.590192,39.218272 14.116117,35.107075 L 17,35.107075 C 17.577468,35.107075 18,34.735332 18,33.9375 L 18,16 C 18,15.377795 17.742047,15.0625 17.125,15.0625 L 13.928617,15.0625 C 11.234482,18.288094 4.7735018,15.204428 4,13.125 L 4,33.763325 z "
+ id="path5757"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ style="opacity:1;color:#000000;fill:#f6f6f6;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5794);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 4.5,10.93566 L 4.5,12.28125 C 4.5,14.62061 6.0131178,16.4375 9.255931,16.4375 C 11.782953,16.4375 13.005952,15.17441 13.828942,13.5625 L 41.267005,13.5625 C 42.218629,13.5625 42.5,12.80198 42.5,11.875 L 42.5,11.053243 C 42.5,10.481627 41.903642,10.06066 41.314344,10.06066 L 5.4755756,10.06066 C 4.9569242,10.021822 4.5350381,10.148297 4.5,10.93566 z "
+ id="path5771"
+ sodipodi:nodetypes="ccsccccccc" />
+ <rect
+ style="opacity:0.14705882;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect5849"
+ width="1.5"
+ height="19.5"
+ x="7"
+ y="17.75"
+ rx="0.5931713"
+ ry="0.625" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ id="path5869"
+ d="M 14.116117,35.107075 L 17,35.107075 C 17.577468,35.107075 18,34.735332 18,33.9375 L 18,16 C 18,15.377795 17.742047,15.0625 17.125,15.0625 L 13.928617,15.0625 C 13.928617,15.0625 14.116117,35.107075 14.116117,35.107075 z "
+ style="opacity:0.2;color:#000000;fill:url(#linearGradient5877);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="-1.1642135"
+ inkscape:original="M 5.21875 9.5 C 4.2670934 9.5 3.5 10.260522 3.5 11.1875 L 3.5 15.71875 L 3.5 35.0625 L 3.5 35.28125 C 3.5 37.62061 6.100823 39.5 9.34375 39.5 C 11.87086 39.5 14.020732 38.17441 14.84375 36.5625 L 41.78125 36.5625 C 42.732905 36.5625 43.5 35.80198 43.5 34.875 L 43.5 11.1875 C 43.499998 10.260522 42.732904 9.5 41.78125 9.5 L 5.21875 9.5 z "
+ xlink:href="#rect4783"
+ style="opacity:0.37058824;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5847);stroke-width:0.99793345;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5837"
+ inkscape:href="#rect4783"
+ d="M 5.21875,10.65625 C 4.8873522,10.65625 4.65625,10.902796 4.65625,11.1875 L 4.65625,15.71875 L 4.65625,35.0625 L 4.65625,35.28125 C 4.65625,36.019485 5.0486842,36.715787 5.875,37.3125 C 6.7013158,37.909213 7.9471874,38.34375 9.34375,38.34375 C 11.463736,38.34375 13.245322,37.142088 13.8125,36.03125 C 14.013191,35.647273 14.410489,35.406486 14.84375,35.40625 L 41.78125,35.40625 C 42.112647,35.40625 42.34375,35.159706 42.34375,34.875 L 42.34375,11.1875 C 42.343749,10.902795 42.112644,10.65625 41.78125,10.65625 L 5.21875,10.65625 z "
+ transform="matrix(1.0041459,0,0,1,-1.9304654e-2,0)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;color:#000000;fill:#2e3436;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5901);stroke-width:0.90909094;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5893"
+ sodipodi:cx="22.6875"
+ sodipodi:cy="23.0625"
+ sodipodi:rx="1.875"
+ sodipodi:ry="1.875"
+ d="M 24.5625 23.0625 A 1.875 1.875 0 1 1 20.8125,23.0625 A 1.875 1.875 0 1 1 24.5625 23.0625 z"
+ transform="matrix(1.1,0,0,1.1,0.60625,-8.93125)" />
+ <path
+ transform="matrix(0.5333333,0,0,0.5333333,8.400001,4.2000007)"
+ d="M 24.5625 23.0625 A 1.875 1.875 0 1 1 20.8125,23.0625 A 1.875 1.875 0 1 1 24.5625 23.0625 z"
+ sodipodi:ry="1.875"
+ sodipodi:rx="1.875"
+ sodipodi:cy="23.0625"
+ sodipodi:cx="22.6875"
+ id="path5903"
+ style="opacity:1;color:#000000;fill:#2e3436;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5905);stroke-width:1.87500012;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <rect
+ ry="1.3120532"
+ rx="1.2894175"
+ y="14.5"
+ x="33.5"
+ height="3.9999995"
+ width="7.9999967"
+ id="rect3297"
+ style="color:#000000;fill:url(#linearGradient1456);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1458);stroke-width:1.00000036;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans" />
+ <path
+ transform="matrix(1.355599,0,0,1.3453973,-14.966671,-18.75734)"
+ d="M 39.421205 33.150757 A 5.833631 5.833631 0 1 1 27.753943,33.150757 A 5.833631 5.833631 0 1 1 39.421205 33.150757 z"
+ sodipodi:ry="5.833631"
+ sodipodi:rx="5.833631"
+ sodipodi:cy="33.150757"
+ sodipodi:cx="33.587574"
+ id="path8596"
+ style="opacity:1;color:#000000;fill:url(#linearGradient8604);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;color:#000000;fill:url(#radialGradient8934);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient8628);stroke-width:0.23515993;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path8594"
+ sodipodi:cx="33.587574"
+ sodipodi:cy="33.150757"
+ sodipodi:rx="5.833631"
+ sodipodi:ry="5.833631"
+ d="M 39.421205 33.150757 A 5.833631 5.833631 0 1 1 27.753943,33.150757 A 5.833631 5.833631 0 1 1 39.421205 33.150757 z"
+ transform="matrix(1.2939177,0,0,1.257793,-12.894941,-15.094093)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;color:#000000;fill:url(#linearGradient9105);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path9101"
+ sodipodi:cx="33.587574"
+ sodipodi:cy="33.150757"
+ sodipodi:rx="5.833631"
+ sodipodi:ry="5.833631"
+ d="M 39.421205 33.150757 A 5.833631 5.833631 0 1 1 27.753943,33.150757 A 5.833631 5.833631 0 1 1 39.421205 33.150757 z"
+ transform="matrix(1.0635279,0,0,1.0465458,-5.1567141,-7.5886238)" />
+ <path
+ transform="matrix(1.0151362,0,0,0.9686302,-3.5313497,-4.797608)"
+ d="M 39.421205 33.150757 A 5.833631 5.833631 0 1 1 27.753943,33.150757 A 5.833631 5.833631 0 1 1 39.421205 33.150757 z"
+ sodipodi:ry="5.833631"
+ sodipodi:rx="5.833631"
+ sodipodi:cy="33.150757"
+ sodipodi:cx="33.587574"
+ id="path9103"
+ style="opacity:1;color:#000000;fill:url(#radialGradient9107);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient9109);stroke-width:0.3025381;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;color:#000000;fill:url(#linearGradient8638);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path8630"
+ sodipodi:cx="32.0625"
+ sodipodi:cy="33.375"
+ sodipodi:rx="3.75"
+ sodipodi:ry="3.75"
+ d="M 35.8125 33.375 A 3.75 3.75 0 1 1 28.3125,33.375 A 3.75 3.75 0 1 1 35.8125 33.375 z"
+ transform="matrix(1.2702988,0,0,1.2700836,-10.164339,-15.06132)" />
+ <rect
+ ry="1.2356688"
+ rx="0.94875419"
+ y="25.375658"
+ x="26.475426"
+ height="4.5649796"
+ width="8.17838"
+ id="rect8664"
+ style="opacity:0.47058824;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <rect
+ style="opacity:1;color:#000000;fill:url(#radialGradient8650);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect8642"
+ width="8.17838"
+ height="5"
+ x="26.475426"
+ y="24.808058"
+ rx="1.1324512"
+ ry="1.1324512" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.78235294;color:#000000;fill:url(#radialGradient8686);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path8666"
+ sodipodi:cx="9.2365828"
+ sodipodi:cy="17.726992"
+ sodipodi:rx="2.9610097"
+ sodipodi:ry="1.5467961"
+ d="M 12.197592 17.726992 A 2.9610097 1.5467961 0 1 1 6.275573,17.726992 A 2.9610097 1.5467961 0 1 1 12.197592 17.726992 z"
+ transform="matrix(1,0,0,0.9697467,0,-2.6906916)" />
+ <path
+ transform="matrix(0.8598222,0,0,0.7359198,1.2947636,1.3521018)"
+ d="M 12.197592 17.726992 A 2.9610097 1.5467961 0 1 1 6.275573,17.726992 A 2.9610097 1.5467961 0 1 1 12.197592 17.726992 z"
+ sodipodi:ry="1.5467961"
+ sodipodi:rx="2.9610097"
+ sodipodi:cy="17.726992"
+ sodipodi:cx="9.2365828"
+ id="path8668"
+ style="opacity:1;color:#000000;fill:url(#radialGradient8676);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ style="opacity:1;color:#000000;fill:url(#linearGradient8741);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 3.84375,11.28125 L 3.9960613,17.25 L 4.3616084,13.375 C 4.3616084,11.78401 5.9456459,11.75 5.9456459,11.75 L 41.647414,11.75 C 42.80498,11.71875 42.865905,13.875 42.865905,13.875 C 42.865905,13.875 42.987754,11.375 42.987754,11.375 C 43.073914,10.579505 42.713593,9.96875 41.647414,9.875 L 5.2145517,9.875 C 4.54369,9.875 3.84375,10.48781 3.84375,11.28125 z "
+ id="path8733"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;color:#000000;fill:url(#radialGradient8745);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path8743"
+ sodipodi:cx="9.2365828"
+ sodipodi:cy="17.726992"
+ sodipodi:rx="2.9610097"
+ sodipodi:ry="1.5467961"
+ d="M 12.197592 17.726992 A 2.9610097 1.5467961 0 1 1 6.275573,17.726992 A 2.9610097 1.5467961 0 1 1 12.197592 17.726992 z"
+ transform="matrix(0.5065839,0,0,0.6464973,24.820896,-0.4604517)" />
+ <path
+ transform="matrix(0.5065839,0,0,0.6464973,28.820896,-0.4604517)"
+ d="M 12.197592 17.726992 A 2.9610097 1.5467961 0 1 1 6.275573,17.726992 A 2.9610097 1.5467961 0 1 1 12.197592 17.726992 z"
+ sodipodi:ry="1.5467961"
+ sodipodi:rx="2.9610097"
+ sodipodi:cy="17.726992"
+ sodipodi:cx="9.2365828"
+ id="path8747"
+ style="opacity:1;color:#000000;fill:url(#radialGradient8749);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;color:#000000;fill:url(#radialGradient8753);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path8751"
+ sodipodi:cx="9.2365828"
+ sodipodi:cy="17.726992"
+ sodipodi:rx="2.9610097"
+ sodipodi:ry="1.5467961"
+ d="M 12.197592 17.726992 A 2.9610097 1.5467961 0 1 1 6.275573,17.726992 A 2.9610097 1.5467961 0 1 1 12.197592 17.726992 z"
+ transform="matrix(0.5065839,0,0,0.6464973,32.820896,-0.4604517)" />
+ <g
+ id="g8919"
+ clip-path="url(#clipPath8924)"
+ transform="translate(-2,-4.1919416)">
+ <path
+ transform="translate(0.375,-0.125)"
+ d="M 35 31 A 2.6875 2.6875 0 1 1 29.625,31 A 2.6875 2.6875 0 1 1 35 31 z"
+ sodipodi:ry="2.6875"
+ sodipodi:rx="2.6875"
+ sodipodi:cy="31"
+ sodipodi:cx="32.3125"
+ id="path8893"
+ style="opacity:1;color:#000000;fill:url(#radialGradient8936);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.6764706,0,0,0.6764706,9.9834559,13.224265)"
+ d="M 35.6875 26 A 2.125 2.125 0 1 1 31.4375,26 A 2.125 2.125 0 1 1 35.6875 26 z"
+ sodipodi:ry="2.125"
+ sodipodi:rx="2.125"
+ sodipodi:cy="26"
+ sodipodi:cx="33.5625"
+ id="path8907"
+ style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#radialGradient8938);stroke-width:1.47826087;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.6676229,0,0,0.6675098,10.635888,7.577028)"
+ d="M 32.1875 33.0625 A 0.875 0.875 0 1 1 30.4375,33.0625 A 0.875 0.875 0 1 1 32.1875 33.0625 z"
+ sodipodi:ry="0.875"
+ sodipodi:rx="0.875"
+ sodipodi:cy="33.0625"
+ sodipodi:cx="31.3125"
+ id="path8652"
+ style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ </g>
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.34705882;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path8962"
+ sodipodi:cx="27.577164"
+ sodipodi:cy="16.44536"
+ sodipodi:rx="0.83968931"
+ sodipodi:ry="0.83968931"
+ d="M 28.416853 16.44536 A 0.83968931 0.83968931 0 1 1 26.737474,16.44536 A 0.83968931 0.83968931 0 1 1 28.416853 16.44536 z"
+ transform="translate(-2,0)" />
+ <path
+ d="M 28.416853 16.44536 A 0.83968931 0.83968931 0 1 1 26.737474,16.44536 A 0.83968931 0.83968931 0 1 1 28.416853 16.44536 z"
+ sodipodi:ry="0.83968931"
+ sodipodi:rx="0.83968931"
+ sodipodi:cy="16.44536"
+ sodipodi:cx="27.577164"
+ id="path8964"
+ style="opacity:0.30588235;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter9094);enable-background:accumulate"
+ sodipodi:type="arc"
+ transform="matrix(0.7105263,0,0,0.7105263,6.3585135,5.4745378)" />
+ </g>
+</svg>
diff --git a/icons/screen.svg b/icons/screen.svg
new file mode 100644
index 0000000..17abe8b
--- /dev/null
+++ b/icons/screen.svg
@@ -0,0 +1,469 @@
+<?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.000000px"
+ height="48.000000px"
+ id="svg3304"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.3.1 r9886"
+ sodipodi:docname="lock.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.1">
+ <defs
+ id="defs3306">
+ <linearGradient
+ id="linearGradient3877">
+ <stop
+ style="stop-color:white;stop-opacity:1;"
+ offset="0"
+ id="stop3879" />
+ <stop
+ id="stop3895"
+ offset="0.84337348"
+ style="stop-color:white;stop-opacity:1;" />
+ <stop
+ style="stop-color:white;stop-opacity:0;"
+ offset="1"
+ id="stop3881" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3866">
+ <stop
+ id="stop3868"
+ offset="0"
+ style="stop-color:white;stop-opacity:1;" />
+ <stop
+ id="stop3870"
+ offset="1"
+ style="stop-color:#d3d7cf;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3858">
+ <stop
+ style="stop-color:black;stop-opacity:1"
+ offset="0"
+ id="stop3860" />
+ <stop
+ style="stop-color:#c4a000;stop-opacity:0;"
+ offset="1"
+ id="stop3862" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3776">
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0"
+ id="stop3778" />
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop3780" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3734">
+ <stop
+ style="stop-color:white;stop-opacity:1;"
+ offset="0"
+ id="stop3736" />
+ <stop
+ style="stop-color:white;stop-opacity:0;"
+ offset="1"
+ id="stop3738" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2833">
+ <stop
+ style="stop-color:#edd400;stop-opacity:1"
+ offset="0"
+ id="stop2835" />
+ <stop
+ id="stop2841"
+ offset="0.2"
+ style="stop-color:#fce94f;stop-opacity:1;" />
+ <stop
+ style="stop-color:#fce94f;stop-opacity:1;"
+ offset="0.5"
+ id="stop2843" />
+ <stop
+ style="stop-color:#edd400;stop-opacity:1"
+ offset="1"
+ id="stop2837" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2817">
+ <stop
+ style="stop-color:white;stop-opacity:1;"
+ offset="0"
+ id="stop2819" />
+ <stop
+ id="stop3899"
+ offset="0.50602412"
+ style="stop-color:white;stop-opacity:1;" />
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="1"
+ id="stop2821" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5233">
+ <stop
+ style="stop-color:#555753;stop-opacity:1"
+ offset="0"
+ id="stop5235" />
+ <stop
+ style="stop-color:black;stop-opacity:1"
+ offset="1"
+ id="stop5237" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5225">
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0"
+ id="stop5227" />
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop5229" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5137">
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1;"
+ offset="0"
+ id="stop5139" />
+ <stop
+ style="stop-color:#e6e6e3;stop-opacity:1;"
+ offset="1"
+ id="stop5141" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6240">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop6242" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop6244" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient11400">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop11402" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop11404" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11400"
+ id="linearGradient11406"
+ x1="23.154902"
+ y1="34.572548"
+ x2="23.529411"
+ y2="40.219608"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6240"
+ id="linearGradient6246"
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5137"
+ id="linearGradient5147"
+ gradientUnits="userSpaceOnUse"
+ x1="17.247635"
+ y1="6.3760414"
+ x2="39.904388"
+ y2="38.876041" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5137"
+ id="linearGradient5223"
+ gradientUnits="userSpaceOnUse"
+ x1="31.743324"
+ y1="37.842293"
+ x2="31.86105"
+ y2="43.82579" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5225"
+ id="radialGradient5231"
+ cx="23.9375"
+ cy="42.6875"
+ fx="23.9375"
+ fy="42.6875"
+ r="23.75956"
+ gradientTransform="matrix(1,0,0,0.24763,4.590511e-16,32.1168)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5233"
+ id="radialGradient5239"
+ cx="24.006104"
+ cy="32.997028"
+ fx="24.006104"
+ fy="32.997028"
+ r="19.00016"
+ gradientTransform="matrix(1.232634,1.948681e-23,-1.1422e-23,0.778392,-5.584638,2.154377)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3866"
+ id="radialGradient3795"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.870643,0,0,1.866263,-24.33718,-15.74392)"
+ cx="27.953125"
+ cy="18.315439"
+ fx="27.953125"
+ fy="18.315439"
+ r="5.128125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3776"
+ id="linearGradient3801"
+ gradientUnits="userSpaceOnUse"
+ x1="42.4706"
+ y1="32.399456"
+ x2="13.479223"
+ y2="22.632544" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3734"
+ id="linearGradient3822"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.864869,-51.88396,3.1237514)"
+ x1="18.21875"
+ y1="20.46875"
+ x2="19.1875"
+ y2="30.4375" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2833"
+ id="linearGradient3830"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.006994,0,-1.136389)"
+ x1="17.871288"
+ y1="23.875"
+ x2="29.689016"
+ y2="23.875" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2817"
+ id="radialGradient3833"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.57668,0,0,1.800344,-31.2679,-10.37657)"
+ cx="19.468771"
+ cy="12.116604"
+ fx="19.468771"
+ fy="12.116604"
+ r="6.0156319" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3776"
+ id="linearGradient3846"
+ gradientUnits="userSpaceOnUse"
+ x1="42.4706"
+ y1="32.399456"
+ x2="13.479223"
+ y2="22.632544" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3776"
+ id="linearGradient3848"
+ gradientUnits="userSpaceOnUse"
+ x1="42.4706"
+ y1="32.399456"
+ x2="13.479223"
+ y2="22.632544" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3776"
+ id="linearGradient3850"
+ gradientUnits="userSpaceOnUse"
+ x1="42.4706"
+ y1="32.399456"
+ x2="13.479223"
+ y2="22.632544" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3858"
+ id="linearGradient3864"
+ x1="13.5"
+ y1="17.84375"
+ x2="36"
+ y2="19.5"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3877"
+ id="radialGradient3893"
+ cx="23.582689"
+ cy="19.995197"
+ fx="23.582689"
+ fy="19.995197"
+ r="7.9999981"
+ gradientTransform="matrix(0.913714,-6.637959e-2,2.992885e-2,0.41197,1.45598,13.32316)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#849193"
+ borderopacity="1.0000000"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="8"
+ inkscape:cx="14.458556"
+ inkscape:cy="27.346585"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:showpageshadow="false"
+ showborder="false"
+ inkscape:window-width="1920"
+ inkscape:window-height="1148"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:grid-points="true"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata3309">
+ <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></dc:title>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Luca Ferretti &lt;elle.uca@libero.it&gt;</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>monitor</rdf:li>
+ <rdf:li>display</rdf:li>
+ <rdf:li>video</rdf:li>
+ <rdf:li>screen</rdf:li>
+ <rdf:li>LCD</rdf:li>
+ <rdf:li>CRT</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/GPL/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:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/SourceCode" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <rect
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ id="rect4784"
+ width="48.000000"
+ height="48.000000"
+ x="0.0000000"
+ y="0.0000000" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.4;fill:url(#radialGradient5231);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path13582"
+ sodipodi:cx="23.9375"
+ sodipodi:cy="42.6875"
+ sodipodi:rx="23.75956"
+ sodipodi:ry="5.8835783"
+ d="M 47.69706 42.6875 A 23.75956 5.8835783 0 1 1 0.17794037,42.6875 A 23.75956 5.8835783 0 1 1 47.69706 42.6875 z"
+ transform="matrix(0.968245,0,0,0.863797,1.447631,6.096332)" />
+ <path
+ style="fill:url(#linearGradient5223);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;opacity:1;color:black;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;visibility:visible;display:inline;overflow:visible"
+ d="M 14.375479,35.533351 C 14.375479,35.533351 15.592355,40.467951 10.519150,40.514275 C 8.0888743,40.536180 8.5866723,44.549426 8.5866723,44.549426 L 39.433139,44.518053 C 39.433139,44.518053 39.851577,40.622690 37.410922,40.577021 C 32.423455,40.484882 33.600393,35.470606 33.600393,35.470606 L 14.375479,35.533351 z "
+ id="path9222"
+ sodipodi:nodetypes="csccscc" />
+ <path
+ style="fill:url(#linearGradient5147);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ d="M 4.8886262,3.4784362 L 43.01746,3.4784362 C 45.042579,3.4784362 46.518438,4.9060907 46.518438,7.104577 L 46.529388,33.308416 C 46.529388,35.000483 46.001041,35.523645 44.494732,35.523645 L 3.5320635,35.50471 C 2.3527922,35.475917 1.513468,35.010049 1.4976345,33.485407 L 1.5128113,6.9168325 C 1.5128113,5.1430066 3.0522187,3.4784362 4.8886262,3.4784362 z "
+ id="rect5040"
+ sodipodi:nodetypes="ccccccccc" />
+ <rect
+ style="fill:url(#radialGradient5239);fill-opacity:1.0;fill-rule:evenodd;stroke:black;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ id="rect9208"
+ width="37.000320"
+ height="22.996691"
+ x="5.5059438"
+ y="7.5018229" />
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="-0.875"
+ inkscape:original="M 4.875 3.46875 C 3.0385925 3.46875 1.5 5.1324241 1.5 6.90625 L 1.5 33.5 C 1.5158335 35.024642 2.3519787 35.471207 3.53125 35.5 L 44.5 35.53125 C 46.006309 35.53125 46.53125 35.004567 46.53125 33.3125 L 46.53125 7.09375 C 46.53125 4.8952637 45.056369 3.46875 43.03125 3.46875 L 4.875 3.46875 z "
+ xlink:href="#rect5040"
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:white;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ id="path5145"
+ inkscape:href="#rect5040"
+ d="M 4.875,4.34375 C 3.5670572,4.34375 2.375,5.6383996 2.375,6.90625 L 2.375,33.5 C 2.3812651,34.103278 2.5206964,34.290591 2.65625,34.40625 C 2.7918036,34.521909 3.0781685,34.613174 3.5625,34.625 L 44.5,34.65625 C 45.151173,34.65625 45.356981,34.55523 45.4375,34.46875 C 45.518019,34.38227 45.65625,34.068049 45.65625,33.3125 L 45.65625,7.09375 C 45.65625,5.2865999 44.645463,4.34375 43.03125,4.34375 L 4.875,4.34375 z " />
+ <path
+ style="fill:url(#linearGradient11406);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;opacity:0.60000000"
+ d="M 13.992156,36.039216 C 14.075817,38.211765 13.708803,38.950659 12.358532,39.714447 L 35.973934,41.011765 C 35.024915,39.843137 33.644523,38.078431 34.020993,36.02353 L 13.992156,36.039216 z "
+ id="path10672"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#8d8d8f;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:0.43902439"
+ d="M 9.9921262,41.496063 C 16.698819,41.498032 37.788910,41.496063 37.788910,41.496063"
+ id="path6575"
+ sodipodi:nodetypes="cc" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path8029"
+ d="M 9.6479280,42.503937 C 16.354621,42.505906 38.367789,42.503937 38.367789,42.503937"
+ style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1.0000000" />
+ <path
+ style="fill:url(#linearGradient6246);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;opacity:0.65"
+ d="M 6.0235294,8.0313725 L 6.0235294,26.039216 C 22.467974,24.684967 28.622222,15.926797 41.992156,15.011764 L 41.992157,8.0000000 L 6.0235294,8.0313725 z "
+ id="path4073"
+ sodipodi:nodetypes="ccccc" />
+ </g>
+</svg>
diff --git a/icons/student2all.svg b/icons/student2all.svg
new file mode 100644
index 0000000..ef3d7b2
--- /dev/null
+++ b/icons/student2all.svg
@@ -0,0 +1,2818 @@
+<?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.1"
+ width="114.38715"
+ height="114.30188"
+ id="svg2"
+ xml:space="preserve"
+ inkscape:version="0.48.3.1 r9886"
+ sodipodi:docname="student2all.svg"><sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1148"
+ id="namedview1023"
+ showgrid="false"
+ inkscape:zoom="5.839876"
+ inkscape:cx="57.193577"
+ inkscape:cy="57.15094"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="g10" /><metadata
+ id="metadata8"><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 /></cc:Work></rdf:RDF></metadata><defs
+ id="defs6"><clipPath
+ id="clipPath18"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path20" /></clipPath><mask
+ id="mask22"><g
+ id="g24"><g
+ clip-path="url(#clipPath18)"
+ id="g26"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path28"
+ style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath34"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path36" /></clipPath><clipPath
+ id="clipPath38"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path40" /></clipPath><clipPath
+ id="clipPath42"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path44" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient46"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.980126,0,0,-0.216527,1.465394,57.746052)"
+ spreadMethod="pad"><stop
+ id="stop48"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop50"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath52"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path54" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient56"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.980126,0,0,-0.216527,1.465394,57.746052)"
+ spreadMethod="pad"><stop
+ id="stop58"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop60"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern62"><defs
+ id="defs64"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask0"><g
+ id="g67"><g
+ clip-path="url(#clipPath42)"
+ id="g69"><g
+ id="g71"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#radialGradient46);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path73" /></g></g></g></mask></defs><g
+ id="g75" /><g
+ id="g77"><g
+ clip-path="url(#clipPath38)"
+ id="g79"><g
+ id="g81"><g
+ id="g83"><g
+ id="g85" /><g
+ mask="url(#_mask0)"
+ id="g87"><g
+ id="g89" /><g
+ id="g91"><g
+ clip-path="url(#clipPath52)"
+ id="g93"><g
+ id="g95"><path
+ d="m 48.215,48.504 c 0,-2.844 -10.426,-5.145 -23.289,-5.145 -12.86,0 -23.285,2.301 -23.285,5.145 0,2.84 10.425,5.144 23.285,5.144 12.863,0 23.289,-2.304 23.289,-5.144 z"
+ style="fill:url(#radialGradient56);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path97" /></g></g></g></g></g></g></g></g></pattern><linearGradient
+ x1="31.742188"
+ y1="37.84375"
+ x2="31.859375"
+ y2="43.824219"
+ id="linearGradient111"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.012271,0,0,-1.012271,0,91.441505)"
+ spreadMethod="pad"><stop
+ id="stop113"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop115"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="17.246094"
+ y1="6.375"
+ x2="39.90625"
+ y2="38.875"
+ id="linearGradient123"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.012271,0,0,-1.012271,0,91.441505)"
+ spreadMethod="pad"><stop
+ id="stop125"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop127"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="24.007812"
+ cy="32.996094"
+ r="19"
+ fx="24.007812"
+ fy="32.996094"
+ id="radialGradient133"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.247759,0,0,-0.787943,-5.653165,89.260693)"
+ spreadMethod="pad"><stop
+ id="stop135"
+ style="stop-color:#555753;stop-opacity:1"
+ offset="0" /><stop
+ id="stop137"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath153"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path155" /></clipPath><mask
+ id="mask157"><g
+ id="g159"><g
+ clip-path="url(#clipPath153)"
+ id="g161"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path163"
+ style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath169"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path171" /></clipPath><clipPath
+ id="clipPath173"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path175" /></clipPath><clipPath
+ id="clipPath177"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path179" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient181"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)"
+ spreadMethod="pad"><stop
+ id="stop183"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop185"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath187"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path189" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient191"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)"
+ spreadMethod="pad"><stop
+ id="stop193"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop195"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern197"><defs
+ id="defs199"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask1"><g
+ id="g202"><g
+ clip-path="url(#clipPath177)"
+ id="g204"><g
+ id="g206"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient181);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path208" /></g></g></g></mask></defs><g
+ id="g210" /><g
+ id="g212"><g
+ clip-path="url(#clipPath173)"
+ id="g214"><g
+ id="g216"><g
+ id="g218"><g
+ id="g220" /><g
+ mask="url(#_mask1)"
+ id="g222"><g
+ id="g224" /><g
+ id="g226"><g
+ clip-path="url(#clipPath187)"
+ id="g228"><g
+ id="g230"><path
+ d="m 14.164,55.52 c 0.086,-2.2 -0.285,-2.95 -1.652,-3.723 l 23.902,-1.313 c -0.961,1.184 -2.355,2.969 -1.976,5.051 L 14.164,55.52 z"
+ style="fill:url(#linearGradient191);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path232" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath254"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path256" /></clipPath><mask
+ id="mask258"><g
+ id="g260"><g
+ clip-path="url(#clipPath254)"
+ id="g262"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path264"
+ style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath270"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path272" /></clipPath><clipPath
+ id="clipPath274"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path276" /></clipPath><clipPath
+ id="clipPath278"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path280" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient282"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)"
+ spreadMethod="pad"><stop
+ id="stop284"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop286"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath288"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path290" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient292"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)"
+ spreadMethod="pad"><stop
+ id="stop294"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop296"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern298"><defs
+ id="defs300"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask2"><g
+ id="g303"><g
+ clip-path="url(#clipPath278)"
+ id="g305"><g
+ id="g307"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient282);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path309" /></g></g></g></mask></defs><g
+ id="g311" /><g
+ id="g313"><g
+ clip-path="url(#clipPath274)"
+ id="g315"><g
+ id="g317"><g
+ id="g319"><g
+ id="g321" /><g
+ mask="url(#_mask2)"
+ id="g323"><g
+ id="g325" /><g
+ id="g327"><g
+ clip-path="url(#clipPath288)"
+ id="g329"><g
+ id="g331"><path
+ d="m 6.098,83.871 0,-18.23 c 16.644,1.371 22.875,10.238 36.41,11.164 l 0,7.097 -36.41,-0.031 z"
+ style="fill:url(#linearGradient292);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path333" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath347"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path349" /></clipPath><mask
+ id="mask351"><g
+ id="g353"><g
+ clip-path="url(#clipPath347)"
+ id="g355"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path357"
+ style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath363"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path365" /></clipPath><clipPath
+ id="clipPath367"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path369" /></clipPath><clipPath
+ id="clipPath371"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path373" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient375"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.593246,0,0,-0.131058,62.986967,65.666929)"
+ spreadMethod="pad"><stop
+ id="stop377"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop379"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath381"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path383" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient385"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.593246,0,0,-0.131058,62.986967,65.666929)"
+ spreadMethod="pad"><stop
+ id="stop387"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop389"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern391"><defs
+ id="defs393"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask3"><g
+ id="g396"><g
+ clip-path="url(#clipPath371)"
+ id="g398"><g
+ id="g400"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#radialGradient375);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path402" /></g></g></g></mask></defs><g
+ id="g404" /><g
+ id="g406"><g
+ clip-path="url(#clipPath367)"
+ id="g408"><g
+ id="g410"><g
+ id="g412"><g
+ id="g414" /><g
+ mask="url(#_mask3)"
+ id="g416"><g
+ id="g418" /><g
+ id="g420"><g
+ clip-path="url(#clipPath381)"
+ id="g422"><g
+ id="g424"><path
+ d="m 91.281,60.074 c 0,-1.722 -6.308,-3.117 -14.093,-3.117 -7.786,0 -14.094,1.395 -14.094,3.117 0,1.719 6.308,3.114 14.094,3.114 7.785,0 14.093,-1.395 14.093,-3.114 z"
+ style="fill:url(#radialGradient385);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path426" /></g></g></g></g></g></g></g></g></pattern><linearGradient
+ x1="31.742188"
+ y1="37.84375"
+ x2="31.859375"
+ y2="43.824219"
+ id="linearGradient440"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,85.841505)"
+ spreadMethod="pad"><stop
+ id="stop442"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop444"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="17.246094"
+ y1="6.375"
+ x2="39.90625"
+ y2="38.875"
+ id="linearGradient452"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,85.841505)"
+ spreadMethod="pad"><stop
+ id="stop454"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop456"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="24.007812"
+ cy="32.996094"
+ r="19"
+ fx="24.007812"
+ fy="32.996094"
+ id="radialGradient462"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.755238,0,0,-0.476923,58.678279,84.521513)"
+ spreadMethod="pad"><stop
+ id="stop464"
+ style="stop-color:#555753;stop-opacity:1"
+ offset="0" /><stop
+ id="stop466"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath482"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path484" /></clipPath><mask
+ id="mask486"><g
+ id="g488"><g
+ clip-path="url(#clipPath482)"
+ id="g490"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path492"
+ style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath498"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path500" /></clipPath><clipPath
+ id="clipPath502"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path504" /></clipPath><clipPath
+ id="clipPath506"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path508" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient510"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)"
+ spreadMethod="pad"><stop
+ id="stop512"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop514"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath516"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path518" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient520"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)"
+ spreadMethod="pad"><stop
+ id="stop522"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop524"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern526"><defs
+ id="defs528"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask4"><g
+ id="g531"><g
+ clip-path="url(#clipPath506)"
+ id="g533"><g
+ id="g535"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient510);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path537" /></g></g></g></mask></defs><g
+ id="g539" /><g
+ id="g541"><g
+ clip-path="url(#clipPath502)"
+ id="g543"><g
+ id="g545"><g
+ id="g547"><g
+ id="g549" /><g
+ mask="url(#_mask4)"
+ id="g551"><g
+ id="g553" /><g
+ id="g555"><g
+ clip-path="url(#clipPath516)"
+ id="g557"><g
+ id="g559"><path
+ d="m 70.672,64.32 c 0.051,-1.332 -0.172,-1.785 -1,-2.254 l 14.469,-0.793 c -0.582,0.715 -1.426,1.797 -1.196,3.055 L 70.672,64.32 z"
+ style="fill:url(#linearGradient520);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path561" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath583"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path585" /></clipPath><mask
+ id="mask587"><g
+ id="g589"><g
+ clip-path="url(#clipPath583)"
+ id="g591"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path593"
+ style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath599"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path601" /></clipPath><clipPath
+ id="clipPath603"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path605" /></clipPath><clipPath
+ id="clipPath607"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path609" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient611"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)"
+ spreadMethod="pad"><stop
+ id="stop613"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop615"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath617"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path619" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient621"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)"
+ spreadMethod="pad"><stop
+ id="stop623"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop625"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern627"><defs
+ id="defs629"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask5"><g
+ id="g632"><g
+ clip-path="url(#clipPath607)"
+ id="g634"><g
+ id="g636"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient611);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path638" /></g></g></g></mask></defs><g
+ id="g640" /><g
+ id="g642"><g
+ clip-path="url(#clipPath603)"
+ id="g644"><g
+ id="g646"><g
+ id="g648"><g
+ id="g650" /><g
+ mask="url(#_mask5)"
+ id="g652"><g
+ id="g654" /><g
+ id="g656"><g
+ clip-path="url(#clipPath617)"
+ id="g658"><g
+ id="g660"><path
+ d="m 65.789,81.48 0,-11.035 c 10.078,0.832 13.848,6.196 22.039,6.758 l 0,4.297 -22.039,-0.02 z"
+ style="fill:url(#linearGradient621);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path662" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath676"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path678" /></clipPath><mask
+ id="mask680"><g
+ id="g682"><g
+ clip-path="url(#clipPath676)"
+ id="g684"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path686"
+ style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath692"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path694" /></clipPath><clipPath
+ id="clipPath696"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path698" /></clipPath><clipPath
+ id="clipPath700"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path702" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient704"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.593246,0,0,-0.131058,53.686967,19.466929)"
+ spreadMethod="pad"><stop
+ id="stop706"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop708"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath710"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path712" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient714"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.593246,0,0,-0.131058,53.686967,19.466929)"
+ spreadMethod="pad"><stop
+ id="stop716"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop718"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern720"><defs
+ id="defs722"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask6"><g
+ id="g725"><g
+ clip-path="url(#clipPath700)"
+ id="g727"><g
+ id="g729"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#radialGradient704);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path731" /></g></g></g></mask></defs><g
+ id="g733" /><g
+ id="g735"><g
+ clip-path="url(#clipPath696)"
+ id="g737"><g
+ id="g739"><g
+ id="g741"><g
+ id="g743" /><g
+ mask="url(#_mask6)"
+ id="g745"><g
+ id="g747" /><g
+ id="g749"><g
+ clip-path="url(#clipPath710)"
+ id="g751"><g
+ id="g753"><path
+ d="m 81.984,13.871 c 0,-1.719 -6.312,-3.113 -14.097,-3.113 -7.785,0 -14.094,1.394 -14.094,3.113 0,1.723 6.309,3.113 14.094,3.113 7.785,0 14.097,-1.39 14.097,-3.113 z"
+ style="fill:url(#radialGradient714);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path755" /></g></g></g></g></g></g></g></g></pattern><linearGradient
+ x1="31.742188"
+ y1="37.84375"
+ x2="31.859375"
+ y2="43.824219"
+ id="linearGradient769"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,39.641505)"
+ spreadMethod="pad"><stop
+ id="stop771"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop773"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="17.246094"
+ y1="6.375"
+ x2="39.90625"
+ y2="38.875"
+ id="linearGradient781"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,39.641505)"
+ spreadMethod="pad"><stop
+ id="stop783"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop785"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="24.007812"
+ cy="32.996094"
+ r="19"
+ fx="24.007812"
+ fy="32.996094"
+ id="radialGradient791"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.755238,0,0,-0.476923,49.378279,38.321513)"
+ spreadMethod="pad"><stop
+ id="stop793"
+ style="stop-color:#555753;stop-opacity:1"
+ offset="0" /><stop
+ id="stop795"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath811"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path813" /></clipPath><mask
+ id="mask815"><g
+ id="g817"><g
+ clip-path="url(#clipPath811)"
+ id="g819"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path821"
+ style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath827"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path829" /></clipPath><clipPath
+ id="clipPath831"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path833" /></clipPath><clipPath
+ id="clipPath835"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path837" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient839"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)"
+ spreadMethod="pad"><stop
+ id="stop841"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop843"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath845"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path847" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient849"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)"
+ spreadMethod="pad"><stop
+ id="stop851"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop853"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern855"><defs
+ id="defs857"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask7"><g
+ id="g860"><g
+ clip-path="url(#clipPath835)"
+ id="g862"><g
+ id="g864"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient839);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path866" /></g></g></g></mask></defs><g
+ id="g868" /><g
+ id="g870"><g
+ clip-path="url(#clipPath831)"
+ id="g872"><g
+ id="g874"><g
+ id="g876"><g
+ id="g878" /><g
+ mask="url(#_mask7)"
+ id="g880"><g
+ id="g882" /><g
+ id="g884"><g
+ clip-path="url(#clipPath845)"
+ id="g886"><g
+ id="g888"><path
+ d="m 61.371,18.117 c 0.055,-1.328 -0.172,-1.781 -1,-2.25 L 74.84,15.07 c -0.578,0.719 -1.426,1.801 -1.195,3.059 L 61.371,18.117 z"
+ style="fill:url(#linearGradient849);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path890" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath912"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path914" /></clipPath><mask
+ id="mask916"><g
+ id="g918"><g
+ clip-path="url(#clipPath912)"
+ id="g920"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path922"
+ style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath928"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path930" /></clipPath><clipPath
+ id="clipPath932"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path934" /></clipPath><clipPath
+ id="clipPath936"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path938" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient940"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)"
+ spreadMethod="pad"><stop
+ id="stop942"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop944"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath946"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path948" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient950"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)"
+ spreadMethod="pad"><stop
+ id="stop952"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop954"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern956"><defs
+ id="defs958"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask8"><g
+ id="g961"><g
+ clip-path="url(#clipPath936)"
+ id="g963"><g
+ id="g965"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient940);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path967" /></g></g></g></mask></defs><g
+ id="g969" /><g
+ id="g971"><g
+ clip-path="url(#clipPath932)"
+ id="g973"><g
+ id="g975"><g
+ id="g977"><g
+ id="g979" /><g
+ mask="url(#_mask8)"
+ id="g981"><g
+ id="g983" /><g
+ id="g985"><g
+ clip-path="url(#clipPath946)"
+ id="g987"><g
+ id="g989"><path
+ d="m 56.492,35.277 0,-11.031 c 10.074,0.828 13.844,6.195 22.035,6.758 l 0,4.293 -22.035,-0.02 z"
+ style="fill:url(#linearGradient950);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path991" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath1005"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1007" /></clipPath><mask
+ id="mask1009"><g
+ id="g1011"><g
+ clip-path="url(#clipPath1005)"
+ id="g1013"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1015"
+ style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath1021"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1023" /></clipPath><clipPath
+ id="clipPath1025"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1027" /></clipPath><clipPath
+ id="clipPath1029"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1031" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient1033"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.593246,0,0,-0.131058,2.686967,9.266929)"
+ spreadMethod="pad"><stop
+ id="stop1035"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1037"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath1039"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1041" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient1043"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.593246,0,0,-0.131058,2.686967,9.266929)"
+ spreadMethod="pad"><stop
+ id="stop1045"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1047"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern1049"><defs
+ id="defs1051"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask9"><g
+ id="g1054"><g
+ clip-path="url(#clipPath1029)"
+ id="g1056"><g
+ id="g1058"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#radialGradient1033);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path1060" /></g></g></g></mask></defs><g
+ id="g1062" /><g
+ id="g1064"><g
+ clip-path="url(#clipPath1025)"
+ id="g1066"><g
+ id="g1068"><g
+ id="g1070"><g
+ id="g1072" /><g
+ mask="url(#_mask9)"
+ id="g1074"><g
+ id="g1076" /><g
+ id="g1078"><g
+ clip-path="url(#clipPath1039)"
+ id="g1080"><g
+ id="g1082"><path
+ d="m 30.984,3.672 c 0,-1.719 -6.312,-3.113 -14.097,-3.113 -7.785,0 -14.094,1.394 -14.094,3.113 0,1.719 6.309,3.113 14.094,3.113 7.785,0 14.097,-1.394 14.097,-3.113 z"
+ style="fill:url(#radialGradient1043);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path1084" /></g></g></g></g></g></g></g></g></pattern><linearGradient
+ x1="31.742188"
+ y1="37.84375"
+ x2="31.859375"
+ y2="43.824219"
+ id="linearGradient1098"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,29.441505)"
+ spreadMethod="pad"><stop
+ id="stop1100"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1102"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="17.246094"
+ y1="6.375"
+ x2="39.90625"
+ y2="38.875"
+ id="linearGradient1110"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,29.441505)"
+ spreadMethod="pad"><stop
+ id="stop1112"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1114"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="24.007812"
+ cy="32.996094"
+ r="19"
+ fx="24.007812"
+ fy="32.996094"
+ id="radialGradient1120"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.755238,0,0,-0.476923,-1.621721,28.121513)"
+ spreadMethod="pad"><stop
+ id="stop1122"
+ style="stop-color:#555753;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1124"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath1140"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1142" /></clipPath><mask
+ id="mask1144"><g
+ id="g1146"><g
+ clip-path="url(#clipPath1140)"
+ id="g1148"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1150"
+ style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath1156"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1158" /></clipPath><clipPath
+ id="clipPath1160"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1162" /></clipPath><clipPath
+ id="clipPath1164"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1166" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient1168"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)"
+ spreadMethod="pad"><stop
+ id="stop1170"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1172"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath1174"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1176" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient1178"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)"
+ spreadMethod="pad"><stop
+ id="stop1180"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1182"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern1184"><defs
+ id="defs1186"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask10"><g
+ id="g1189"><g
+ clip-path="url(#clipPath1164)"
+ id="g1191"><g
+ id="g1193"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient1168);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path1195" /></g></g></g></mask></defs><g
+ id="g1197" /><g
+ id="g1199"><g
+ clip-path="url(#clipPath1160)"
+ id="g1201"><g
+ id="g1203"><g
+ id="g1205"><g
+ id="g1207" /><g
+ mask="url(#_mask10)"
+ id="g1209"><g
+ id="g1211" /><g
+ id="g1213"><g
+ clip-path="url(#clipPath1174)"
+ id="g1215"><g
+ id="g1217"><path
+ d="m 10.371,7.918 c 0.055,-1.332 -0.172,-1.781 -1,-2.25 L 23.84,4.871 C 23.262,5.59 22.414,6.668 22.645,7.93 L 10.371,7.918 z"
+ style="fill:url(#linearGradient1178);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path1219" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath1241"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1243" /></clipPath><mask
+ id="mask1245"><g
+ id="g1247"><g
+ clip-path="url(#clipPath1241)"
+ id="g1249"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1251"
+ style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath1257"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1259" /></clipPath><clipPath
+ id="clipPath1261"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1263" /></clipPath><clipPath
+ id="clipPath1265"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1267" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient1269"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)"
+ spreadMethod="pad"><stop
+ id="stop1271"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1273"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath1275"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1277" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient1279"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)"
+ spreadMethod="pad"><stop
+ id="stop1281"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1283"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern1285"><defs
+ id="defs1287"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask11"><g
+ id="g1290"><g
+ clip-path="url(#clipPath1265)"
+ id="g1292"><g
+ id="g1294"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient1269);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path1296" /></g></g></g></mask></defs><g
+ id="g1298" /><g
+ id="g1300"><g
+ clip-path="url(#clipPath1261)"
+ id="g1302"><g
+ id="g1304"><g
+ id="g1306"><g
+ id="g1308" /><g
+ mask="url(#_mask11)"
+ id="g1310"><g
+ id="g1312" /><g
+ id="g1314"><g
+ clip-path="url(#clipPath1275)"
+ id="g1316"><g
+ id="g1318"><path
+ d="m 5.492,25.078 0,-11.031 c 10.074,0.828 13.844,6.195 22.035,6.754 l 0,4.297 -22.035,-0.02 z"
+ style="fill:url(#linearGradient1279);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path1320" /></g></g></g></g></g></g></g></g></pattern><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient6246"
+ xlink:href="#linearGradient6240"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ id="linearGradient6240"><stop
+ id="stop6242"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop6244"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient3063"
+ xlink:href="#linearGradient6240"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0181386,0,0,-0.99062596,-0.15727934,91.443685)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient6246-6"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ id="linearGradient6240-0"><stop
+ id="stop6242-8"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop6244-7"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient3063-5"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.60671483,0,0,-0.58167345,1.8899147,29.19821)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient4486"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.60671483,0,0,-0.58167345,52.918396,39.335412)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient4490"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.60671483,0,0,-0.58167345,62.233662,85.535023)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient4469"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.60671483,0,0,-0.58167345,62.233662,85.535023)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient4472"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.60671483,0,0,-0.58167345,52.918396,39.335412)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient4475"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.60671483,0,0,-0.58167345,1.8899147,29.19821)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient4478"
+ xlink:href="#linearGradient6240"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0181386,0,0,-0.99062596,-0.15727934,91.443685)" /><filter
+ color-interpolation-filters="sRGB"
+ id="filter3297"><feGaussianBlur
+ stdDeviation="0.26694977"
+ id="feGaussianBlur3299" /></filter><filter
+ color-interpolation-filters="sRGB"
+ id="filter3293"><feGaussianBlur
+ stdDeviation="0.355"
+ id="feGaussianBlur3295" /></filter><linearGradient
+ id="linearGradient44699"><stop
+ id="stop44701"
+ style="stop-color:#000173;stop-opacity:0.93333334"
+ offset="0" /><stop
+ id="stop44703"
+ style="stop-color:#3575f0;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44080"><stop
+ id="stop44082"
+ style="stop-color:#2c8300;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44084"
+ style="stop-color:#57aeff;stop-opacity:1"
+ offset="0.25" /><stop
+ id="stop44086"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop44088"
+ style="stop-color:#5aafff;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44090"><stop
+ id="stop44092"
+ style="stop-color:#0926bb;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44094"
+ style="stop-color:#6bb5fe;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient5790"><stop
+ id="stop5792"
+ style="stop-color:#0926bb;stop-opacity:1"
+ offset="0" /><stop
+ id="stop5794"
+ style="stop-color:#6bb5fe;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44615"><stop
+ id="stop44617"
+ style="stop-color:#2f68fa;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44619"
+ style="stop-color:#c7d5fb;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44693"><stop
+ id="stop44695"
+ style="stop-color:#3690e6;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44697"
+ style="stop-color:#d0e9ff;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44605"><stop
+ id="stop44607"
+ style="stop-color:#d0ecff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44609"
+ style="stop-color:#d7f0ff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop44611"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient5810"><stop
+ id="stop5812"
+ style="stop-color:#2f68fa;stop-opacity:1"
+ offset="0" /><stop
+ id="stop5814"
+ style="stop-color:#c7d5fb;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient2300-4"><stop
+ id="stop2302-6"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2304-2"
+ style="stop-color:#414141;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44627"><stop
+ id="stop44629"
+ style="stop-color:#fffcfb;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44633"
+ style="stop-color:#f4ad94;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44681"><stop
+ id="stop44683"
+ style="stop-color:#ff5c38;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44685"
+ style="stop-color:#fb7e65;stop-opacity:0.99607843"
+ offset="0.30397323" /><stop
+ id="stop44687"
+ style="stop-color:#cd0000;stop-opacity:0.98039216"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient2288-5"><stop
+ id="stop2290-0"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2292-6"
+ style="stop-color:#898989;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient5834"><stop
+ id="stop5836"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop5838"
+ style="stop-color:#414141;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient2318-2"><stop
+ id="stop2320-8"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2326-4"
+ style="stop-color:#373737;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop2322-7"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient2392-2"><stop
+ id="stop2394-4"
+ style="stop-color:#000000;stop-opacity:0.43298969"
+ offset="0" /><stop
+ id="stop2398-0"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient2338-6"><stop
+ id="stop2340-2"
+ style="stop-color:#545454;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2344-9"
+ style="stop-color:#545454;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient2380-9"><stop
+ id="stop2382-0"
+ style="stop-color:#838383;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2384-8"
+ style="stop-color:#767676;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3836-1"><stop
+ id="stop3838-3"
+ style="stop-color:#c90000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3844-1"
+ style="stop-color:#ff7474;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3846-1"
+ style="stop-color:#c90000;stop-opacity:1"
+ offset="0.75" /><stop
+ id="stop3840-0"
+ style="stop-color:#fa5555;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3895-3"><stop
+ id="stop3897-4"
+ style="stop-color:#930000;stop-opacity:0.50515461"
+ offset="0" /><stop
+ id="stop3899-0"
+ style="stop-color:#930000;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3924-3"><stop
+ id="stop3926-9"
+ style="stop-color:#ff6e6e;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3928-1"
+ style="stop-color:#ff7171;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3854-9"><stop
+ id="stop3856-6"
+ style="stop-color:#a00000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3860-9"
+ style="stop-color:#c90000;stop-opacity:0"
+ offset="0.75" /><stop
+ id="stop3862-3"
+ style="stop-color:#a00000;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient5207"
+ xlink:href="#linearGradient3339-4"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ id="linearGradient3339-4"><stop
+ id="stop3341-7"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3347-6"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3343-3"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="1" /></linearGradient><filter
+ color-interpolation-filters="sRGB"
+ id="filter3385-1"><feGaussianBlur
+ id="feGaussianBlur3387-7"
+ stdDeviation="0.14607691" /></filter><filter
+ color-interpolation-filters="sRGB"
+ id="filter3297-9"><feGaussianBlur
+ stdDeviation="0.26694977"
+ id="feGaussianBlur3299-7" /></filter><filter
+ color-interpolation-filters="sRGB"
+ id="filter3293-2"><feGaussianBlur
+ stdDeviation="0.355"
+ id="feGaussianBlur3295-7" /></filter><linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient5673-0"
+ xlink:href="#linearGradient44699-4"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(38.627584,1.0111154)" /><linearGradient
+ id="linearGradient44699-4"><stop
+ id="stop44701-3"
+ style="stop-color:#000173;stop-opacity:0.93333334"
+ offset="0" /><stop
+ id="stop44703-4"
+ style="stop-color:#3575f0;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient5670-6"
+ xlink:href="#linearGradient44080-3"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1396.4291,-948.41724)" /><linearGradient
+ id="linearGradient44080-3"><stop
+ id="stop44082-5"
+ style="stop-color:#2c8300;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44084-5"
+ style="stop-color:#57aeff;stop-opacity:1"
+ offset="0.25" /><stop
+ id="stop44086-1"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop44088-4"
+ style="stop-color:#5aafff;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient5667-0"
+ xlink:href="#linearGradient44090-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-408.92103,-635.92247)" /><linearGradient
+ id="linearGradient44090-0"><stop
+ id="stop44092-7"
+ style="stop-color:#0926bb;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44094-9"
+ style="stop-color:#6bb5fe;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient5664-4"
+ xlink:href="#linearGradient44090-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,574.52515,-635.92247)" /><linearGradient
+ id="linearGradient6984"><stop
+ id="stop6986"
+ style="stop-color:#0926bb;stop-opacity:1"
+ offset="0" /><stop
+ id="stop6988"
+ style="stop-color:#6bb5fe;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="-246.57739"
+ y1="958.07971"
+ x2="-248.7769"
+ y2="964.61743"
+ id="linearGradient5661-5"
+ xlink:href="#linearGradient44615-6"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(321.10111,-881.68159)" /><linearGradient
+ id="linearGradient44615-6"><stop
+ id="stop44617-5"
+ style="stop-color:#2f68fa;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44619-1"
+ style="stop-color:#c7d5fb;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="-35.566662"
+ y1="76.562927"
+ x2="-35.566662"
+ y2="84.910484"
+ id="linearGradient5658-1"
+ xlink:href="#linearGradient44693-1"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.1784451,0,0,0.9316118,126.37167,5.1827454)" /><linearGradient
+ id="linearGradient44693-1"><stop
+ id="stop44695-8"
+ style="stop-color:#3690e6;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44697-1"
+ style="stop-color:#d0e9ff;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient5655-7"
+ xlink:href="#linearGradient44605-2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.856113,-0.0637264,0.1161478,1.5603521,-422.20596,-1003.4503)" /><linearGradient
+ id="linearGradient44605-2"><stop
+ id="stop44607-0"
+ style="stop-color:#d0ecff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44609-9"
+ style="stop-color:#d7f0ff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop44611-1"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="-246.57739"
+ y1="958.07971"
+ x2="-248.7769"
+ y2="964.61743"
+ id="linearGradient5652-7"
+ xlink:href="#linearGradient44615-6"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,-155.83313,-881.68159)" /><linearGradient
+ id="linearGradient7004"><stop
+ id="stop7006"
+ style="stop-color:#2f68fa;stop-opacity:1"
+ offset="0" /><stop
+ id="stop7008"
+ style="stop-color:#c7d5fb;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="170.29684"
+ y1="219.20184"
+ x2="75.611801"
+ y2="140.29272"
+ id="linearGradient5645-3"
+ xlink:href="#linearGradient2300-4-8"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.32740907,0.15721672,0.11848357,0.24674603,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient2300-4-8"><stop
+ id="stop2302-6-8"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2304-2-7"
+ style="stop-color:#414141;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="53.60223"
+ cy="59.728882"
+ r="17.834057"
+ fx="53.60223"
+ fy="59.728882"
+ id="radialGradient5640-1"
+ xlink:href="#linearGradient44627-2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.4772178,-2.4522929,0,220.99205,-95.843466)" /><linearGradient
+ id="linearGradient44627-2"><stop
+ id="stop44629-5"
+ style="stop-color:#fffcfb;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44633-6"
+ style="stop-color:#f4ad94;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="60.126968"
+ y1="81.913818"
+ x2="60.126968"
+ y2="47.542713"
+ id="linearGradient5642-0"
+ xlink:href="#linearGradient44681-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4960409,0,0,1.4960409,-6.6306562,-46.588225)" /><linearGradient
+ id="linearGradient44681-0"><stop
+ id="stop44683-0"
+ style="stop-color:#ff5c38;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44685-6"
+ style="stop-color:#fb7e65;stop-opacity:0.99607843"
+ offset="0.30397323" /><stop
+ id="stop44687-1"
+ style="stop-color:#cd0000;stop-opacity:0.98039216"
+ offset="1" /></linearGradient><linearGradient
+ x1="81.846077"
+ y1="136.15834"
+ x2="168.78268"
+ y2="53.432808"
+ id="linearGradient5637-0"
+ xlink:href="#linearGradient2288-5-4"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.19109066,0.09175867,0.20300624,0.42276738,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient2288-5-4"><stop
+ id="stop2290-0-2"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2292-6-5"
+ style="stop-color:#898989;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="366.57416"
+ y1="39.730881"
+ x2="168.78265"
+ y2="53.4328"
+ id="linearGradient5634-9"
+ xlink:href="#linearGradient2300-4-8"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.19109066,0.09175867,0.20300624,0.42276738,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient7028"><stop
+ id="stop7030"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop7032"
+ style="stop-color:#414141;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="263.96207"
+ y1="41.317993"
+ x2="24.068567"
+ y2="220.45784"
+ id="linearGradient5631-1"
+ xlink:href="#linearGradient2318-2-2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2973758,0.14279496,0.13044969,0.27166614,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient2318-2-2"><stop
+ id="stop2320-8-2"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2326-4-2"
+ style="stop-color:#373737;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop2322-7-5"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="136.33336"
+ y1="113.51798"
+ x2="173.3575"
+ y2="164.5226"
+ id="linearGradient5628-3"
+ xlink:href="#linearGradient2392-2-4"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2973758,0.14279496,0.13044969,0.27166614,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient2392-2-4"><stop
+ id="stop2394-4-5"
+ style="stop-color:#000000;stop-opacity:0.43298969"
+ offset="0" /><stop
+ id="stop2398-0-5"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" /></linearGradient><radialGradient
+ cx="180.07829"
+ cy="176.38765"
+ r="53.050598"
+ fx="180.07837"
+ fy="177.18346"
+ id="radialGradient5625-6"
+ xlink:href="#linearGradient2338-6-6"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3015622,0.14480526,0.12863859,0.26789468,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient2338-6-6"><stop
+ id="stop2340-2-6"
+ style="stop-color:#545454;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2344-9-3"
+ style="stop-color:#545454;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ x1="219.53198"
+ y1="120.31494"
+ x2="211.80861"
+ y2="127.47651"
+ id="linearGradient5622-2"
+ xlink:href="#linearGradient2380-9-7"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3015622,0.14480526,0.12863859,0.26789468,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient2380-9-7"><stop
+ id="stop2382-0-1"
+ style="stop-color:#838383;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2384-8-9"
+ style="stop-color:#767676;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ x1="144.45633"
+ y1="98.692307"
+ x2="155.86334"
+ y2="161.02338"
+ id="linearGradient5618-0"
+ xlink:href="#linearGradient3836-1-6"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.17353113,0.0833269,0.22354827,0.46554701,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient3836-1-6"><stop
+ id="stop3838-3-7"
+ style="stop-color:#c90000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3844-1-7"
+ style="stop-color:#ff7474;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3846-1-8"
+ style="stop-color:#c90000;stop-opacity:1"
+ offset="0.75" /><stop
+ id="stop3840-0-7"
+ style="stop-color:#fa5555;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="190.18034"
+ y1="96.076317"
+ x2="156.40744"
+ y2="143.56932"
+ id="linearGradient5615-9"
+ xlink:href="#linearGradient3895-3-4"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.14979776,0.07193037,0.25896642,0.53930685,115.52106,-35.084377)" /><linearGradient
+ id="linearGradient3895-3-4"><stop
+ id="stop3897-4-0"
+ style="stop-color:#930000;stop-opacity:0.50515461"
+ offset="0" /><stop
+ id="stop3899-0-9"
+ style="stop-color:#930000;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ x1="190.18034"
+ y1="96.076317"
+ x2="156.40744"
+ y2="143.56932"
+ id="linearGradient5612-8"
+ xlink:href="#linearGradient3924-3-5"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.14979776,0.07193037,0.25896642,0.53930685,115.19546,-34.989862)" /><linearGradient
+ id="linearGradient3924-3-5"><stop
+ id="stop3926-9-6"
+ style="stop-color:#ff6e6e;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3928-1-9"
+ style="stop-color:#ff7171;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ x1="137.93805"
+ y1="118.24712"
+ x2="183.56607"
+ y2="110.30299"
+ id="linearGradient5609-6"
+ xlink:href="#linearGradient3854-9-1"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.17353113,0.0833269,0.22354827,0.46554701,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient3854-9-1"><stop
+ id="stop3856-6-2"
+ style="stop-color:#a00000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3860-9-0"
+ style="stop-color:#c90000;stop-opacity:0"
+ offset="0.75" /><stop
+ id="stop3862-3-8"
+ style="stop-color:#a00000;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient5207-5"
+ xlink:href="#linearGradient3339-4-4"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ id="linearGradient3339-4-4"><stop
+ id="stop3341-7-3"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3347-6-0"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3343-3-2"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="1" /></linearGradient><filter
+ color-interpolation-filters="sRGB"
+ id="filter3385-1-2"><feGaussianBlur
+ id="feGaussianBlur3387-7-8"
+ stdDeviation="0.14607691" /></filter><filter
+ color-interpolation-filters="sRGB"
+ id="filter3297-4"><feGaussianBlur
+ stdDeviation="0.26694977"
+ id="feGaussianBlur3299-77" /></filter><filter
+ color-interpolation-filters="sRGB"
+ id="filter3293-5"><feGaussianBlur
+ stdDeviation="0.355"
+ id="feGaussianBlur3295-8" /></filter><linearGradient
+ id="linearGradient3197"><stop
+ id="stop3199"
+ style="stop-color:#002f32;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3201"
+ style="stop-color:#045b04;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3205"><stop
+ id="stop3207"
+ style="stop-color:#2c8300;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3215"
+ style="stop-color:#3db800;stop-opacity:1"
+ offset="0.25" /><stop
+ id="stop3213"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3209"
+ style="stop-color:#69cf35;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3219"><stop
+ id="stop3221"
+ style="stop-color:#0e7309;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3223"
+ style="stop-color:#70d13e;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient7410"><stop
+ id="stop7412"
+ style="stop-color:#0e7309;stop-opacity:1"
+ offset="0" /><stop
+ id="stop7414"
+ style="stop-color:#70d13e;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3261"><stop
+ id="stop3263"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="0" /><stop
+ id="stop3269"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="0.5" /><stop
+ id="stop3265"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3327"><stop
+ id="stop3329"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3335"
+ style="stop-color:#fdd99a;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3331"
+ style="stop-color:#c39539;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3319"><stop
+ id="stop3321"
+ style="stop-color:#7d491f;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44679"
+ style="stop-color:#87570f;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3323"
+ style="stop-color:#926600;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3339-4-5"><stop
+ id="stop3341-7-9"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3347-6-7"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3343-3-5"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="1" /></linearGradient><filter
+ color-interpolation-filters="sRGB"
+ id="filter3385-1-3"><feGaussianBlur
+ id="feGaussianBlur3387-7-8-5"
+ stdDeviation="0.14607691" /></filter><linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient7597"
+ xlink:href="#linearGradient3197"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-200.71307,-35.857716)" /><radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient7599"
+ xlink:href="#linearGradient3205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient7601"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient7603"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient7605"
+ xlink:href="#linearGradient3261"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><radialGradient
+ cx="53.60223"
+ cy="59.728882"
+ r="17.834057"
+ fx="53.60223"
+ fy="59.728882"
+ id="radialGradient7607"
+ xlink:href="#linearGradient3327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient
+ x1="41.945538"
+ y1="46.665127"
+ x2="41.945538"
+ y2="82.333244"
+ id="linearGradient7609"
+ xlink:href="#linearGradient3319"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient7611"
+ xlink:href="#linearGradient3339-4-5"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient7647"
+ xlink:href="#linearGradient3197"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-200.71307,-35.857716)" /><radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient7649"
+ xlink:href="#linearGradient3205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient7651"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient7653"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient7655"
+ xlink:href="#linearGradient3261"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><radialGradient
+ cx="53.60223"
+ cy="59.728882"
+ r="17.834057"
+ fx="53.60223"
+ fy="59.728882"
+ id="radialGradient7657"
+ xlink:href="#linearGradient3327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient
+ x1="41.945538"
+ y1="46.665127"
+ x2="41.945538"
+ y2="82.333244"
+ id="linearGradient7659"
+ xlink:href="#linearGradient3319"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient7661"
+ xlink:href="#linearGradient3339-4-5"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient7697"
+ xlink:href="#linearGradient3197"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-200.71307,-35.857716)" /><radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient7699"
+ xlink:href="#linearGradient3205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient7701"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient7703"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient7705"
+ xlink:href="#linearGradient3261"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><radialGradient
+ cx="53.60223"
+ cy="59.728882"
+ r="17.834057"
+ fx="53.60223"
+ fy="59.728882"
+ id="radialGradient7707"
+ xlink:href="#linearGradient3327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient
+ x1="41.945538"
+ y1="46.665127"
+ x2="41.945538"
+ y2="82.333244"
+ id="linearGradient7709"
+ xlink:href="#linearGradient3319"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient7711"
+ xlink:href="#linearGradient3339-4-5"
+ gradientUnits="userSpaceOnUse" /></defs><g
+ transform="matrix(1.25,0,0,-1.25,0,114.30188)"
+ id="g10"><g
+ id="g14"><g
+ id="g16" /><g
+ mask="url(#mask22)"
+ id="g30"><g
+ id="g32" /><g
+ id="g99"><g
+ clip-path="url(#clipPath34)"
+ id="g101"><g
+ id="g103"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path105"
+ style="fill:url(#pattern62);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ id="g107"><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g109"><path
+ d="m 14.551,35.969 c 0,0 1.234,4.996 -3.903,5.043 -2.46,0.023 -1.957,4.086 -1.957,4.086 l 31.227,-0.036 c 0,0 0.422,-3.941 -2.047,-3.988 -5.051,-0.094 -3.859,-5.168 -3.859,-5.168 l -19.461,0.063 z"
+ id="path117"
+ style="fill:url(#linearGradient111);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g
+ id="g119"><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g121"><path
+ d="m 4.949,3.52 38.598,0 c 2.047,0 3.543,1.445 3.543,3.671 l 0.012,26.528 c 0,1.711 -0.536,2.242 -2.063,2.242 L 3.574,35.941 C 2.383,35.91 1.531,35.441 1.516,33.895 L 1.531,7 c 0,-1.793 1.559,-3.48 3.418,-3.48 z"
+ id="path129"
+ style="fill:url(#linearGradient123);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g
+ id="g131"><path
+ d="m 5.574,83.848 37.453,0 0,-23.277 -37.453,0 0,23.277 z"
+ id="path139"
+ style="fill:url(#radialGradient133);fill-opacity:1;fill-rule:evenodd;stroke:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g141"><path
+ d="m 5.574,7.594 37.453,0 0,23.277 -37.453,0 0,-23.277 z"
+ id="path143"
+ style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g145"><path
+ d="m 4.934,4.398 c -1.325,0 -2.532,1.309 -2.532,2.594 l 0,26.918 c 0.008,0.613 0.149,0.801 0.286,0.918 0.132,0.113 0.425,0.203 0.886,0.223 l 0.031,0 41.442,0.031 c 0.66,0 0.867,-0.102 0.949,-0.191 0.082,-0.086 0.219,-0.407 0.219,-1.168 l 0,-26.543 c 0,-1.828 -1.024,-2.782 -2.656,-2.782 l -38.625,0 z"
+ id="path147"
+ style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ id="g149"><g
+ id="g151" /><g
+ mask="url(#mask157)"
+ id="g165"><g
+ id="g167" /><g
+ id="g234"><g
+ clip-path="url(#clipPath169)"
+ id="g236"><g
+ id="g238"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path240"
+ style="fill:url(#pattern197);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g242"><path
+ d="m 10.113,42.004 c 6.789,0.004 28.141,0 28.141,0"
+ id="path244"
+ style="fill:none;stroke:#8d8d8f;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.43902402;stroke-dasharray:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g246"><path
+ d="m 9.766,43.027 c 6.789,0 29.074,0 29.074,0"
+ id="path248"
+ style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ id="g250"><g
+ id="g252" /><g
+ mask="url(#mask258)"
+ id="g266"><g
+ id="g268" /><g
+ id="g335"><g
+ clip-path="url(#clipPath270)"
+ id="g337"><g
+ id="g339"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path341"
+ style="fill:url(#pattern298);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ id="g343"><g
+ id="g345" /><g
+ mask="url(#mask351)"
+ id="g359"><g
+ id="g361" /><g
+ id="g428"><g
+ clip-path="url(#clipPath363)"
+ id="g430"><g
+ id="g432"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path434"
+ style="fill:url(#pattern391);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ id="g436"><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g438"><path
+ d="m 70.906,27.371 c 0,0 0.746,3.024 -2.359,3.051 -1.492,0.016 -1.188,2.473 -1.188,2.473 l 18.903,-0.02 c 0,0 0.254,-2.387 -1.239,-2.414 -3.058,-0.055 -2.335,-3.129 -2.335,-3.129 l -11.782,0.039 z"
+ id="path446"
+ style="fill:url(#linearGradient440);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g
+ id="g448"><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g450"><path
+ d="m 65.094,7.73 23.363,0 c 1.242,0 2.145,0.875 2.145,2.223 l 0.007,16.055 c 0,1.035 -0.324,1.359 -1.246,1.359 L 64.266,27.355 C 63.543,27.336 63.027,27.051 63.02,26.117 L 63.027,9.84 c 0,-1.09 0.942,-2.11 2.067,-2.11 z"
+ id="path458"
+ style="fill:url(#linearGradient452);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g
+ id="g460"><path
+ d="m 65.473,81.246 22.672,0 0,-14.09 -22.672,0 0,14.09 z"
+ id="path468"
+ style="fill:url(#radialGradient462);fill-opacity:1;fill-rule:evenodd;stroke:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g470"><path
+ d="m 65.473,10.195 22.672,0 0,14.09 -22.672,0 0,-14.09 z"
+ id="path472"
+ style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g474"><path
+ d="m 65.086,8.262 c -0.801,0 -1.531,0.793 -1.531,1.57 l 0,16.293 c 0.004,0.371 0.09,0.484 0.172,0.555 0.082,0.07 0.257,0.125 0.535,0.136 l 0.019,0 25.086,0.016 c 0.399,0 0.524,-0.059 0.574,-0.113 0.047,-0.051 0.133,-0.246 0.133,-0.707 l 0,-16.067 c 0,-1.105 -0.621,-1.683 -1.609,-1.683 l -23.379,0 z"
+ id="path476"
+ style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ id="g478"><g
+ id="g480" /><g
+ mask="url(#mask486)"
+ id="g494"><g
+ id="g496" /><g
+ id="g563"><g
+ clip-path="url(#clipPath498)"
+ id="g565"><g
+ id="g567"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path569"
+ style="fill:url(#pattern526);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g571"><path
+ d="m 68.223,31.023 c 4.109,0.004 17.031,0 17.031,0"
+ id="path573"
+ style="fill:none;stroke:#8d8d8f;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.43902402;stroke-dasharray:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g575"><path
+ d="m 68.012,31.641 c 4.109,0.004 17.597,0 17.597,0"
+ id="path577"
+ style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ id="g579"><g
+ id="g581" /><g
+ mask="url(#mask587)"
+ id="g595"><g
+ id="g597" /><g
+ id="g664"><g
+ clip-path="url(#clipPath599)"
+ id="g666"><g
+ id="g668"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path670"
+ style="fill:url(#pattern627);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ id="g672"><g
+ id="g674" /><g
+ mask="url(#mask680)"
+ id="g688"><g
+ id="g690" /><g
+ id="g757"><g
+ clip-path="url(#clipPath692)"
+ id="g759"><g
+ id="g761"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path763"
+ style="fill:url(#pattern720);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ id="g765"><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g767"><path
+ d="m 61.609,73.57 c 0,0 0.743,3.024 -2.363,3.055 -1.488,0.012 -1.184,2.469 -1.184,2.469 l 18.899,-0.016 c 0,0 0.258,-2.387 -1.238,-2.418 -3.059,-0.055 -2.336,-3.129 -2.336,-3.129 L 61.609,73.57 z"
+ id="path775"
+ style="fill:url(#linearGradient769);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g
+ id="g777"><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g779"><path
+ d="m 55.797,53.93 23.359,0 c 1.242,0 2.145,0.875 2.145,2.222 l 0.008,16.055 c 0,1.039 -0.325,1.359 -1.247,1.359 L 54.965,73.555 c -0.723,-0.02 -1.238,-0.305 -1.246,-1.239 l 0.008,-16.277 c 0,-1.09 0.945,-2.109 2.07,-2.109 z"
+ id="path787"
+ style="fill:url(#linearGradient781);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g
+ id="g789"><path
+ d="m 56.172,35.047 22.672,0 0,-14.094 -22.672,0 0,14.094 z"
+ id="path797"
+ style="fill:url(#radialGradient791);fill-opacity:1;fill-rule:evenodd;stroke:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g799"><path
+ d="m 56.172,56.395 22.672,0 0,14.094 -22.672,0 0,-14.094 z"
+ id="path801"
+ style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g803"><path
+ d="m 55.785,54.461 c -0.801,0 -1.531,0.793 -1.531,1.57 l 0,16.293 c 0.004,0.371 0.09,0.485 0.172,0.555 0.082,0.07 0.258,0.125 0.539,0.137 l 0.019,0 25.082,0.019 c 0.399,0 0.524,-0.062 0.575,-0.117 0.047,-0.051 0.132,-0.246 0.132,-0.707 l 0,-16.066 c 0,-1.106 -0.617,-1.684 -1.609,-1.684 l -23.379,0 z"
+ id="path805"
+ style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ id="g807"><g
+ id="g809" /><g
+ mask="url(#mask815)"
+ id="g823"><g
+ id="g825" /><g
+ id="g892"><g
+ clip-path="url(#clipPath827)"
+ id="g894"><g
+ id="g896"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path898"
+ style="fill:url(#pattern855);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g900"><path
+ d="m 58.922,77.227 c 4.109,0 17.031,0 17.031,0"
+ id="path902"
+ style="fill:none;stroke:#8d8d8f;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.43902402;stroke-dasharray:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g904"><path
+ d="m 58.711,77.844 c 4.109,0 17.598,0 17.598,0"
+ id="path906"
+ style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ id="g908"><g
+ id="g910" /><g
+ mask="url(#mask916)"
+ id="g924"><g
+ id="g926" /><g
+ id="g993"><g
+ clip-path="url(#clipPath928)"
+ id="g995"><g
+ id="g997"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path999"
+ style="fill:url(#pattern956);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ id="g1001"><g
+ id="g1003" /><g
+ mask="url(#mask1009)"
+ id="g1017"><g
+ id="g1019" /><g
+ id="g1086"><g
+ clip-path="url(#clipPath1021)"
+ id="g1088"><g
+ id="g1090"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1092"
+ style="fill:url(#pattern1049);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ id="g1094"><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g1096"><path
+ d="m 10.609,83.77 c 0,0 0.743,3.023 -2.363,3.054 -1.488,0.012 -1.184,2.473 -1.184,2.473 l 18.899,-0.02 c 0,0 0.258,-2.386 -1.238,-2.414 -3.059,-0.058 -2.336,-3.129 -2.336,-3.129 L 10.609,83.77 z"
+ id="path1104"
+ style="fill:url(#linearGradient1098);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g
+ id="g1106"><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g1108"><path
+ d="m 4.797,64.133 23.359,0 c 1.242,0 2.145,0.875 2.145,2.219 l 0.008,16.054 c 0,1.039 -0.325,1.36 -1.247,1.36 L 3.965,83.754 C 3.242,83.734 2.727,83.449 2.719,82.516 L 2.727,66.238 c 0,-1.086 0.945,-2.105 2.07,-2.105 z"
+ id="path1116"
+ style="fill:url(#linearGradient1110);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g
+ id="g1118"><path
+ d="m 5.172,24.844 22.672,0 0,-14.09 -22.672,0 0,14.09 z"
+ id="path1126"
+ style="fill:url(#radialGradient1120);fill-opacity:1;fill-rule:evenodd;stroke:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g1128"><path
+ d="m 5.172,66.598 22.672,0 0,14.09 -22.672,0 0,-14.09 z"
+ id="path1130"
+ style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g1132"><path
+ d="m 4.785,64.66 c -0.801,0 -1.531,0.793 -1.531,1.57 l 0,16.297 c 0.004,0.368 0.09,0.485 0.172,0.555 0.082,0.066 0.258,0.121 0.539,0.133 l 0.019,0 25.082,0.019 c 0.399,0 0.524,-0.062 0.575,-0.117 0.047,-0.051 0.132,-0.242 0.132,-0.707 l 0,-16.062 c 0,-1.11 -0.617,-1.688 -1.609,-1.688 l -23.379,0 z"
+ id="path1134"
+ style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ id="g1136"><g
+ id="g1138" /><g
+ mask="url(#mask1144)"
+ id="g1152"><g
+ id="g1154" /><g
+ id="g1221"><g
+ clip-path="url(#clipPath1156)"
+ id="g1223"><g
+ id="g1225"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1227"
+ style="fill:url(#pattern1184);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g1229"><path
+ d="m 7.922,87.426 c 4.109,0 17.031,0 17.031,0"
+ id="path1231"
+ style="fill:none;stroke:#8d8d8f;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.43902402;stroke-dasharray:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g1233"><path
+ d="m 7.711,88.043 c 4.109,0 17.598,0 17.598,0"
+ id="path1235"
+ style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ id="g1237"><g
+ id="g1239" /><g
+ mask="url(#mask1245)"
+ id="g1253"><g
+ id="g1255" /><g
+ id="g1322"><g
+ clip-path="url(#clipPath1257)"
+ id="g1324"><g
+ id="g1326"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1328"
+ style="fill:url(#pattern1285);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g1330"><path
+ d="m 62.199,17.5 -14.301,-6.699 1.704,6 -1.903,4.699 14.5,-4 z"
+ id="path1332"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g1334"><path
+ d="m 56.102,52.199 -4.903,-17.898 -3.801,5.597 -6,1.602 14.704,10.699 z"
+ id="path1336"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g1338"><path
+ d="M 16.801,63 12.602,46.301 17.801,49.699 24.398,47.398 16.801,63 z"
+ id="path1340"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><path
+ d="m 5.9755084,83.487599 0,-17.839038 C 22.718232,66.990115 28.98411,75.666186 42.596557,76.572642 l 0,6.946035 -36.6210486,-0.03108 z"
+ id="path4073"
+ style="opacity:0.65;fill:url(#linearGradient4478);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path
+ d="m 5.5444789,24.526574 0,-10.474685 c 9.9770891,0.787731 13.7109621,5.882126 21.8227001,6.414376 l 0,4.078557 -21.8227001,-0.01825 z"
+ id="path4073-3"
+ style="opacity:0.65;fill:url(#linearGradient4475);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path
+ d="m 56.57296,34.663776 0,-10.474685 c 9.97709,0.787731 13.710963,5.882126 21.822701,6.414376 l 0,4.078557 -21.822701,-0.01825 z"
+ id="path4484"
+ style="opacity:0.65;fill:url(#linearGradient4472);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path
+ d="m 65.888226,80.863387 0,-10.474685 c 9.97709,0.787731 13.710963,5.882126 21.822701,6.414376 l 0,4.078557 -21.822701,-0.01825 z"
+ id="path4488"
+ style="opacity:0.65;fill:url(#linearGradient4469);fill-opacity:1;fill-rule:evenodd;stroke:none" /><g
+ transform="matrix(0.17337752,0,0,-0.17337752,63.186972,86.825638)"
+ id="g5712"><path
+ d="m 83.554544,24.461435 c -14.71669,0 -26.69498,11.97829 -26.69498,26.69498 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.694966,-11.97829 26.694966,-26.69498 0,-14.71669 -11.978286,-26.69498 -26.694966,-26.69498 z"
+ id="path44010"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297-9)" /><path
+ d="m 83.471334,61.729865 c -21.63445,0 -39.1875,17.34747 -39.1875,38.750005 l 0,6.125 c 0,6.05287 6.27536,18.75004 28.90625,18.75004 l 20.53125,0 c 22.630376,0 28.937496,-12.07968 28.937496,-18.75004 l 0,-6.125 c 0,-21.402545 -17.55305,-38.750005 -39.187496,-38.750005 z"
+ id="path44012"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293-2)" /><path
+ d="m 82.721334,60.479865 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125005 c 0,6.05287 6.27536,18.75004 28.90625,18.75004 l 20.53125,0 c 22.630376,0 28.937496,-12.07968 28.937496,-18.75004 l 0,-6.125005 c 0,-21.40254 -17.55305,-38.75 -39.187496,-38.75 z"
+ id="path44014"
+ style="fill:url(#linearGradient5673-0);fill-opacity:1;stroke:none" /><path
+ d="m 82.721334,62.640575 c -20.11022,0 -36.4266,15.9074 -36.4266,35.53322 l 0,5.616555 c 0,5.55039 5.83324,17.19346 26.8697,17.19346 l 19.08475,0 c 21.035986,0 26.898746,-11.07683 26.898746,-17.19346 l 0,-5.616555 c 0,-19.62582 -16.31638,-35.53322 -36.426596,-35.53322 z"
+ id="path44016"
+ style="fill:url(#radialGradient5670-6);fill-opacity:1;stroke:none" /><path
+ d="m 100.20776,69.951755 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.652675"
+ id="path44018"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient5667-0);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
+ d="m 65.396354,69.951755 c -8.46364,9.0621 -14.91528,24.09751 -16.80551,38.652675"
+ id="path44020"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient5664-4);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
+ d="m 76.029544,74.153135 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z"
+ id="path44022"
+ style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5661-5);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
+ d="m 82.802063,84.286357 -6.375115,-8.729195 12.750228,0 -6.375113,8.729195 z"
+ id="path44024"
+ style="fill:url(#linearGradient5658-1);fill-opacity:1;stroke:none" /><path
+ d="m 66.167774,68.733775 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z"
+ id="path44028"
+ style="fill:url(#radialGradient5655-7);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path
+ d="m 89.238444,74.153135 c 2.3027,1.97418 4.96223,3.5307 3.72122,8.28271 5.66073,-1.14662 9.949706,-8.89011 6.36208,-14.40472 l -10.0833,6.12201 z"
+ id="path44621"
+ style="fill:#9dcfff;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5652-7);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
+ d="M 94.866576,3.8320402 125.6365,30.998333 84.545268,42.990242 53.315632,16.353847 94.866576,3.8320402 z"
+ id="path2368"
+ style="fill:url(#linearGradient5645-3);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path
+ d="m 108.48254,49.905192 a 25.680481,25.680481 0 1 1 -51.360957,0 25.680481,25.680481 0 1 1 51.360957,0 z"
+ id="path44030"
+ style="fill:url(#radialGradient5640-1);fill-opacity:1;stroke:url(#linearGradient5642-0);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /><path
+ d="M 95.339339,2.2381767 126.15042,28.890606 125.62204,31.068045 94.816591,4.063144 95.339339,2.2381767 z"
+ id="path1526"
+ style="fill:url(#linearGradient5637-0);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path
+ d="M 95.339339,2.2381767 53.897375,14.26818 53.368996,16.44562 94.816591,4.063144 95.339339,2.2381767 z"
+ id="path2296"
+ style="fill:url(#linearGradient5634-9);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path
+ d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z"
+ id="path2308"
+ style="fill:url(#linearGradient5631-1);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path
+ d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z"
+ id="path2390"
+ style="fill:url(#linearGradient5628-3);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path
+ d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z"
+ id="path2334"
+ style="fill:url(#radialGradient5625-6);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path
+ d="m 107.19478,29.038759 c 0,0 -0.0232,-2.96189 -2.87177,-5.616365 -2.84859,-2.654477 -14.259844,-12.214967 -33.764071,-5.122837 -1.779252,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660762 -4.034895,9.807253 -4.034895,9.807253 0,0 14.650436,1.009743 20.024613,13.294259 12.141744,-9.677712 23.688825,-4.204767 23.688825,-4.204767 l -0.74633,-10.659294 z"
+ id="path2378"
+ style="fill:url(#linearGradient5622-2);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path
+ d="m 64.162631,30.18291 c 0.149332,0.01059 14.629755,1.063358 19.976289,13.284672 11.922076,-9.502622 23.13746,-4.443379 23.5442,-4.255555 l 0.0324,0.45444 c 0,0 -11.547076,-5.472945 -23.688824,4.204771 C 78.652529,31.586719 64.002093,30.576979 64.002093,30.576979 c 0,0 0.15161,-0.371808 0.160545,-0.394069 z"
+ id="path2346"
+ style="fill:#4a4a4a;fill-opacity:1;fill-rule:evenodd;stroke:none" /><path
+ d="m 113.60446,18.082424 -1.90168,-1.445041 c 3.80497,-1.738734 7.43718,0.715259 6.56708,4.719089 l -1.22689,5.969541 c 0.0432,0.587925 0.46457,1.781249 0.0473,2.502842 -0.10735,1.184875 -1.3604,1.258502 -1.25176,2.164778 0.0432,0.587928 1.47788,1.196989 1.72301,2.387496 1.28414,1.824459 3.37872,5.88301 5.33931,7.295208 1.50561,0.927498 1.91686,1.943279 3.66098,1.18229 0,0 0.6432,-0.265733 0.69931,0.363737 -4.78339,3.695975 -10.00982,-9.009253 -9.00872,-5.467637 6.68202,14.27976 8.21084,11.272157 8.55487,11.806497 0.34402,0.534341 -0.051,0.986356 -0.051,0.986356 l -0.52871,-0.0085 0.31272,0.287043 -0.61385,0.906853 -1.43837,-0.446058 1.1172,0.687721 -0.50866,0.94379 -0.9153,-0.08514 0.59413,0.3268 -0.11363,0.491771 -0.88399,0.162157 0.27578,0.392223 -0.39504,0.452019 -0.6965,-0.539975 0.48614,0.466097 -0.75596,0.975096 -1.02048,-0.122078 0.23885,0.497407 -1.04019,1.111575 -1.12285,-0.335247 c 0,0 -6.11605,-12.190603 -6.8614,-16.29223 -0.74535,-4.101625 0.96815,-7.63512 0.96815,-7.63512 0,0 1.05742,0.01691 0.30676,-1.546372 -1.12002,-0.511482 -0.42667,-1.981163 -0.26766,-3.106818 0.15902,-1.125658 1.60584,-1.208306 1.60584,-1.208306 -0.003,0.176234 0.87053,-5.232949 1.07604,-6.640612 0.20551,-1.407664 -1.17557,-3.094485 -2.97083,-2.199306 z"
+ id="path2312"
+ style="fill:url(#linearGradient5618-0);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path
+ d="m 115.91213,31.697338 c -0.0283,0.09625 -0.0898,0.176977 -0.0753,0.298474 0.004,0.05087 0.0627,0.104062 0.0857,0.155615 -0.22808,0.653732 -0.85238,4.783698 1.5573,9.275224 2.58485,5.743692 6.17379,11.446673 6.67497,12.239195 l -0.1105,0.02029 0.0473,0.07568 -0.0838,0.0075 c -1.74796,-2.671528 -5.72681,-9.566492 -7.26492,-13.103586 -1.77943,-4.092008 -1.17869,-7.872147 -1.17869,-7.872147 0,0 0.0503,-0.585045 0.0905,-0.972506 l 0.25759,-0.123687 z m -0.53294,0.255905 c -0.0271,0.148082 -0.031,0.106964 -0.0618,0.281061 -0.77301,5.472219 0.0637,7.784838 0.11098,7.947636 1.94994,4.370678 4.95692,10.04966 7.46633,15.116404 l -0.0945,0.121887 -0.0483,-0.0096 c -0.5523,-1.068673 -6.26702,-12.131795 -7.3696,-14.550761 -1.1561,-2.536393 -0.37181,-8.172154 -0.37181,-8.172154 0,0 0.0816,-0.42384 0.12,-0.615067 l 0.2487,-0.119421 z m -0.39081,0.187665 c -0.0306,0.130484 -0.0222,0.09744 -0.0568,0.245885 -0.98219,4.521543 -1.12277,6.100908 -0.27012,8.906683 l 6.93973,14.975782 -0.16129,0.164884 c -0.37775,-0.7712 -5.57624,-11.39103 -6.96106,-15.020189 -1.43567,-3.762422 0.19657,-8.991591 0.19657,-8.991591 l 0.0199,-0.140706 0.29311,-0.140748 z m 0.99844,0.121722 c 0.0529,0.08014 0.0814,0.164318 0.16349,0.249406 -0.0109,0.10155 -0.41901,4.037563 1.62811,7.601687 3.30572,6.554234 5.62206,9.753525 6.88943,11.229006 l -0.17979,-0.05576 0.29245,0.17655 c 0.31865,0.362827 0.53553,0.579229 0.70221,0.733969 l -0.10906,0.205391 c -3.0155,-2.788048 -7.67376,-11.678343 -8.65681,-13.976383 -0.93689,-2.190161 -0.78502,-5.120942 -0.73003,-6.163868 z m 0.17663,0.254022 c 0.0928,0.0955 0.20817,0.19957 0.32125,0.30481 -0.0584,0.327528 -0.008,2.619958 0.65763,4.351427 3.59805,8.221928 7.67344,12.549433 9.17238,13.980214 l -0.0949,0.143916 c -5.65706,-5.243362 -8.61552,-12.638435 -9.23491,-13.928329 -0.62085,-1.292946 -0.81735,-4.779678 -0.8215,-4.852038 z m 0.42111,0.398955 c 0.0105,0.0099 0.0153,0.02121 0.026,0.03126 0.54782,2.496948 1.35363,3.685882 1.84436,4.273434 0.003,0.0777 0.0112,0.16213 0.0562,0.344646 -0.22166,-0.32497 -0.32388,-0.389714 -0.33083,-0.256486 -1.15972,-2.095324 -1.45557,-3.836954 -1.59566,-4.392858 z"
+ id="path3870"
+ style="fill:url(#linearGradient5615-9);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path
+ d="m 115.85352,31.663647 c -0.0283,0.09625 -0.0898,0.176979 -0.0753,0.298476 0.0136,0.184351 0.17979,0.373322 0.38738,0.579103 0.0136,0.06266 0.023,0.09735 0.037,0.168058 0.54619,2.757078 1.41267,3.989248 1.9272,4.605283 0.003,0.09157 -0.0166,0.121374 0.064,0.406472 0.19472,0.41613 0.33888,0.683193 0.52495,1.070479 -0.13062,-0.153536 -0.32065,-0.428383 -0.67134,-1.011121 -1.52995,-2.542366 -1.77339,-5.051088 -1.89601,-5.177698 -0.0955,-0.263292 -0.0761,2.732998 0.66584,4.664456 3.66253,8.369271 7.8511,12.742461 9.28077,14.092121 l -0.0949,0.143913 c -5.73254,-5.249092 -8.71969,-12.741574 -9.34329,-14.040234 -0.62731,-1.30638 -0.82968,-4.891829 -0.82968,-4.891832 0,0 -0.45066,4.026286 1.62315,7.636865 4.45297,8.828902 7.13324,11.594718 7.83436,12.218056 l -0.11332,0.196508 C 122.164,49.96029 117.3874,40.848354 116.39171,38.520764 c -1.00935,-2.35954 -0.76537,-5.787484 -0.7283,-6.547252 -0.12263,-0.126609 -1.15961,4.606322 1.49125,9.547401 2.58485,5.743694 6.1738,11.446675 6.67498,12.239197 l -0.1105,0.02029 0.27578,0.392223 -0.0764,0.09133 c -1.6443,-2.454711 -5.91251,-9.85128 -7.50091,-13.503989 -1.77942,-4.092007 -1.17868,-7.872149 -1.17869,-7.872149 0,0 0.0503,-0.585043 0.0905,-0.972507 l 0.52406,-0.251641 z m -0.7994,0.383859 c -0.0271,0.148081 -0.031,0.106966 -0.0618,0.281063 -0.77301,5.472217 0.0637,7.784832 0.11099,7.947633 1.96639,4.407561 5.0083,10.150784 7.5303,15.249641 l -0.20679,-0.02093 c -0.5523,-1.068673 -6.26703,-12.131795 -7.3696,-14.550762 -1.15611,-2.53639 -0.37182,-8.172152 -0.37182,-8.172152 0,0 0.0816,-0.423842 0.12001,-0.615066 l 0.2487,-0.119424 z m -0.39082,0.187664 c -0.0306,0.130488 -0.0222,0.09744 -0.0568,0.245888 -0.98219,4.521544 -1.12277,6.100905 -0.27013,8.906678 l 6.98665,15.073486 -0.15702,0.17377 c -0.29822,-0.608735 -5.61583,-11.467249 -7.01224,-15.126773 -1.43567,-3.762428 0.19656,-8.991591 0.19656,-8.991591 l 0.0199,-0.14071 0.29312,-0.140748 z"
+ id="path3920"
+ style="fill:url(#linearGradient5612-8);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path
+ d="m 113.60446,18.082424 -1.27483,-0.959065 c 3.80497,-1.738734 5.70753,0.846273 5.94023,4.233113 l -1.22689,5.969541 c 0.0432,0.587925 0.46457,1.781249 0.0473,2.502842 -0.10735,1.184875 -1.3604,1.258502 -1.25176,2.164778 0.0432,0.587928 1.47788,1.196989 1.72301,2.387496 1.28414,1.824459 3.37872,5.88301 5.33931,7.295208 1.50561,0.927498 1.91686,1.943279 3.66098,1.18229 0,0 0.6432,-0.265733 0.69931,0.363737 -4.78339,3.695975 -10.00982,-9.009253 -9.00872,-5.467637 6.68202,14.27976 8.21084,11.272157 8.55487,11.806497 0.34402,0.534341 -0.051,0.986356 -0.051,0.986356 l -0.52871,-0.0085 0.31272,0.287043 -0.61385,0.906853 -1.43837,-0.446058 1.1172,0.687721 -0.50866,0.94379 -0.9153,-0.08514 0.59413,0.3268 -0.11363,0.491771 -0.88399,0.162157 0.27578,0.392223 -0.39504,0.452019 -0.6965,-0.539975 0.48614,0.466097 -0.75596,0.975096 -1.02048,-0.122078 0.23885,0.497407 -1.04019,1.111575 -1.12285,-0.335247 c 0,0 -6.11605,-12.190603 -6.8614,-16.29223 -0.74535,-4.101625 0.96815,-7.63512 0.96815,-7.63512 0,0 1.05742,0.01691 0.30676,-1.546372 -1.12002,-0.511482 0.0153,-2.06224 0.17434,-3.187895 0.15901,-1.125658 1.16384,-1.127229 1.16384,-1.127229 0.77459,0.06526 1.26996,-4.856376 1.47547,-6.264039 0.20551,-1.407664 -1.575,-3.471058 -3.37026,-2.575879 z"
+ id="use3848"
+ style="fill:url(#linearGradient5609-6);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path
+ d="m 114.28311,29.943753 c 0.49479,-0.31028 1.3331,-0.405599 2.65708,0.298067 -0.28917,0.677244 -0.92757,0.954658 -1.04227,1.516989 -0.52987,0.05596 -1.07253,0.09282 -1.54418,0.107535 -0.0359,-0.185534 -0.0611,-0.35482 -0.19267,-0.628878 -0.26879,-0.122748 -0.42825,-0.300007 -0.52061,-0.515126 0.0395,-0.111579 0.19072,-0.495192 0.64265,-0.778587 z"
+ id="path3946"
+ style="fill:#7f0000;fill-opacity:1;fill-rule:evenodd;stroke:none" /><path
+ d="m 114.69752,30.761267 c 0.54914,-0.263686 1.20881,-0.03202 1.4725,0.517115 0.20064,0.41784 0.11214,0.890735 -0.18245,1.213425 -0.3225,-0.311108 -0.80766,-0.41008 -1.2351,-0.204831 -0.1342,0.06444 -0.24525,0.145845 -0.33893,0.250191 -0.0889,-0.08724 -0.17614,-0.184704 -0.23313,-0.303405 -0.26369,-0.549131 -0.032,-1.208808 0.51711,-1.472495 z"
+ id="path3937"
+ style="fill:#f6ca12;fill-opacity:1;stroke:none" /><path
+ d="m 115.34938,30.99509 c 2.45474,1.059132 -2.30147,0.635082 0,0 z"
+ id="path3942"
+ style="fill:#f6f1d7;fill-opacity:1;stroke:none" /><g
+ transform="matrix(0.92615143,0,0,0.79615016,38.327829,16.316524)"
+ id="g3842"><path
+ d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z"
+ id="path3337"
+ style="fill:url(#linearGradient5207-5);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
+ d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z"
+ transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)"
+ id="path3360"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1-2)" /><path
+ d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z"
+ id="path3375"
+ style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none" /></g></g><g
+ id="g5744"
+ transform="matrix(0.2879027,0,0,-0.2879027,69.235006,82.608114)"><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297-4)"
+ id="path3281"
+ d="m -155.78611,-12.407395 c -14.71669,0 -26.69498,11.97828915 -26.69498,26.694979 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.69497,-11.97829 26.69497,-26.69498 0,-14.71668985 -11.97829,-26.694979 -26.69497,-26.694979 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293-5)"
+ id="path3283"
+ d="m -155.32695,24.861034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient7597);fill-opacity:1;stroke:none"
+ id="path2214"
+ d="m -156.61932,23.611034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient7599);fill-opacity:1;stroke:none"
+ id="path3193"
+ d="m -156.61932,25.771744 c -20.11022,0 -36.4266,15.9074 -36.4266,35.53322 l 0,5.61655 c 0,5.55039 5.83324,17.193505 26.8697,17.193505 l 19.08475,0 c 21.03599,0 26.89875,-11.076875 26.89875,-17.193505 l 0,-5.61655 c 0,-19.62582 -16.31638,-35.53322 -36.4266,-35.53322 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7601);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path3217"
+ d="m -139.13289,33.082924 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.65267" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7603);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path3227"
+ d="m -173.9443,33.082924 c -8.46364,9.0621 -14.91528,24.09751 -16.80551,38.65267" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:#52aa5d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3249"
+ d="m -163.31111,37.284304 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#ff2600;fill-opacity:1;stroke:#800000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path3245"
+ d="m -156.53859,49.903956 -6.32332,-10.952307 12.64663,-1e-6 -6.32331,10.952308 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#a0ff74;fill-opacity:1;fill-rule:evenodd;stroke:#5eaa5e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3247"
+ d="m -150.1765,37.284304 c 2.78286,1.49402 6.04258,3.41066 4.80157,8.16267 4.9405,-2.10693 8.86936,-8.77007 5.28173,-14.28468 l -10.0833,6.12201 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient7605);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path3251"
+ d="m -173.17288,31.864944 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient7607);fill-opacity:1;stroke:url(#linearGradient7609);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path2309"
+ d="m -130.85811,13.036361 a 25.68048,25.68048 0 1 1 -51.36096,0 25.68048,25.68048 0 1 1 51.36096,0 z" /><g
+ id="g3842-8"
+ transform="matrix(1,0,0,0.87225898,-199.74982,-24.193125)"><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient7611);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3337-3"
+ d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1-3)"
+ id="path3360-1"
+ transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)"
+ d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path3375-8"
+ d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z" /></g></g><g
+ id="g7615"
+ transform="matrix(0.17221294,0,0,-0.17221294,94.665383,34.185536)"><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297-4)"
+ id="path7617"
+ d="m -155.78611,-12.407395 c -14.71669,0 -26.69498,11.97828915 -26.69498,26.694979 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.69497,-11.97829 26.69497,-26.69498 0,-14.71668985 -11.97829,-26.694979 -26.69497,-26.694979 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293-5)"
+ id="path7619"
+ d="m -155.32695,24.861034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient7647);fill-opacity:1;stroke:none"
+ id="path7621"
+ d="m -156.61932,23.611034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient7649);fill-opacity:1;stroke:none"
+ id="path7623"
+ d="m -156.61932,25.771744 c -20.11022,0 -36.4266,15.9074 -36.4266,35.53322 l 0,5.61655 c 0,5.55039 5.83324,17.193505 26.8697,17.193505 l 19.08475,0 c 21.03599,0 26.89875,-11.076875 26.89875,-17.193505 l 0,-5.61655 c 0,-19.62582 -16.31638,-35.53322 -36.4266,-35.53322 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7651);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7625"
+ d="m -139.13289,33.082924 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.65267" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7653);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7627"
+ d="m -173.9443,33.082924 c -8.46364,9.0621 -14.91528,24.09751 -16.80551,38.65267" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:#52aa5d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path7629"
+ d="m -163.31111,37.284304 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#ff2600;fill-opacity:1;stroke:#800000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path7631"
+ d="m -156.53859,49.903956 -6.32332,-10.952307 12.64663,-1e-6 -6.32331,10.952308 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#a0ff74;fill-opacity:1;fill-rule:evenodd;stroke:#5eaa5e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path7633"
+ d="m -150.1765,37.284304 c 2.78286,1.49402 6.04258,3.41066 4.80157,8.16267 4.9405,-2.10693 8.86936,-8.77007 5.28173,-14.28468 l -10.0833,6.12201 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient7655);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path7635"
+ d="m -173.17288,31.864944 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient7657);fill-opacity:1;stroke:url(#linearGradient7659);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path7637"
+ d="m -130.85811,13.036361 a 25.68048,25.68048 0 1 1 -51.36096,0 25.68048,25.68048 0 1 1 51.36096,0 z" /><g
+ id="g7639"
+ transform="matrix(1,0,0,0.87225898,-199.74982,-24.193125)"><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient7661);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path7641"
+ d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1-3)"
+ id="path7643"
+ transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)"
+ d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path7645"
+ d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z" /></g></g><g
+ id="g7665"
+ transform="matrix(0.17221294,0,0,-0.17221294,43.705396,23.911345)"><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297-4)"
+ id="path7667"
+ d="m -155.78611,-12.407395 c -14.71669,0 -26.69498,11.97828915 -26.69498,26.694979 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.69497,-11.97829 26.69497,-26.69498 0,-14.71668985 -11.97829,-26.694979 -26.69497,-26.694979 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293-5)"
+ id="path7669"
+ d="m -155.32695,24.861034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient7697);fill-opacity:1;stroke:none"
+ id="path7671"
+ d="m -156.61932,23.611034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient7699);fill-opacity:1;stroke:none"
+ id="path7673"
+ d="m -156.61932,25.771744 c -20.11022,0 -36.4266,15.9074 -36.4266,35.53322 l 0,5.61655 c 0,5.55039 5.83324,17.193505 26.8697,17.193505 l 19.08475,0 c 21.03599,0 26.89875,-11.076875 26.89875,-17.193505 l 0,-5.61655 c 0,-19.62582 -16.31638,-35.53322 -36.4266,-35.53322 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7701);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7675"
+ d="m -139.13289,33.082924 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.65267" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7703);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7677"
+ d="m -173.9443,33.082924 c -8.46364,9.0621 -14.91528,24.09751 -16.80551,38.65267" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:#52aa5d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path7679"
+ d="m -163.31111,37.284304 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#ff2600;fill-opacity:1;stroke:#800000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path7681"
+ d="m -156.53859,49.903956 -6.32332,-10.952307 12.64663,-1e-6 -6.32331,10.952308 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#a0ff74;fill-opacity:1;fill-rule:evenodd;stroke:#5eaa5e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path7683"
+ d="m -150.1765,37.284304 c 2.78286,1.49402 6.04258,3.41066 4.80157,8.16267 4.9405,-2.10693 8.86936,-8.77007 5.28173,-14.28468 l -10.0833,6.12201 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient7705);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path7685"
+ d="m -173.17288,31.864944 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient7707);fill-opacity:1;stroke:url(#linearGradient7709);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path7687"
+ d="m -130.85811,13.036361 a 25.68048,25.68048 0 1 1 -51.36096,0 25.68048,25.68048 0 1 1 51.36096,0 z" /><g
+ id="g7689"
+ transform="matrix(1,0,0,0.87225898,-199.74982,-24.193125)"><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient7711);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path7691"
+ d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1-3)"
+ id="path7693"
+ transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)"
+ d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path7695"
+ d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z" /></g></g></g></svg> \ No newline at end of file
diff --git a/icons/student2tutor.svg b/icons/student2tutor.svg
new file mode 100644
index 0000000..7338347
--- /dev/null
+++ b/icons/student2tutor.svg
@@ -0,0 +1,2774 @@
+<?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.1"
+ width="114.38715"
+ height="114.30188"
+ id="svg2"
+ xml:space="preserve"
+ inkscape:version="0.48.3.1 r9886"
+ sodipodi:docname="student2tutor.svg"><sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1148"
+ id="namedview951"
+ showgrid="false"
+ inkscape:zoom="5.839876"
+ inkscape:cx="57.193577"
+ inkscape:cy="57.15094"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg2" /><metadata
+ id="metadata8"><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 /></cc:Work></rdf:RDF></metadata><defs
+ id="defs6"><clipPath
+ id="clipPath18"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path20" /></clipPath><mask
+ id="mask22"><g
+ id="g24"><g
+ clip-path="url(#clipPath18)"
+ id="g26"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path28"
+ style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath34"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path36" /></clipPath><clipPath
+ id="clipPath38"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path40" /></clipPath><clipPath
+ id="clipPath42"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path44" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient46"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.980126,0,0,-0.216527,1.465394,57.746052)"
+ spreadMethod="pad"><stop
+ id="stop48"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop50"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath52"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path54" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient56"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.980126,0,0,-0.216527,1.465394,57.746052)"
+ spreadMethod="pad"><stop
+ id="stop58"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop60"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern62"><defs
+ id="defs64"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask0"><g
+ id="g67"><g
+ clip-path="url(#clipPath42)"
+ id="g69"><g
+ id="g71"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#radialGradient46);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path73" /></g></g></g></mask></defs><g
+ id="g75" /><g
+ id="g77"><g
+ clip-path="url(#clipPath38)"
+ id="g79"><g
+ id="g81"><g
+ id="g83"><g
+ id="g85" /><g
+ mask="url(#_mask0)"
+ id="g87"><g
+ id="g89" /><g
+ id="g91"><g
+ clip-path="url(#clipPath52)"
+ id="g93"><g
+ id="g95"><path
+ d="m 48.215,48.504 c 0,-2.844 -10.426,-5.145 -23.289,-5.145 -12.86,0 -23.285,2.301 -23.285,5.145 0,2.84 10.425,5.144 23.285,5.144 12.863,0 23.289,-2.304 23.289,-5.144 z"
+ style="fill:url(#radialGradient56);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path97" /></g></g></g></g></g></g></g></g></pattern><linearGradient
+ x1="31.742188"
+ y1="37.84375"
+ x2="31.859375"
+ y2="43.824219"
+ id="linearGradient111"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.012271,0,0,-1.012271,0,91.441505)"
+ spreadMethod="pad"><stop
+ id="stop113"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop115"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="17.246094"
+ y1="6.375"
+ x2="39.90625"
+ y2="38.875"
+ id="linearGradient123"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.012271,0,0,-1.012271,0,91.441505)"
+ spreadMethod="pad"><stop
+ id="stop125"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop127"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="24.007812"
+ cy="32.996094"
+ r="19"
+ fx="24.007812"
+ fy="32.996094"
+ id="radialGradient133"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.247759,0,0,-0.787943,-5.653165,89.260693)"
+ spreadMethod="pad"><stop
+ id="stop135"
+ style="stop-color:#555753;stop-opacity:1"
+ offset="0" /><stop
+ id="stop137"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath153"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path155" /></clipPath><mask
+ id="mask157"><g
+ id="g159"><g
+ clip-path="url(#clipPath153)"
+ id="g161"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path163"
+ style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath169"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path171" /></clipPath><clipPath
+ id="clipPath173"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path175" /></clipPath><clipPath
+ id="clipPath177"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path179" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient181"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)"
+ spreadMethod="pad"><stop
+ id="stop183"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop185"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath187"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path189" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient191"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)"
+ spreadMethod="pad"><stop
+ id="stop193"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop195"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern197"><defs
+ id="defs199"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask1"><g
+ id="g202"><g
+ clip-path="url(#clipPath177)"
+ id="g204"><g
+ id="g206"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient181);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path208" /></g></g></g></mask></defs><g
+ id="g210" /><g
+ id="g212"><g
+ clip-path="url(#clipPath173)"
+ id="g214"><g
+ id="g216"><g
+ id="g218"><g
+ id="g220" /><g
+ mask="url(#_mask1)"
+ id="g222"><g
+ id="g224" /><g
+ id="g226"><g
+ clip-path="url(#clipPath187)"
+ id="g228"><g
+ id="g230"><path
+ d="m 14.164,55.52 c 0.086,-2.2 -0.285,-2.95 -1.652,-3.723 l 23.902,-1.313 c -0.961,1.184 -2.355,2.969 -1.976,5.051 L 14.164,55.52 z"
+ style="fill:url(#linearGradient191);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path232" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath254"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path256" /></clipPath><mask
+ id="mask258"><g
+ id="g260"><g
+ clip-path="url(#clipPath254)"
+ id="g262"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path264"
+ style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath270"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path272" /></clipPath><clipPath
+ id="clipPath274"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path276" /></clipPath><clipPath
+ id="clipPath278"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path280" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient282"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)"
+ spreadMethod="pad"><stop
+ id="stop284"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop286"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath288"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path290" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient292"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)"
+ spreadMethod="pad"><stop
+ id="stop294"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop296"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern298"><defs
+ id="defs300"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask2"><g
+ id="g303"><g
+ clip-path="url(#clipPath278)"
+ id="g305"><g
+ id="g307"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient282);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path309" /></g></g></g></mask></defs><g
+ id="g311" /><g
+ id="g313"><g
+ clip-path="url(#clipPath274)"
+ id="g315"><g
+ id="g317"><g
+ id="g319"><g
+ id="g321" /><g
+ mask="url(#_mask2)"
+ id="g323"><g
+ id="g325" /><g
+ id="g327"><g
+ clip-path="url(#clipPath288)"
+ id="g329"><g
+ id="g331"><path
+ d="m 6.098,83.871 0,-18.23 c 16.644,1.371 22.875,10.238 36.41,11.164 l 0,7.097 -36.41,-0.031 z"
+ style="fill:url(#linearGradient292);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path333" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath347"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path349" /></clipPath><mask
+ id="mask351"><g
+ id="g353"><g
+ clip-path="url(#clipPath347)"
+ id="g355"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path357"
+ style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath363"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path365" /></clipPath><clipPath
+ id="clipPath367"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path369" /></clipPath><clipPath
+ id="clipPath371"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path373" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient375"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.593246,0,0,-0.131058,62.986967,65.666929)"
+ spreadMethod="pad"><stop
+ id="stop377"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop379"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath381"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path383" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient385"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.593246,0,0,-0.131058,62.986967,65.666929)"
+ spreadMethod="pad"><stop
+ id="stop387"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop389"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern391"><defs
+ id="defs393"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask3"><g
+ id="g396"><g
+ clip-path="url(#clipPath371)"
+ id="g398"><g
+ id="g400"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#radialGradient375);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path402" /></g></g></g></mask></defs><g
+ id="g404" /><g
+ id="g406"><g
+ clip-path="url(#clipPath367)"
+ id="g408"><g
+ id="g410"><g
+ id="g412"><g
+ id="g414" /><g
+ mask="url(#_mask3)"
+ id="g416"><g
+ id="g418" /><g
+ id="g420"><g
+ clip-path="url(#clipPath381)"
+ id="g422"><g
+ id="g424"><path
+ d="m 91.281,60.074 c 0,-1.722 -6.308,-3.117 -14.093,-3.117 -7.786,0 -14.094,1.395 -14.094,3.117 0,1.719 6.308,3.114 14.094,3.114 7.785,0 14.093,-1.395 14.093,-3.114 z"
+ style="fill:url(#radialGradient385);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path426" /></g></g></g></g></g></g></g></g></pattern><linearGradient
+ x1="31.742188"
+ y1="37.84375"
+ x2="31.859375"
+ y2="43.824219"
+ id="linearGradient440"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,85.841505)"
+ spreadMethod="pad"><stop
+ id="stop442"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop444"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="17.246094"
+ y1="6.375"
+ x2="39.90625"
+ y2="38.875"
+ id="linearGradient452"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,85.841505)"
+ spreadMethod="pad"><stop
+ id="stop454"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop456"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="24.007812"
+ cy="32.996094"
+ r="19"
+ fx="24.007812"
+ fy="32.996094"
+ id="radialGradient462"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.755238,0,0,-0.476923,58.678279,84.521513)"
+ spreadMethod="pad"><stop
+ id="stop464"
+ style="stop-color:#555753;stop-opacity:1"
+ offset="0" /><stop
+ id="stop466"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath482"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path484" /></clipPath><mask
+ id="mask486"><g
+ id="g488"><g
+ clip-path="url(#clipPath482)"
+ id="g490"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path492"
+ style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath498"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path500" /></clipPath><clipPath
+ id="clipPath502"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path504" /></clipPath><clipPath
+ id="clipPath506"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path508" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient510"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)"
+ spreadMethod="pad"><stop
+ id="stop512"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop514"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath516"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path518" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient520"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)"
+ spreadMethod="pad"><stop
+ id="stop522"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop524"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern526"><defs
+ id="defs528"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask4"><g
+ id="g531"><g
+ clip-path="url(#clipPath506)"
+ id="g533"><g
+ id="g535"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient510);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path537" /></g></g></g></mask></defs><g
+ id="g539" /><g
+ id="g541"><g
+ clip-path="url(#clipPath502)"
+ id="g543"><g
+ id="g545"><g
+ id="g547"><g
+ id="g549" /><g
+ mask="url(#_mask4)"
+ id="g551"><g
+ id="g553" /><g
+ id="g555"><g
+ clip-path="url(#clipPath516)"
+ id="g557"><g
+ id="g559"><path
+ d="m 70.672,64.32 c 0.051,-1.332 -0.172,-1.785 -1,-2.254 l 14.469,-0.793 c -0.582,0.715 -1.426,1.797 -1.196,3.055 L 70.672,64.32 z"
+ style="fill:url(#linearGradient520);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path561" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath583"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path585" /></clipPath><mask
+ id="mask587"><g
+ id="g589"><g
+ clip-path="url(#clipPath583)"
+ id="g591"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path593"
+ style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath599"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path601" /></clipPath><clipPath
+ id="clipPath603"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path605" /></clipPath><clipPath
+ id="clipPath607"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path609" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient611"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)"
+ spreadMethod="pad"><stop
+ id="stop613"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop615"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath617"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path619" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient621"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)"
+ spreadMethod="pad"><stop
+ id="stop623"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop625"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern627"><defs
+ id="defs629"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask5"><g
+ id="g632"><g
+ clip-path="url(#clipPath607)"
+ id="g634"><g
+ id="g636"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient611);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path638" /></g></g></g></mask></defs><g
+ id="g640" /><g
+ id="g642"><g
+ clip-path="url(#clipPath603)"
+ id="g644"><g
+ id="g646"><g
+ id="g648"><g
+ id="g650" /><g
+ mask="url(#_mask5)"
+ id="g652"><g
+ id="g654" /><g
+ id="g656"><g
+ clip-path="url(#clipPath617)"
+ id="g658"><g
+ id="g660"><path
+ d="m 65.789,81.48 0,-11.035 c 10.078,0.832 13.848,6.196 22.039,6.758 l 0,4.297 -22.039,-0.02 z"
+ style="fill:url(#linearGradient621);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path662" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath676"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path678" /></clipPath><mask
+ id="mask680"><g
+ id="g682"><g
+ clip-path="url(#clipPath676)"
+ id="g684"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path686"
+ style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath692"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path694" /></clipPath><clipPath
+ id="clipPath696"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path698" /></clipPath><clipPath
+ id="clipPath700"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path702" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient704"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.593246,0,0,-0.131058,53.686967,19.466929)"
+ spreadMethod="pad"><stop
+ id="stop706"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop708"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath710"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path712" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient714"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.593246,0,0,-0.131058,53.686967,19.466929)"
+ spreadMethod="pad"><stop
+ id="stop716"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop718"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern720"><defs
+ id="defs722"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask6"><g
+ id="g725"><g
+ clip-path="url(#clipPath700)"
+ id="g727"><g
+ id="g729"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#radialGradient704);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path731" /></g></g></g></mask></defs><g
+ id="g733" /><g
+ id="g735"><g
+ clip-path="url(#clipPath696)"
+ id="g737"><g
+ id="g739"><g
+ id="g741"><g
+ id="g743" /><g
+ mask="url(#_mask6)"
+ id="g745"><g
+ id="g747" /><g
+ id="g749"><g
+ clip-path="url(#clipPath710)"
+ id="g751"><g
+ id="g753"><path
+ d="m 81.984,13.871 c 0,-1.719 -6.312,-3.113 -14.097,-3.113 -7.785,0 -14.094,1.394 -14.094,3.113 0,1.723 6.309,3.113 14.094,3.113 7.785,0 14.097,-1.39 14.097,-3.113 z"
+ style="fill:url(#radialGradient714);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path755" /></g></g></g></g></g></g></g></g></pattern><linearGradient
+ x1="31.742188"
+ y1="37.84375"
+ x2="31.859375"
+ y2="43.824219"
+ id="linearGradient769"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,39.641505)"
+ spreadMethod="pad"><stop
+ id="stop771"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop773"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="17.246094"
+ y1="6.375"
+ x2="39.90625"
+ y2="38.875"
+ id="linearGradient781"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,39.641505)"
+ spreadMethod="pad"><stop
+ id="stop783"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop785"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="24.007812"
+ cy="32.996094"
+ r="19"
+ fx="24.007812"
+ fy="32.996094"
+ id="radialGradient791"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.755238,0,0,-0.476923,49.378279,38.321513)"
+ spreadMethod="pad"><stop
+ id="stop793"
+ style="stop-color:#555753;stop-opacity:1"
+ offset="0" /><stop
+ id="stop795"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath811"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path813" /></clipPath><mask
+ id="mask815"><g
+ id="g817"><g
+ clip-path="url(#clipPath811)"
+ id="g819"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path821"
+ style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath827"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path829" /></clipPath><clipPath
+ id="clipPath831"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path833" /></clipPath><clipPath
+ id="clipPath835"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path837" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient839"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)"
+ spreadMethod="pad"><stop
+ id="stop841"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop843"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath845"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path847" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient849"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)"
+ spreadMethod="pad"><stop
+ id="stop851"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop853"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern855"><defs
+ id="defs857"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask7"><g
+ id="g860"><g
+ clip-path="url(#clipPath835)"
+ id="g862"><g
+ id="g864"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient839);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path866" /></g></g></g></mask></defs><g
+ id="g868" /><g
+ id="g870"><g
+ clip-path="url(#clipPath831)"
+ id="g872"><g
+ id="g874"><g
+ id="g876"><g
+ id="g878" /><g
+ mask="url(#_mask7)"
+ id="g880"><g
+ id="g882" /><g
+ id="g884"><g
+ clip-path="url(#clipPath845)"
+ id="g886"><g
+ id="g888"><path
+ d="m 61.371,18.117 c 0.055,-1.328 -0.172,-1.781 -1,-2.25 L 74.84,15.07 c -0.578,0.719 -1.426,1.801 -1.195,3.059 L 61.371,18.117 z"
+ style="fill:url(#linearGradient849);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path890" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath912"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path914" /></clipPath><mask
+ id="mask916"><g
+ id="g918"><g
+ clip-path="url(#clipPath912)"
+ id="g920"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path922"
+ style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath928"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path930" /></clipPath><clipPath
+ id="clipPath932"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path934" /></clipPath><clipPath
+ id="clipPath936"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path938" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient940"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)"
+ spreadMethod="pad"><stop
+ id="stop942"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop944"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath946"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path948" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient950"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)"
+ spreadMethod="pad"><stop
+ id="stop952"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop954"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern956"><defs
+ id="defs958"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask8"><g
+ id="g961"><g
+ clip-path="url(#clipPath936)"
+ id="g963"><g
+ id="g965"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient940);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path967" /></g></g></g></mask></defs><g
+ id="g969" /><g
+ id="g971"><g
+ clip-path="url(#clipPath932)"
+ id="g973"><g
+ id="g975"><g
+ id="g977"><g
+ id="g979" /><g
+ mask="url(#_mask8)"
+ id="g981"><g
+ id="g983" /><g
+ id="g985"><g
+ clip-path="url(#clipPath946)"
+ id="g987"><g
+ id="g989"><path
+ d="m 56.492,35.277 0,-11.031 c 10.074,0.828 13.844,6.195 22.035,6.758 l 0,4.293 -22.035,-0.02 z"
+ style="fill:url(#linearGradient950);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path991" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath1005"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1007" /></clipPath><mask
+ id="mask1009"><g
+ id="g1011"><g
+ clip-path="url(#clipPath1005)"
+ id="g1013"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1015"
+ style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath1021"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1023" /></clipPath><clipPath
+ id="clipPath1025"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1027" /></clipPath><clipPath
+ id="clipPath1029"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1031" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient1033"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.593246,0,0,-0.131058,2.686967,9.266929)"
+ spreadMethod="pad"><stop
+ id="stop1035"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1037"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath1039"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1041" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient1043"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.593246,0,0,-0.131058,2.686967,9.266929)"
+ spreadMethod="pad"><stop
+ id="stop1045"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1047"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern1049"><defs
+ id="defs1051"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask9"><g
+ id="g1054"><g
+ clip-path="url(#clipPath1029)"
+ id="g1056"><g
+ id="g1058"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#radialGradient1033);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path1060" /></g></g></g></mask></defs><g
+ id="g1062" /><g
+ id="g1064"><g
+ clip-path="url(#clipPath1025)"
+ id="g1066"><g
+ id="g1068"><g
+ id="g1070"><g
+ id="g1072" /><g
+ mask="url(#_mask9)"
+ id="g1074"><g
+ id="g1076" /><g
+ id="g1078"><g
+ clip-path="url(#clipPath1039)"
+ id="g1080"><g
+ id="g1082"><path
+ d="m 30.984,3.672 c 0,-1.719 -6.312,-3.113 -14.097,-3.113 -7.785,0 -14.094,1.394 -14.094,3.113 0,1.719 6.309,3.113 14.094,3.113 7.785,0 14.097,-1.394 14.097,-3.113 z"
+ style="fill:url(#radialGradient1043);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path1084" /></g></g></g></g></g></g></g></g></pattern><linearGradient
+ x1="31.742188"
+ y1="37.84375"
+ x2="31.859375"
+ y2="43.824219"
+ id="linearGradient1098"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,29.441505)"
+ spreadMethod="pad"><stop
+ id="stop1100"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1102"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="17.246094"
+ y1="6.375"
+ x2="39.90625"
+ y2="38.875"
+ id="linearGradient1110"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,29.441505)"
+ spreadMethod="pad"><stop
+ id="stop1112"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1114"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="24.007812"
+ cy="32.996094"
+ r="19"
+ fx="24.007812"
+ fy="32.996094"
+ id="radialGradient1120"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.755238,0,0,-0.476923,-1.621721,28.121513)"
+ spreadMethod="pad"><stop
+ id="stop1122"
+ style="stop-color:#555753;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1124"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath1140"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1142" /></clipPath><mask
+ id="mask1144"><g
+ id="g1146"><g
+ clip-path="url(#clipPath1140)"
+ id="g1148"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1150"
+ style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath1156"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1158" /></clipPath><clipPath
+ id="clipPath1160"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1162" /></clipPath><clipPath
+ id="clipPath1164"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1166" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient1168"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)"
+ spreadMethod="pad"><stop
+ id="stop1170"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1172"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath1174"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1176" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient1178"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)"
+ spreadMethod="pad"><stop
+ id="stop1180"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1182"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern1184"><defs
+ id="defs1186"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask10"><g
+ id="g1189"><g
+ clip-path="url(#clipPath1164)"
+ id="g1191"><g
+ id="g1193"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient1168);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path1195" /></g></g></g></mask></defs><g
+ id="g1197" /><g
+ id="g1199"><g
+ clip-path="url(#clipPath1160)"
+ id="g1201"><g
+ id="g1203"><g
+ id="g1205"><g
+ id="g1207" /><g
+ mask="url(#_mask10)"
+ id="g1209"><g
+ id="g1211" /><g
+ id="g1213"><g
+ clip-path="url(#clipPath1174)"
+ id="g1215"><g
+ id="g1217"><path
+ d="m 10.371,7.918 c 0.055,-1.332 -0.172,-1.781 -1,-2.25 L 23.84,4.871 C 23.262,5.59 22.414,6.668 22.645,7.93 L 10.371,7.918 z"
+ style="fill:url(#linearGradient1178);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path1219" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath1241"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1243" /></clipPath><mask
+ id="mask1245"><g
+ id="g1247"><g
+ clip-path="url(#clipPath1241)"
+ id="g1249"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1251"
+ style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath1257"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1259" /></clipPath><clipPath
+ id="clipPath1261"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1263" /></clipPath><clipPath
+ id="clipPath1265"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1267" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient1269"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)"
+ spreadMethod="pad"><stop
+ id="stop1271"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1273"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath1275"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1277" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient1279"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)"
+ spreadMethod="pad"><stop
+ id="stop1281"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1283"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern1285"><defs
+ id="defs1287"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask11"><g
+ id="g1290"><g
+ clip-path="url(#clipPath1265)"
+ id="g1292"><g
+ id="g1294"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient1269);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path1296" /></g></g></g></mask></defs><g
+ id="g1298" /><g
+ id="g1300"><g
+ clip-path="url(#clipPath1261)"
+ id="g1302"><g
+ id="g1304"><g
+ id="g1306"><g
+ id="g1308" /><g
+ mask="url(#_mask11)"
+ id="g1310"><g
+ id="g1312" /><g
+ id="g1314"><g
+ clip-path="url(#clipPath1275)"
+ id="g1316"><g
+ id="g1318"><path
+ d="m 5.492,25.078 0,-11.031 c 10.074,0.828 13.844,6.195 22.035,6.754 l 0,4.297 -22.035,-0.02 z"
+ style="fill:url(#linearGradient1279);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path1320" /></g></g></g></g></g></g></g></g></pattern><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient6246"
+ xlink:href="#linearGradient6240"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ id="linearGradient6240"><stop
+ id="stop6242"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop6244"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient3063"
+ xlink:href="#linearGradient6240"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0181386,0,0,-0.99062596,-0.15727934,91.443685)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient6246-6"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ id="linearGradient6240-0"><stop
+ id="stop6242-8"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop6244-7"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient3063-5"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.60671483,0,0,-0.58167345,1.8899147,29.19821)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient4486"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.60671483,0,0,-0.58167345,52.918396,39.335412)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient4490"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.60671483,0,0,-0.58167345,62.233662,85.535023)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient4469"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.77988257,0,0,-0.74769392,54.17802,39.386029)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient4472"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.60671483,0,0,-0.58167345,52.918396,39.335412)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient4475"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.60671483,0,0,-0.58167345,1.8899147,29.19821)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient4478"
+ xlink:href="#linearGradient6240"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0181386,0,0,-0.99062596,-0.15727934,91.443685)" /><filter
+ color-interpolation-filters="sRGB"
+ id="filter3297"><feGaussianBlur
+ stdDeviation="0.26694977"
+ id="feGaussianBlur3299" /></filter><filter
+ color-interpolation-filters="sRGB"
+ id="filter3293"><feGaussianBlur
+ stdDeviation="0.355"
+ id="feGaussianBlur3295" /></filter><linearGradient
+ id="linearGradient44699"><stop
+ id="stop44701"
+ style="stop-color:#000173;stop-opacity:0.93333334"
+ offset="0" /><stop
+ id="stop44703"
+ style="stop-color:#3575f0;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44080"><stop
+ id="stop44082"
+ style="stop-color:#2c8300;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44084"
+ style="stop-color:#57aeff;stop-opacity:1"
+ offset="0.25" /><stop
+ id="stop44086"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop44088"
+ style="stop-color:#5aafff;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44090"><stop
+ id="stop44092"
+ style="stop-color:#0926bb;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44094"
+ style="stop-color:#6bb5fe;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient5790"><stop
+ id="stop5792"
+ style="stop-color:#0926bb;stop-opacity:1"
+ offset="0" /><stop
+ id="stop5794"
+ style="stop-color:#6bb5fe;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44615"><stop
+ id="stop44617"
+ style="stop-color:#2f68fa;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44619"
+ style="stop-color:#c7d5fb;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44693"><stop
+ id="stop44695"
+ style="stop-color:#3690e6;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44697"
+ style="stop-color:#d0e9ff;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44605"><stop
+ id="stop44607"
+ style="stop-color:#d0ecff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44609"
+ style="stop-color:#d7f0ff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop44611"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient5810"><stop
+ id="stop5812"
+ style="stop-color:#2f68fa;stop-opacity:1"
+ offset="0" /><stop
+ id="stop5814"
+ style="stop-color:#c7d5fb;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient2300-4"><stop
+ id="stop2302-6"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2304-2"
+ style="stop-color:#414141;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44627"><stop
+ id="stop44629"
+ style="stop-color:#fffcfb;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44633"
+ style="stop-color:#f4ad94;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44681"><stop
+ id="stop44683"
+ style="stop-color:#ff5c38;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44685"
+ style="stop-color:#fb7e65;stop-opacity:0.99607843"
+ offset="0.30397323" /><stop
+ id="stop44687"
+ style="stop-color:#cd0000;stop-opacity:0.98039216"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient2288-5"><stop
+ id="stop2290-0"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2292-6"
+ style="stop-color:#898989;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient5834"><stop
+ id="stop5836"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop5838"
+ style="stop-color:#414141;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient2318-2"><stop
+ id="stop2320-8"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2326-4"
+ style="stop-color:#373737;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop2322-7"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient2392-2"><stop
+ id="stop2394-4"
+ style="stop-color:#000000;stop-opacity:0.43298969"
+ offset="0" /><stop
+ id="stop2398-0"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient2338-6"><stop
+ id="stop2340-2"
+ style="stop-color:#545454;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2344-9"
+ style="stop-color:#545454;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient2380-9"><stop
+ id="stop2382-0"
+ style="stop-color:#838383;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2384-8"
+ style="stop-color:#767676;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3836-1"><stop
+ id="stop3838-3"
+ style="stop-color:#c90000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3844-1"
+ style="stop-color:#ff7474;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3846-1"
+ style="stop-color:#c90000;stop-opacity:1"
+ offset="0.75" /><stop
+ id="stop3840-0"
+ style="stop-color:#fa5555;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3895-3"><stop
+ id="stop3897-4"
+ style="stop-color:#930000;stop-opacity:0.50515461"
+ offset="0" /><stop
+ id="stop3899-0"
+ style="stop-color:#930000;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3924-3"><stop
+ id="stop3926-9"
+ style="stop-color:#ff6e6e;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3928-1"
+ style="stop-color:#ff7171;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3854-9"><stop
+ id="stop3856-6"
+ style="stop-color:#a00000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3860-9"
+ style="stop-color:#c90000;stop-opacity:0"
+ offset="0.75" /><stop
+ id="stop3862-3"
+ style="stop-color:#a00000;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient5207"
+ xlink:href="#linearGradient3339-4"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ id="linearGradient3339-4"><stop
+ id="stop3341-7"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3347-6"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3343-3"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="1" /></linearGradient><filter
+ color-interpolation-filters="sRGB"
+ id="filter3385-1"><feGaussianBlur
+ id="feGaussianBlur3387-7"
+ stdDeviation="0.14607691" /></filter><filter
+ color-interpolation-filters="sRGB"
+ id="filter3297-9"><feGaussianBlur
+ stdDeviation="0.26694977"
+ id="feGaussianBlur3299-7" /></filter><filter
+ color-interpolation-filters="sRGB"
+ id="filter3293-2"><feGaussianBlur
+ stdDeviation="0.355"
+ id="feGaussianBlur3295-7" /></filter><linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient5673-0"
+ xlink:href="#linearGradient44699-4"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(38.627584,1.0111154)" /><linearGradient
+ id="linearGradient44699-4"><stop
+ id="stop44701-3"
+ style="stop-color:#000173;stop-opacity:0.93333334"
+ offset="0" /><stop
+ id="stop44703-4"
+ style="stop-color:#3575f0;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient5670-6"
+ xlink:href="#linearGradient44080-3"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1396.4291,-948.41724)" /><linearGradient
+ id="linearGradient44080-3"><stop
+ id="stop44082-5"
+ style="stop-color:#2c8300;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44084-5"
+ style="stop-color:#57aeff;stop-opacity:1"
+ offset="0.25" /><stop
+ id="stop44086-1"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop44088-4"
+ style="stop-color:#5aafff;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient5667-0"
+ xlink:href="#linearGradient44090-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-408.92103,-635.92247)" /><linearGradient
+ id="linearGradient44090-0"><stop
+ id="stop44092-7"
+ style="stop-color:#0926bb;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44094-9"
+ style="stop-color:#6bb5fe;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient5664-4"
+ xlink:href="#linearGradient44090-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,574.52515,-635.92247)" /><linearGradient
+ id="linearGradient6984"><stop
+ id="stop6986"
+ style="stop-color:#0926bb;stop-opacity:1"
+ offset="0" /><stop
+ id="stop6988"
+ style="stop-color:#6bb5fe;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="-246.57739"
+ y1="958.07971"
+ x2="-248.7769"
+ y2="964.61743"
+ id="linearGradient5661-5"
+ xlink:href="#linearGradient44615-6"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(321.10111,-881.68159)" /><linearGradient
+ id="linearGradient44615-6"><stop
+ id="stop44617-5"
+ style="stop-color:#2f68fa;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44619-1"
+ style="stop-color:#c7d5fb;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="-35.566662"
+ y1="76.562927"
+ x2="-35.566662"
+ y2="84.910484"
+ id="linearGradient5658-1"
+ xlink:href="#linearGradient44693-1"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.1784451,0,0,0.9316118,126.37167,5.1827454)" /><linearGradient
+ id="linearGradient44693-1"><stop
+ id="stop44695-8"
+ style="stop-color:#3690e6;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44697-1"
+ style="stop-color:#d0e9ff;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient5655-7"
+ xlink:href="#linearGradient44605-2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.856113,-0.0637264,0.1161478,1.5603521,-422.20596,-1003.4503)" /><linearGradient
+ id="linearGradient44605-2"><stop
+ id="stop44607-0"
+ style="stop-color:#d0ecff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44609-9"
+ style="stop-color:#d7f0ff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop44611-1"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="-246.57739"
+ y1="958.07971"
+ x2="-248.7769"
+ y2="964.61743"
+ id="linearGradient5652-7"
+ xlink:href="#linearGradient44615-6"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,-155.83313,-881.68159)" /><linearGradient
+ id="linearGradient7004"><stop
+ id="stop7006"
+ style="stop-color:#2f68fa;stop-opacity:1"
+ offset="0" /><stop
+ id="stop7008"
+ style="stop-color:#c7d5fb;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="170.29684"
+ y1="219.20184"
+ x2="75.611801"
+ y2="140.29272"
+ id="linearGradient5645-3"
+ xlink:href="#linearGradient2300-4-8"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.32740907,0.15721672,0.11848357,0.24674603,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient2300-4-8"><stop
+ id="stop2302-6-8"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2304-2-7"
+ style="stop-color:#414141;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="53.60223"
+ cy="59.728882"
+ r="17.834057"
+ fx="53.60223"
+ fy="59.728882"
+ id="radialGradient5640-1"
+ xlink:href="#linearGradient44627-2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.4772178,-2.4522929,0,220.99205,-95.843466)" /><linearGradient
+ id="linearGradient44627-2"><stop
+ id="stop44629-5"
+ style="stop-color:#fffcfb;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44633-6"
+ style="stop-color:#f4ad94;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="60.126968"
+ y1="81.913818"
+ x2="60.126968"
+ y2="47.542713"
+ id="linearGradient5642-0"
+ xlink:href="#linearGradient44681-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4960409,0,0,1.4960409,-6.6306562,-46.588225)" /><linearGradient
+ id="linearGradient44681-0"><stop
+ id="stop44683-0"
+ style="stop-color:#ff5c38;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44685-6"
+ style="stop-color:#fb7e65;stop-opacity:0.99607843"
+ offset="0.30397323" /><stop
+ id="stop44687-1"
+ style="stop-color:#cd0000;stop-opacity:0.98039216"
+ offset="1" /></linearGradient><linearGradient
+ x1="81.846077"
+ y1="136.15834"
+ x2="168.78268"
+ y2="53.432808"
+ id="linearGradient5637-0"
+ xlink:href="#linearGradient2288-5-4"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.19109066,0.09175867,0.20300624,0.42276738,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient2288-5-4"><stop
+ id="stop2290-0-2"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2292-6-5"
+ style="stop-color:#898989;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="366.57416"
+ y1="39.730881"
+ x2="168.78265"
+ y2="53.4328"
+ id="linearGradient5634-9"
+ xlink:href="#linearGradient2300-4-8"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.19109066,0.09175867,0.20300624,0.42276738,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient7028"><stop
+ id="stop7030"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop7032"
+ style="stop-color:#414141;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="263.96207"
+ y1="41.317993"
+ x2="24.068567"
+ y2="220.45784"
+ id="linearGradient5631-1"
+ xlink:href="#linearGradient2318-2-2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2973758,0.14279496,0.13044969,0.27166614,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient2318-2-2"><stop
+ id="stop2320-8-2"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2326-4-2"
+ style="stop-color:#373737;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop2322-7-5"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="136.33336"
+ y1="113.51798"
+ x2="173.3575"
+ y2="164.5226"
+ id="linearGradient5628-3"
+ xlink:href="#linearGradient2392-2-4"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2973758,0.14279496,0.13044969,0.27166614,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient2392-2-4"><stop
+ id="stop2394-4-5"
+ style="stop-color:#000000;stop-opacity:0.43298969"
+ offset="0" /><stop
+ id="stop2398-0-5"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" /></linearGradient><radialGradient
+ cx="180.07829"
+ cy="176.38765"
+ r="53.050598"
+ fx="180.07837"
+ fy="177.18346"
+ id="radialGradient5625-6"
+ xlink:href="#linearGradient2338-6-6"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3015622,0.14480526,0.12863859,0.26789468,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient2338-6-6"><stop
+ id="stop2340-2-6"
+ style="stop-color:#545454;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2344-9-3"
+ style="stop-color:#545454;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ x1="219.53198"
+ y1="120.31494"
+ x2="211.80861"
+ y2="127.47651"
+ id="linearGradient5622-2"
+ xlink:href="#linearGradient2380-9-7"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3015622,0.14480526,0.12863859,0.26789468,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient2380-9-7"><stop
+ id="stop2382-0-1"
+ style="stop-color:#838383;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2384-8-9"
+ style="stop-color:#767676;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ x1="144.45633"
+ y1="98.692307"
+ x2="155.86334"
+ y2="161.02338"
+ id="linearGradient5618-0"
+ xlink:href="#linearGradient3836-1-6"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.17353113,0.0833269,0.22354827,0.46554701,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient3836-1-6"><stop
+ id="stop3838-3-7"
+ style="stop-color:#c90000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3844-1-7"
+ style="stop-color:#ff7474;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3846-1-8"
+ style="stop-color:#c90000;stop-opacity:1"
+ offset="0.75" /><stop
+ id="stop3840-0-7"
+ style="stop-color:#fa5555;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="190.18034"
+ y1="96.076317"
+ x2="156.40744"
+ y2="143.56932"
+ id="linearGradient5615-9"
+ xlink:href="#linearGradient3895-3-4"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.14979776,0.07193037,0.25896642,0.53930685,115.52106,-35.084377)" /><linearGradient
+ id="linearGradient3895-3-4"><stop
+ id="stop3897-4-0"
+ style="stop-color:#930000;stop-opacity:0.50515461"
+ offset="0" /><stop
+ id="stop3899-0-9"
+ style="stop-color:#930000;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ x1="190.18034"
+ y1="96.076317"
+ x2="156.40744"
+ y2="143.56932"
+ id="linearGradient5612-8"
+ xlink:href="#linearGradient3924-3-5"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.14979776,0.07193037,0.25896642,0.53930685,115.19546,-34.989862)" /><linearGradient
+ id="linearGradient3924-3-5"><stop
+ id="stop3926-9-6"
+ style="stop-color:#ff6e6e;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3928-1-9"
+ style="stop-color:#ff7171;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ x1="137.93805"
+ y1="118.24712"
+ x2="183.56607"
+ y2="110.30299"
+ id="linearGradient5609-6"
+ xlink:href="#linearGradient3854-9-1"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.17353113,0.0833269,0.22354827,0.46554701,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient3854-9-1"><stop
+ id="stop3856-6-2"
+ style="stop-color:#a00000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3860-9-0"
+ style="stop-color:#c90000;stop-opacity:0"
+ offset="0.75" /><stop
+ id="stop3862-3-8"
+ style="stop-color:#a00000;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient5207-5"
+ xlink:href="#linearGradient3339-4-4"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ id="linearGradient3339-4-4"><stop
+ id="stop3341-7-3"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3347-6-0"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3343-3-2"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="1" /></linearGradient><filter
+ color-interpolation-filters="sRGB"
+ id="filter3385-1-2"><feGaussianBlur
+ id="feGaussianBlur3387-7-8"
+ stdDeviation="0.14607691" /></filter><filter
+ color-interpolation-filters="sRGB"
+ id="filter3297-4"><feGaussianBlur
+ stdDeviation="0.26694977"
+ id="feGaussianBlur3299-77" /></filter><filter
+ color-interpolation-filters="sRGB"
+ id="filter3293-5"><feGaussianBlur
+ stdDeviation="0.355"
+ id="feGaussianBlur3295-8" /></filter><linearGradient
+ id="linearGradient3197"><stop
+ id="stop3199"
+ style="stop-color:#002f32;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3201"
+ style="stop-color:#045b04;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3205"><stop
+ id="stop3207"
+ style="stop-color:#2c8300;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3215"
+ style="stop-color:#3db800;stop-opacity:1"
+ offset="0.25" /><stop
+ id="stop3213"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3209"
+ style="stop-color:#69cf35;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3219"><stop
+ id="stop3221"
+ style="stop-color:#0e7309;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3223"
+ style="stop-color:#70d13e;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient7410"><stop
+ id="stop7412"
+ style="stop-color:#0e7309;stop-opacity:1"
+ offset="0" /><stop
+ id="stop7414"
+ style="stop-color:#70d13e;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3261"><stop
+ id="stop3263"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="0" /><stop
+ id="stop3269"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="0.5" /><stop
+ id="stop3265"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3327"><stop
+ id="stop3329"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3335"
+ style="stop-color:#fdd99a;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3331"
+ style="stop-color:#c39539;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3319"><stop
+ id="stop3321"
+ style="stop-color:#7d491f;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44679"
+ style="stop-color:#87570f;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3323"
+ style="stop-color:#926600;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3339-4-5"><stop
+ id="stop3341-7-9"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3347-6-7"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3343-3-5"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="1" /></linearGradient><filter
+ color-interpolation-filters="sRGB"
+ id="filter3385-1-3"><feGaussianBlur
+ id="feGaussianBlur3387-7-8-5"
+ stdDeviation="0.14607691" /></filter><linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient7597"
+ xlink:href="#linearGradient3197"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-200.71307,-35.857716)" /><radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient7599"
+ xlink:href="#linearGradient3205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient7601"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient7603"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient7605"
+ xlink:href="#linearGradient3261"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><radialGradient
+ cx="53.60223"
+ cy="59.728882"
+ r="17.834057"
+ fx="53.60223"
+ fy="59.728882"
+ id="radialGradient7607"
+ xlink:href="#linearGradient3327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient
+ x1="41.945538"
+ y1="46.665127"
+ x2="41.945538"
+ y2="82.333244"
+ id="linearGradient7609"
+ xlink:href="#linearGradient3319"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient7611"
+ xlink:href="#linearGradient3339-4-5"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient7647"
+ xlink:href="#linearGradient3197"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-200.71307,-35.857716)" /><radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient7649"
+ xlink:href="#linearGradient3205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient7651"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient7653"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient7655"
+ xlink:href="#linearGradient3261"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><radialGradient
+ cx="53.60223"
+ cy="59.728882"
+ r="17.834057"
+ fx="53.60223"
+ fy="59.728882"
+ id="radialGradient7657"
+ xlink:href="#linearGradient3327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient
+ x1="41.945538"
+ y1="46.665127"
+ x2="41.945538"
+ y2="82.333244"
+ id="linearGradient7659"
+ xlink:href="#linearGradient3319"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient7661"
+ xlink:href="#linearGradient3339-4-5"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient7697"
+ xlink:href="#linearGradient3197"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-200.71307,-35.857716)" /><radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient7699"
+ xlink:href="#linearGradient3205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient7701"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient7703"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient7705"
+ xlink:href="#linearGradient3261"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><radialGradient
+ cx="53.60223"
+ cy="59.728882"
+ r="17.834057"
+ fx="53.60223"
+ fy="59.728882"
+ id="radialGradient7707"
+ xlink:href="#linearGradient3327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient
+ x1="41.945538"
+ y1="46.665127"
+ x2="41.945538"
+ y2="82.333244"
+ id="linearGradient7709"
+ xlink:href="#linearGradient3319"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient7711"
+ xlink:href="#linearGradient3339-4-5"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6240-0"
+ id="linearGradient3977"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.97485321,0,0,0.9346174,67.722525,65.069344)"
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6240"
+ id="linearGradient3980"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2726732,0,0,1.2382824,-0.19659917,-0.00272625)"
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3197"
+ id="linearGradient4112"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-200.71307,-35.857716)"
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989" /><radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3205"
+ id="radialGradient4114"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)"
+ cx="491.52231"
+ cy="670.92523"
+ fx="491.52231"
+ fy="670.92523"
+ r="36.426601" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3219"
+ id="linearGradient4116"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-648.26169,-672.7913)"
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3219"
+ id="linearGradient4118"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)"
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084" /><radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3261"
+ id="radialGradient4120"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)"
+ cx="479.68311"
+ cy="709.6579"
+ fx="479.68311"
+ fy="709.6579"
+ r="5.0058851" /><radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3327"
+ id="radialGradient4122"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)"
+ cx="53.60223"
+ cy="59.728882"
+ fx="53.60223"
+ fy="59.728882"
+ r="17.834057" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3319"
+ id="linearGradient4124"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)"
+ x1="41.945538"
+ y1="46.665127"
+ x2="41.945538"
+ y2="82.333244" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3339-4-5"
+ id="linearGradient4126"
+ gradientUnits="userSpaceOnUse"
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298" /></defs><g
+ id="g14"
+ transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g
+ id="g16" /><g
+ id="g30"
+ mask="url(#mask22)"><g
+ id="g32" /><g
+ id="g99"><g
+ id="g101"
+ clip-path="url(#clipPath34)"><g
+ id="g103"><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#pattern62);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path105"
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" /></g></g></g></g></g><g
+ id="g107"
+ transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g
+ id="g109"
+ transform="matrix(1,0,0,-1,0,91.441505)"><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient111);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path117"
+ d="m 14.551,35.969 c 0,0 1.234,4.996 -3.903,5.043 -2.46,0.023 -1.957,4.086 -1.957,4.086 l 31.227,-0.036 c 0,0 0.422,-3.941 -2.047,-3.988 -5.051,-0.094 -3.859,-5.168 -3.859,-5.168 l -19.461,0.063 z" /></g></g><g
+ id="g119"
+ transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g
+ id="g121"
+ transform="matrix(1,0,0,-1,0,91.441505)"><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient123);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path129"
+ d="m 4.949,3.52 38.598,0 c 2.047,0 3.543,1.445 3.543,3.671 l 0.012,26.528 c 0,1.711 -0.536,2.242 -2.063,2.242 L 3.574,35.941 C 2.383,35.91 1.531,35.441 1.516,33.895 L 1.531,7 c 0,-1.793 1.559,-3.48 3.418,-3.48 z" /></g></g><g
+ id="g131"
+ transform="matrix(1.25,0,0,-1.25,0,114.30188)"><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient133);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path139"
+ d="m 5.574,83.848 37.453,0 0,-23.277 -37.453,0 0,23.277 z" /></g><g
+ id="g141"
+ transform="matrix(1.25,0,0,1.25,0,-1.25e-6)"><path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path143"
+ d="m 5.574,7.594 37.453,0 0,23.277 -37.453,0 0,-23.277 z" /></g><g
+ id="g145"
+ transform="matrix(1.25,0,0,1.25,0,-1.25e-6)"><path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path147"
+ d="m 4.934,4.398 c -1.325,0 -2.532,1.309 -2.532,2.594 l 0,26.918 c 0.008,0.613 0.149,0.801 0.286,0.918 0.132,0.113 0.425,0.203 0.886,0.223 l 0.031,0 41.442,0.031 c 0.66,0 0.867,-0.102 0.949,-0.191 0.082,-0.086 0.219,-0.407 0.219,-1.168 l 0,-26.543 c 0,-1.828 -1.024,-2.782 -2.656,-2.782 l -38.625,0 z" /></g><g
+ id="g149"
+ transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g
+ id="g151" /><g
+ id="g165"
+ mask="url(#mask157)"><g
+ id="g167" /><g
+ id="g234"><g
+ id="g236"
+ clip-path="url(#clipPath169)"><g
+ id="g238"><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#pattern197);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path240"
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" /></g></g></g></g></g><g
+ id="g242"
+ transform="matrix(1.25,0,0,1.25,0,-1.25e-6)"><path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#8d8d8f;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.43902402;stroke-dasharray:none"
+ id="path244"
+ d="m 10.113,42.004 c 6.789,0.004 28.141,0 28.141,0" /></g><g
+ id="g246"
+ transform="matrix(1.25,0,0,1.25,0,-1.25e-6)"><path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path248"
+ d="m 9.766,43.027 c 6.789,0 29.074,0 29.074,0" /></g><g
+ id="g250"
+ transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g
+ id="g252" /><g
+ id="g266"
+ mask="url(#mask258)"><g
+ id="g268" /><g
+ id="g335"><g
+ id="g337"
+ clip-path="url(#clipPath270)"><g
+ id="g339"><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#pattern298);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path341"
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" /></g></g></g></g></g><g
+ id="g343"
+ transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g
+ id="g345" /><g
+ id="g359"
+ mask="url(#mask351)"><g
+ id="g361" /><g
+ id="g428"><g
+ id="g430"
+ clip-path="url(#clipPath363)"><g
+ id="g432"><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#pattern391);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path434"
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" /></g></g></g></g></g><g
+ id="g436"
+ transform="matrix(1.6067734,0,0,-1.6067734,-32.272865,202.50474)"><g
+ id="g438"
+ transform="matrix(1,0,0,-1,0,91.441505)"><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient440);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path446"
+ d="m 70.906,27.371 c 0,0 0.746,3.024 -2.359,3.051 -1.492,0.016 -1.188,2.473 -1.188,2.473 l 18.903,-0.02 c 0,0 0.254,-2.387 -1.239,-2.414 -3.058,-0.055 -2.335,-3.129 -2.335,-3.129 l -11.782,0.039 z" /></g></g><g
+ id="g448"
+ transform="matrix(1.6067734,0,0,-1.6067734,-32.272865,202.50474)"><g
+ id="g450"
+ transform="matrix(1,0,0,-1,0,91.441505)"><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient452);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path458"
+ d="m 65.094,7.73 23.363,0 c 1.242,0 2.145,0.875 2.145,2.223 l 0.007,16.055 c 0,1.035 -0.324,1.359 -1.246,1.359 L 64.266,27.355 C 63.543,27.336 63.027,27.051 63.02,26.117 L 63.027,9.84 c 0,-1.09 0.942,-2.11 2.067,-2.11 z" /></g></g><g
+ id="g460"
+ transform="matrix(1.6067734,0,0,-1.6067734,-32.272865,202.50474)"><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient462);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path468"
+ d="m 65.473,81.246 22.672,0 0,-14.09 -22.672,0 0,14.09 z" /></g><g
+ id="g470"
+ transform="matrix(1.6067734,0,0,1.6067734,-32.272865,55.578966)"><path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path472"
+ d="m 65.473,10.195 22.672,0 0,14.09 -22.672,0 0,-14.09 z" /></g><g
+ id="g474"
+ transform="matrix(1.6067734,0,0,1.6067734,-32.272865,55.578966)"><path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path476"
+ d="m 65.086,8.262 c -0.801,0 -1.531,0.793 -1.531,1.57 l 0,16.293 c 0.004,0.371 0.09,0.484 0.172,0.555 0.082,0.07 0.257,0.125 0.535,0.136 l 0.019,0 25.086,0.016 c 0.399,0 0.524,-0.059 0.574,-0.113 0.047,-0.051 0.133,-0.246 0.133,-0.707 l 0,-16.067 c 0,-1.105 -0.621,-1.683 -1.609,-1.683 l -23.379,0 z" /></g><g
+ id="g478"
+ transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g
+ id="g480" /><g
+ id="g494"
+ mask="url(#mask486)"><g
+ id="g496" /><g
+ id="g563"><g
+ id="g565"
+ clip-path="url(#clipPath498)"><g
+ id="g567"><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#pattern526);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path569"
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" /></g></g></g></g></g><g
+ id="g571"
+ transform="matrix(1.6067734,0,0,1.6067734,-32.272865,55.578966)"><path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#8d8d8f;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.43902402;stroke-dasharray:none"
+ id="path573"
+ d="m 68.223,31.023 c 4.109,0.004 17.031,0 17.031,0" /></g><g
+ id="g575"
+ transform="matrix(1.6067734,0,0,1.6067734,-32.272865,55.578966)"><path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path577"
+ d="m 68.012,31.641 c 4.109,0.004 17.597,0 17.597,0" /></g><g
+ id="g579"
+ transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g
+ id="g581" /><g
+ id="g595"
+ mask="url(#mask587)"><g
+ id="g597" /><g
+ id="g664"><g
+ id="g666"
+ clip-path="url(#clipPath599)"><g
+ id="g668"><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#pattern627);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path670"
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" /></g></g></g></g></g><g
+ id="g672"
+ transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g
+ id="g674" /><g
+ id="g688"
+ mask="url(#mask680)"><g
+ id="g690" /><g
+ id="g757"><g
+ id="g759"
+ clip-path="url(#clipPath692)"><g
+ id="g761"><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#pattern720);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path763"
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" /></g></g></g></g></g><g
+ id="g807"
+ transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g
+ id="g809" /><g
+ id="g823"
+ mask="url(#mask815)"><g
+ id="g825" /><g
+ id="g892"><g
+ id="g894"
+ clip-path="url(#clipPath827)"><g
+ id="g896"><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#pattern855);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path898"
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" /></g></g></g></g></g><g
+ id="g908"
+ transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g
+ id="g910" /><g
+ id="g924"
+ mask="url(#mask916)"><g
+ id="g926" /><g
+ id="g993"><g
+ id="g995"
+ clip-path="url(#clipPath928)"><g
+ id="g997"><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#pattern956);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path999"
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" /></g></g></g></g></g><g
+ id="g1001"
+ transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g
+ id="g1003" /><g
+ id="g1017"
+ mask="url(#mask1009)"><g
+ id="g1019" /><g
+ id="g1086"><g
+ id="g1088"
+ clip-path="url(#clipPath1021)"><g
+ id="g1090"><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#pattern1049);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path1092"
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" /></g></g></g></g></g><g
+ id="g1136"
+ transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g
+ id="g1138" /><g
+ id="g1152"
+ mask="url(#mask1144)"><g
+ id="g1154" /><g
+ id="g1221"><g
+ id="g1223"
+ clip-path="url(#clipPath1156)"><g
+ id="g1225"><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#pattern1184);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path1227"
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" /></g></g></g></g></g><g
+ id="g1237"
+ transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g
+ id="g1239" /><g
+ id="g1253"
+ mask="url(#mask1245)"><g
+ id="g1255" /><g
+ id="g1322"><g
+ id="g1324"
+ clip-path="url(#clipPath1257)"><g
+ id="g1326"><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#pattern1285);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path1328"
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" /></g></g></g></g></g><g
+ id="g1334"
+ transform="matrix(1.25,0,0,1.25,0,-1.25e-6)"><path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path1336"
+ d="m 56.102,52.199 -4.903,-17.898 -3.801,5.597 -6,1.602 14.704,10.699 z" /></g><path
+ inkscape:connector-curvature="0"
+ style="opacity:0.65;fill:url(#linearGradient3980);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path4073"
+ d="m 7.4693855,9.9423812 0,22.2987978 C 28.39779,30.564236 36.230137,19.719148 53.245696,18.586078 l 0,-8.6825443 -45.7763105,0.03885 z" /><path
+ inkscape:connector-curvature="0"
+ style="opacity:0.65;fill:url(#linearGradient3977);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path4488"
+ d="m 73.59458,72.575604 0,16.830445 C 89.625502,88.140344 95.624991,79.954805 108.65872,79.0996 l 0,-6.553316 -35.06414,0.02933 z" /><g
+ id="g5712"
+ transform="matrix(0.27857837,0,0,0.27857837,69.254277,62.995619)"><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297-9)"
+ id="path44010"
+ d="m 83.554544,24.461435 c -14.71669,0 -26.69498,11.97829 -26.69498,26.69498 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.694966,-11.97829 26.694966,-26.69498 0,-14.71669 -11.978286,-26.69498 -26.694966,-26.69498 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293-2)"
+ id="path44012"
+ d="m 83.471334,61.729865 c -21.63445,0 -39.1875,17.34747 -39.1875,38.750005 l 0,6.125 c 0,6.05287 6.27536,18.75004 28.90625,18.75004 l 20.53125,0 c 22.630376,0 28.937496,-12.07968 28.937496,-18.75004 l 0,-6.125 c 0,-21.402545 -17.55305,-38.750005 -39.187496,-38.750005 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient5673-0);fill-opacity:1;stroke:none"
+ id="path44014"
+ d="m 82.721334,60.479865 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125005 c 0,6.05287 6.27536,18.75004 28.90625,18.75004 l 20.53125,0 c 22.630376,0 28.937496,-12.07968 28.937496,-18.75004 l 0,-6.125005 c 0,-21.40254 -17.55305,-38.75 -39.187496,-38.75 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient5670-6);fill-opacity:1;stroke:none"
+ id="path44016"
+ d="m 82.721334,62.640575 c -20.11022,0 -36.4266,15.9074 -36.4266,35.53322 l 0,5.616555 c 0,5.55039 5.83324,17.19346 26.8697,17.19346 l 19.08475,0 c 21.035986,0 26.898746,-11.07683 26.898746,-17.19346 l 0,-5.616555 c 0,-19.62582 -16.31638,-35.53322 -36.426596,-35.53322 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient5667-0);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path44018"
+ d="m 100.20776,69.951755 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.652675" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient5664-4);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path44020"
+ d="m 65.396354,69.951755 c -8.46364,9.0621 -14.91528,24.09751 -16.80551,38.652675" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5661-5);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path44022"
+ d="m 76.029544,74.153135 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient5658-1);fill-opacity:1;stroke:none"
+ id="path44024"
+ d="m 82.802063,84.286357 -6.375115,-8.729195 12.750228,0 -6.375113,8.729195 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient5655-7);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path44028"
+ d="m 66.167774,68.733775 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#9dcfff;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5652-7);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path44621"
+ d="m 89.238444,74.153135 c 2.3027,1.97418 4.96223,3.5307 3.72122,8.28271 5.66073,-1.14662 9.949706,-8.89011 6.36208,-14.40472 l -10.0833,6.12201 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient5645-3);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path2368"
+ d="M 94.866576,3.8320402 125.6365,30.998333 84.545268,42.990242 53.315632,16.353847 94.866576,3.8320402 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient5640-1);fill-opacity:1;stroke:url(#linearGradient5642-0);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path44030"
+ d="m 108.48254,49.905192 a 25.680481,25.680481 0 1 1 -51.360957,0 25.680481,25.680481 0 1 1 51.360957,0 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient5637-0);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path1526"
+ d="M 95.339339,2.2381767 126.15042,28.890606 125.62204,31.068045 94.816591,4.063144 95.339339,2.2381767 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient5634-9);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path2296"
+ d="M 95.339339,2.2381767 53.897375,14.26818 53.368996,16.44562 94.816591,4.063144 95.339339,2.2381767 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient5631-1);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path2308"
+ d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient5628-3);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path2390"
+ d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient5625-6);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path2334"
+ d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient5622-2);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path2378"
+ d="m 107.19478,29.038759 c 0,0 -0.0232,-2.96189 -2.87177,-5.616365 -2.84859,-2.654477 -14.259844,-12.214967 -33.764071,-5.122837 -1.779252,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660762 -4.034895,9.807253 -4.034895,9.807253 0,0 14.650436,1.009743 20.024613,13.294259 12.141744,-9.677712 23.688825,-4.204767 23.688825,-4.204767 l -0.74633,-10.659294 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#4a4a4a;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path2346"
+ d="m 64.162631,30.18291 c 0.149332,0.01059 14.629755,1.063358 19.976289,13.284672 11.922076,-9.502622 23.13746,-4.443379 23.5442,-4.255555 l 0.0324,0.45444 c 0,0 -11.547076,-5.472945 -23.688824,4.204771 C 78.652529,31.586719 64.002093,30.576979 64.002093,30.576979 c 0,0 0.15161,-0.371808 0.160545,-0.394069 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient5618-0);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path2312"
+ d="m 113.60446,18.082424 -1.90168,-1.445041 c 3.80497,-1.738734 7.43718,0.715259 6.56708,4.719089 l -1.22689,5.969541 c 0.0432,0.587925 0.46457,1.781249 0.0473,2.502842 -0.10735,1.184875 -1.3604,1.258502 -1.25176,2.164778 0.0432,0.587928 1.47788,1.196989 1.72301,2.387496 1.28414,1.824459 3.37872,5.88301 5.33931,7.295208 1.50561,0.927498 1.91686,1.943279 3.66098,1.18229 0,0 0.6432,-0.265733 0.69931,0.363737 -4.78339,3.695975 -10.00982,-9.009253 -9.00872,-5.467637 6.68202,14.27976 8.21084,11.272157 8.55487,11.806497 0.34402,0.534341 -0.051,0.986356 -0.051,0.986356 l -0.52871,-0.0085 0.31272,0.287043 -0.61385,0.906853 -1.43837,-0.446058 1.1172,0.687721 -0.50866,0.94379 -0.9153,-0.08514 0.59413,0.3268 -0.11363,0.491771 -0.88399,0.162157 0.27578,0.392223 -0.39504,0.452019 -0.6965,-0.539975 0.48614,0.466097 -0.75596,0.975096 -1.02048,-0.122078 0.23885,0.497407 -1.04019,1.111575 -1.12285,-0.335247 c 0,0 -6.11605,-12.190603 -6.8614,-16.29223 -0.74535,-4.101625 0.96815,-7.63512 0.96815,-7.63512 0,0 1.05742,0.01691 0.30676,-1.546372 -1.12002,-0.511482 -0.42667,-1.981163 -0.26766,-3.106818 0.15902,-1.125658 1.60584,-1.208306 1.60584,-1.208306 -0.003,0.176234 0.87053,-5.232949 1.07604,-6.640612 0.20551,-1.407664 -1.17557,-3.094485 -2.97083,-2.199306 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient5615-9);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path3870"
+ d="m 115.91213,31.697338 c -0.0283,0.09625 -0.0898,0.176977 -0.0753,0.298474 0.004,0.05087 0.0627,0.104062 0.0857,0.155615 -0.22808,0.653732 -0.85238,4.783698 1.5573,9.275224 2.58485,5.743692 6.17379,11.446673 6.67497,12.239195 l -0.1105,0.02029 0.0473,0.07568 -0.0838,0.0075 c -1.74796,-2.671528 -5.72681,-9.566492 -7.26492,-13.103586 -1.77943,-4.092008 -1.17869,-7.872147 -1.17869,-7.872147 0,0 0.0503,-0.585045 0.0905,-0.972506 l 0.25759,-0.123687 z m -0.53294,0.255905 c -0.0271,0.148082 -0.031,0.106964 -0.0618,0.281061 -0.77301,5.472219 0.0637,7.784838 0.11098,7.947636 1.94994,4.370678 4.95692,10.04966 7.46633,15.116404 l -0.0945,0.121887 -0.0483,-0.0096 c -0.5523,-1.068673 -6.26702,-12.131795 -7.3696,-14.550761 -1.1561,-2.536393 -0.37181,-8.172154 -0.37181,-8.172154 0,0 0.0816,-0.42384 0.12,-0.615067 l 0.2487,-0.119421 z m -0.39081,0.187665 c -0.0306,0.130484 -0.0222,0.09744 -0.0568,0.245885 -0.98219,4.521543 -1.12277,6.100908 -0.27012,8.906683 l 6.93973,14.975782 -0.16129,0.164884 c -0.37775,-0.7712 -5.57624,-11.39103 -6.96106,-15.020189 -1.43567,-3.762422 0.19657,-8.991591 0.19657,-8.991591 l 0.0199,-0.140706 0.29311,-0.140748 z m 0.99844,0.121722 c 0.0529,0.08014 0.0814,0.164318 0.16349,0.249406 -0.0109,0.10155 -0.41901,4.037563 1.62811,7.601687 3.30572,6.554234 5.62206,9.753525 6.88943,11.229006 l -0.17979,-0.05576 0.29245,0.17655 c 0.31865,0.362827 0.53553,0.579229 0.70221,0.733969 l -0.10906,0.205391 c -3.0155,-2.788048 -7.67376,-11.678343 -8.65681,-13.976383 -0.93689,-2.190161 -0.78502,-5.120942 -0.73003,-6.163868 z m 0.17663,0.254022 c 0.0928,0.0955 0.20817,0.19957 0.32125,0.30481 -0.0584,0.327528 -0.008,2.619958 0.65763,4.351427 3.59805,8.221928 7.67344,12.549433 9.17238,13.980214 l -0.0949,0.143916 c -5.65706,-5.243362 -8.61552,-12.638435 -9.23491,-13.928329 -0.62085,-1.292946 -0.81735,-4.779678 -0.8215,-4.852038 z m 0.42111,0.398955 c 0.0105,0.0099 0.0153,0.02121 0.026,0.03126 0.54782,2.496948 1.35363,3.685882 1.84436,4.273434 0.003,0.0777 0.0112,0.16213 0.0562,0.344646 -0.22166,-0.32497 -0.32388,-0.389714 -0.33083,-0.256486 -1.15972,-2.095324 -1.45557,-3.836954 -1.59566,-4.392858 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient5612-8);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path3920"
+ d="m 115.85352,31.663647 c -0.0283,0.09625 -0.0898,0.176979 -0.0753,0.298476 0.0136,0.184351 0.17979,0.373322 0.38738,0.579103 0.0136,0.06266 0.023,0.09735 0.037,0.168058 0.54619,2.757078 1.41267,3.989248 1.9272,4.605283 0.003,0.09157 -0.0166,0.121374 0.064,0.406472 0.19472,0.41613 0.33888,0.683193 0.52495,1.070479 -0.13062,-0.153536 -0.32065,-0.428383 -0.67134,-1.011121 -1.52995,-2.542366 -1.77339,-5.051088 -1.89601,-5.177698 -0.0955,-0.263292 -0.0761,2.732998 0.66584,4.664456 3.66253,8.369271 7.8511,12.742461 9.28077,14.092121 l -0.0949,0.143913 c -5.73254,-5.249092 -8.71969,-12.741574 -9.34329,-14.040234 -0.62731,-1.30638 -0.82968,-4.891829 -0.82968,-4.891832 0,0 -0.45066,4.026286 1.62315,7.636865 4.45297,8.828902 7.13324,11.594718 7.83436,12.218056 l -0.11332,0.196508 C 122.164,49.96029 117.3874,40.848354 116.39171,38.520764 c -1.00935,-2.35954 -0.76537,-5.787484 -0.7283,-6.547252 -0.12263,-0.126609 -1.15961,4.606322 1.49125,9.547401 2.58485,5.743694 6.1738,11.446675 6.67498,12.239197 l -0.1105,0.02029 0.27578,0.392223 -0.0764,0.09133 c -1.6443,-2.454711 -5.91251,-9.85128 -7.50091,-13.503989 -1.77942,-4.092007 -1.17868,-7.872149 -1.17869,-7.872149 0,0 0.0503,-0.585043 0.0905,-0.972507 l 0.52406,-0.251641 z m -0.7994,0.383859 c -0.0271,0.148081 -0.031,0.106966 -0.0618,0.281063 -0.77301,5.472217 0.0637,7.784832 0.11099,7.947633 1.96639,4.407561 5.0083,10.150784 7.5303,15.249641 l -0.20679,-0.02093 c -0.5523,-1.068673 -6.26703,-12.131795 -7.3696,-14.550762 -1.15611,-2.53639 -0.37182,-8.172152 -0.37182,-8.172152 0,0 0.0816,-0.423842 0.12001,-0.615066 l 0.2487,-0.119424 z m -0.39082,0.187664 c -0.0306,0.130488 -0.0222,0.09744 -0.0568,0.245888 -0.98219,4.521544 -1.12277,6.100905 -0.27013,8.906678 l 6.98665,15.073486 -0.15702,0.17377 c -0.29822,-0.608735 -5.61583,-11.467249 -7.01224,-15.126773 -1.43567,-3.762428 0.19656,-8.991591 0.19656,-8.991591 l 0.0199,-0.14071 0.29312,-0.140748 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient5609-6);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="use3848"
+ d="m 113.60446,18.082424 -1.27483,-0.959065 c 3.80497,-1.738734 5.70753,0.846273 5.94023,4.233113 l -1.22689,5.969541 c 0.0432,0.587925 0.46457,1.781249 0.0473,2.502842 -0.10735,1.184875 -1.3604,1.258502 -1.25176,2.164778 0.0432,0.587928 1.47788,1.196989 1.72301,2.387496 1.28414,1.824459 3.37872,5.88301 5.33931,7.295208 1.50561,0.927498 1.91686,1.943279 3.66098,1.18229 0,0 0.6432,-0.265733 0.69931,0.363737 -4.78339,3.695975 -10.00982,-9.009253 -9.00872,-5.467637 6.68202,14.27976 8.21084,11.272157 8.55487,11.806497 0.34402,0.534341 -0.051,0.986356 -0.051,0.986356 l -0.52871,-0.0085 0.31272,0.287043 -0.61385,0.906853 -1.43837,-0.446058 1.1172,0.687721 -0.50866,0.94379 -0.9153,-0.08514 0.59413,0.3268 -0.11363,0.491771 -0.88399,0.162157 0.27578,0.392223 -0.39504,0.452019 -0.6965,-0.539975 0.48614,0.466097 -0.75596,0.975096 -1.02048,-0.122078 0.23885,0.497407 -1.04019,1.111575 -1.12285,-0.335247 c 0,0 -6.11605,-12.190603 -6.8614,-16.29223 -0.74535,-4.101625 0.96815,-7.63512 0.96815,-7.63512 0,0 1.05742,0.01691 0.30676,-1.546372 -1.12002,-0.511482 0.0153,-2.06224 0.17434,-3.187895 0.15901,-1.125658 1.16384,-1.127229 1.16384,-1.127229 0.77459,0.06526 1.26996,-4.856376 1.47547,-6.264039 0.20551,-1.407664 -1.575,-3.471058 -3.37026,-2.575879 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#7f0000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path3946"
+ d="m 114.28311,29.943753 c 0.49479,-0.31028 1.3331,-0.405599 2.65708,0.298067 -0.28917,0.677244 -0.92757,0.954658 -1.04227,1.516989 -0.52987,0.05596 -1.07253,0.09282 -1.54418,0.107535 -0.0359,-0.185534 -0.0611,-0.35482 -0.19267,-0.628878 -0.26879,-0.122748 -0.42825,-0.300007 -0.52061,-0.515126 0.0395,-0.111579 0.19072,-0.495192 0.64265,-0.778587 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#f6ca12;fill-opacity:1;stroke:none"
+ id="path3937"
+ d="m 114.69752,30.761267 c 0.54914,-0.263686 1.20881,-0.03202 1.4725,0.517115 0.20064,0.41784 0.11214,0.890735 -0.18245,1.213425 -0.3225,-0.311108 -0.80766,-0.41008 -1.2351,-0.204831 -0.1342,0.06444 -0.24525,0.145845 -0.33893,0.250191 -0.0889,-0.08724 -0.17614,-0.184704 -0.23313,-0.303405 -0.26369,-0.549131 -0.032,-1.208808 0.51711,-1.472495 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#f6f1d7;fill-opacity:1;stroke:none"
+ id="path3942"
+ d="m 115.34938,30.99509 c 2.45474,1.059132 -2.30147,0.635082 0,0 z" /><g
+ id="g3842"
+ transform="matrix(0.92615143,0,0,0.79615016,38.327829,16.316524)"><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient5207-5);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3337"
+ d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1-2)"
+ id="path3360"
+ transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)"
+ d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path3375"
+ d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z" /></g></g><g
+ transform="matrix(0.35987837,0,0,0.35987837,86.543758,11.041734)"
+ id="g5744"><path
+ d="m -155.78611,-12.407395 c -14.71669,0 -26.69498,11.97828915 -26.69498,26.694979 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.69497,-11.97829 26.69497,-26.69498 0,-14.71668985 -11.97829,-26.694979 -26.69497,-26.694979 z"
+ id="path3281"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297-4)"
+ inkscape:connector-curvature="0" /><path
+ d="m -155.32695,24.861034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z"
+ id="path3283"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293-5)"
+ inkscape:connector-curvature="0" /><path
+ d="m -156.61932,23.611034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z"
+ id="path2214"
+ style="fill:url(#linearGradient4112);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m -156.61932,25.771744 c -20.11022,0 -36.4266,15.9074 -36.4266,35.53322 l 0,5.61655 c 0,5.55039 5.83324,17.193505 26.8697,17.193505 l 19.08475,0 c 21.03599,0 26.89875,-11.076875 26.89875,-17.193505 l 0,-5.61655 c 0,-19.62582 -16.31638,-35.53322 -36.4266,-35.53322 z"
+ id="path3193"
+ style="fill:url(#radialGradient4114);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m -139.13289,33.082924 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.65267"
+ id="path3217"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient4116);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" /><path
+ d="m -173.9443,33.082924 c -8.46364,9.0621 -14.91528,24.09751 -16.80551,38.65267"
+ id="path3227"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient4118);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" /><path
+ d="m -163.31111,37.284304 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z"
+ id="path3249"
+ style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:#52aa5d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" /><path
+ d="m -156.53859,49.903956 -6.32332,-10.952307 12.64663,-1e-6 -6.32331,10.952308 z"
+ id="path3245"
+ style="fill:#ff2600;fill-opacity:1;stroke:#800000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" /><path
+ d="m -150.1765,37.284304 c 2.78286,1.49402 6.04258,3.41066 4.80157,8.16267 4.9405,-2.10693 8.86936,-8.77007 5.28173,-14.28468 l -10.0833,6.12201 z"
+ id="path3247"
+ style="fill:#a0ff74;fill-opacity:1;fill-rule:evenodd;stroke:#5eaa5e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" /><path
+ d="m -173.17288,31.864944 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z"
+ id="path3251"
+ style="fill:url(#radialGradient4120);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m -130.85811,13.036361 a 25.68048,25.68048 0 1 1 -51.36096,0 25.68048,25.68048 0 1 1 51.36096,0 z"
+ id="path2309"
+ style="fill:url(#radialGradient4122);fill-opacity:1;stroke:url(#linearGradient4124);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" /><g
+ transform="matrix(1,0,0,0.87225898,-199.74982,-24.193125)"
+ id="g3842-8"><path
+ d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z"
+ id="path3337-3"
+ style="fill:url(#linearGradient4126);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" /><path
+ d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z"
+ transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)"
+ id="path3360-1"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1-3)"
+ inkscape:connector-curvature="0" /><path
+ d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z"
+ id="path3375-8"
+ style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /></g></g></svg> \ No newline at end of file
diff --git a/icons/terminal.svg b/icons/terminal.svg
new file mode 100644
index 0000000..d9b5a2d
--- /dev/null
+++ b/icons/terminal.svg
@@ -0,0 +1,390 @@
+<?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="128"
+ height="128"
+ id="svg1306"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.3.1 r9886"
+ sodipodi:docname="terminal.svg"
+ inkscape:export-filename="/home/andreas/projekt/bild/tango/terminal4.png"
+ inkscape:export-xdpi="240.00000"
+ inkscape:export-ydpi="240.00000"
+ version="1.1"
+ xml:space="preserve"><defs
+ id="defs1308"><radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient5031"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" /><linearGradient
+ inkscape:collect="always"
+ id="linearGradient5060"><stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0"
+ id="stop5062" /><stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop5064" /></linearGradient><radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient5029"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" /><linearGradient
+ id="linearGradient5048"><stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="0"
+ id="stop5050" /><stop
+ id="stop5056"
+ offset="0.5"
+ style="stop-color:black;stop-opacity:1;" /><stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop5052" /></linearGradient><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5048"
+ id="linearGradient5027"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+ x1="302.85715"
+ y1="366.64789"
+ x2="302.85715"
+ y2="609.50507" /><linearGradient
+ inkscape:collect="always"
+ id="linearGradient6447"><stop
+ style="stop-color:#777973;stop-opacity:1;"
+ offset="0"
+ id="stop6449" /><stop
+ style="stop-color:#777973;stop-opacity:0;"
+ offset="1"
+ id="stop6451" /></linearGradient><linearGradient
+ id="linearGradient4254"><stop
+ style="stop-color:#616161;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop4256" /><stop
+ style="stop-color:#a0a0a0;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop4258" /></linearGradient><linearGradient
+ id="linearGradient5176"><stop
+ id="stop5178"
+ offset="0.0000000"
+ style="stop-color:#a2a59c;stop-opacity:1.0000000;" /><stop
+ id="stop5180"
+ offset="1.0000000"
+ style="stop-color:#535750;stop-opacity:1.0000000;" /></linearGradient><linearGradient
+ id="linearGradient2667"><stop
+ id="stop2669"
+ offset="0.0000000"
+ style="stop-color:#ffffff;stop-opacity:1.0000000;" /><stop
+ id="stop2671"
+ offset="1.0000000"
+ style="stop-color:#fcfcff;stop-opacity:0.0000000;" /></linearGradient><linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="26.729263"
+ x2="17.199417"
+ y1="1.6537577"
+ x1="11.492236"
+ gradientTransform="matrix(3.3010911,0,0,2.3928562,-2.937334,1.8381888)"
+ id="linearGradient2673"
+ xlink:href="#linearGradient2667"
+ inkscape:collect="always" /><linearGradient
+ inkscape:collect="always"
+ id="linearGradient2238"><stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2240" /><stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2242" /></linearGradient><linearGradient
+ id="linearGradient2224"><stop
+ style="stop-color:#32342f;stop-opacity:0.54639173;"
+ offset="0.0000000"
+ id="stop2226" /><stop
+ style="stop-color:#32342f;stop-opacity:0;"
+ offset="1"
+ id="stop2228" /></linearGradient><linearGradient
+ id="linearGradient2214"><stop
+ style="stop-color:#a9aaa7;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2216" /><stop
+ style="stop-color:#676964;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop2218" /></linearGradient><linearGradient
+ id="linearGradient2206"><stop
+ style="stop-color:#777973;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2208" /><stop
+ style="stop-color:#cbccca;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop2210" /></linearGradient><linearGradient
+ id="linearGradient2198"><stop
+ style="stop-color:#748f48;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2200" /><stop
+ style="stop-color:#1f2816;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop2202" /></linearGradient><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2198"
+ id="linearGradient2204"
+ x1="23.118565"
+ y1="9.5830288"
+ x2="22.440805"
+ y2="34.225887"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.5371512,0,0,2.5787407,3.2735851,-5.039164)" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2206"
+ id="linearGradient2212"
+ x1="29.870447"
+ y1="32.28574"
+ x2="24.841814"
+ y2="14.157946"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.5567175,0,0,2.543149,2.6828503,-5.365052)" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5176"
+ id="linearGradient2220"
+ x1="8.6529236"
+ y1="9.5865316"
+ x2="21.305075"
+ y2="32.497993"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.5567175,0,0,2.543149,2.6828503,-5.365052)" /><radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2224"
+ id="radialGradient2230"
+ cx="24.04163"
+ cy="42.24213"
+ fx="24.04163"
+ fy="42.24213"
+ r="17.576654"
+ gradientTransform="matrix(1,0,0,0.304598,0,29.37527)"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2238"
+ id="linearGradient2244"
+ x1="20.338758"
+ y1="19.636894"
+ x2="48.845253"
+ y2="49.730762"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.5462868,0,0,2.5312441,2.9999978,-2.501575)" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4254"
+ id="linearGradient4260"
+ x1="11.048059"
+ y1="9.146349"
+ x2="26.178129"
+ y2="30.343304"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.663992,0,0,2.6435845,0.22971132,-5.533339)" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2214"
+ id="linearGradient5719"
+ x1="40.253334"
+ y1="42.318577"
+ x2="36.451904"
+ y2="37.999615"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.6704465,0,0,1.9888311,-0.0483916,19.832814)" /><radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6447"
+ id="radialGradient6453"
+ cx="37.495605"
+ cy="39.510021"
+ fx="37.495605"
+ fy="39.510021"
+ r="2.5100369"
+ gradientTransform="matrix(2.6704465,0,0,1.9702287,-0.0483916,20.567692)"
+ gradientUnits="userSpaceOnUse" /></defs><sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="0.19607843"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="5.6568542"
+ inkscape:cx="23.810703"
+ inkscape:cy="52.124648"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1148"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:showpageshadow="false"
+ inkscape:window-maximized="1" /><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>Terminal</dc:title><dc:date>2005-10-15</dc:date><dc:creator><cc:Agent><dc:title>Andreas Nilsson</dc:title></cc:Agent></dc:creator><dc:subject><rdf:Bag><rdf:li>terminal</rdf:li><rdf:li>emulator</rdf:li><rdf:li>term</rdf:li><rdf:li>command line</rdf:li></rdf:Bag></dc:subject><cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" /><dc:contributor><cc:Agent><dc:title>Jakub Steiner</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="g5022"
+ transform="matrix(0.06554608,0,0,0.05572576,123.17586,99.337235)"><rect
+ y="-150.69685"
+ x="-1559.2523"
+ height="478.35718"
+ width="1339.6335"
+ id="rect4173"
+ style="opacity:0.40206185;color:#000000;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" /><path
+ sodipodi:nodetypes="cccc"
+ id="path5058"
+ d="m -219.61876,-150.68038 c 0,0 0,478.33079 0,478.33079 142.874166,0.90045 345.40022,-107.16966 345.40014,-239.196175 0,-132.026537 -159.436816,-239.134595 -345.40014,-239.134615 z"
+ style="opacity:0.40206185;color:#000000;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ inkscape:connector-curvature="0" /><path
+ style="opacity:0.40206185;color:#000000;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m -1559.2523,-150.68038 c 0,0 0,478.33079 0,478.33079 -142.8742,0.90045 -345.4002,-107.16966 -345.4002,-239.196175 0,-132.026537 159.4368,-239.134595 345.4002,-239.134615 z"
+ id="path5018"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" /></g><rect
+ style="fill:url(#linearGradient2212);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2220);stroke-width:2.67044497;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1316"
+ width="120.15951"
+ height="104.14403"
+ x="3.9643116"
+ y="3.6296694"
+ rx="12.956225"
+ ry="12.956226" /><rect
+ style="fill:url(#linearGradient2204);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4260);stroke-width:2.65698147;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1314"
+ width="99.041534"
+ height="77.502556"
+ x="14.629127"
+ y="14.261132"
+ rx="4.3934588"
+ ry="4.3934569" /><g
+ id="g2286"
+ style="opacity:0.25568183"
+ transform="matrix(2.6704465,0,0,2.6704465,-0.04839156,-5.7210411)"><path
+ id="path1345"
+ d="m 8.0152033,11.500361 31.9789417,0"
+ style="fill:none;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" /><path
+ style="fill:none;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 8.0152033,13.500361 31.9789417,0"
+ id="path2264"
+ inkscape:connector-curvature="0" /><path
+ id="path2266"
+ d="m 8.0152033,15.500361 31.9789417,0"
+ style="fill:none;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" /><path
+ style="fill:none;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 8.0152033,17.500361 31.9789417,0"
+ id="path2268"
+ inkscape:connector-curvature="0" /><path
+ id="path2270"
+ d="m 8.0152033,19.500361 31.9789417,0"
+ style="fill:none;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" /><path
+ style="fill:none;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 8.0152033,21.500361 31.9789417,0"
+ id="path2272"
+ inkscape:connector-curvature="0" /><path
+ id="path2274"
+ d="m 8.0152033,23.500361 31.9789417,0"
+ style="fill:none;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" /><path
+ style="fill:none;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 8.0152033,25.500361 31.9789417,0"
+ id="path2276"
+ inkscape:connector-curvature="0" /><path
+ id="path2278"
+ d="m 8.0152033,27.500361 31.9789417,0"
+ style="fill:none;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" /><path
+ style="fill:none;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 8.0152033,29.500361 31.9789417,0"
+ id="path2280"
+ inkscape:connector-curvature="0" /><path
+ id="path2282"
+ d="m 8.0152033,31.500361 31.9789417,0"
+ style="fill:none;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" /><path
+ style="fill:none;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 8.0152033,33.500361 31.9789417,0"
+ id="path2284"
+ inkscape:connector-curvature="0" /></g><rect
+ style="opacity:0.76373626;fill:none;stroke:url(#linearGradient2244);stroke-width:2.67044497;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2232"
+ width="114.6827"
+ height="98.80809"
+ x="6.7726116"
+ y="6.2978683"
+ rx="10.123788"
+ ry="10.123788" /><path
+ style="font-size:18.58501053px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:#6ed66e;stroke-width:2.6704464pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.27868856;font-family:Bitstream Vera Sans Mono"
+ d="m 30.995548,49.502169 0,-8.15659 23.993502,10.844133 0,4.956132 -23.993502,10.915274 0,-8.132359 18.598047,-4.950628 -18.598047,-5.475962 z m 50.451771,26.774858 0,5.271985 -29.116962,0 0,-5.271985 29.116962,0"
+ id="text1340"
+ sodipodi:nodetypes="ccccccccccccc"
+ inkscape:connector-curvature="0" /><path
+ sodipodi:nodetypes="ccccccc"
+ style="opacity:0.53142856;fill:url(#linearGradient2673);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 20.314799,15.642531 c -1.397407,0 -4.202903,0.507887 -4.202903,2.739814 L 16.427142,62.48889 C 63.619236,59.916219 54.146805,40.441435 112.11036,30.686006 L 111.94283,19.09109 c -0.20899,-3.004499 -1.44022,-3.289788 -4.29982,-3.27212 L 20.314799,15.642531 z"
+ id="path2443"
+ inkscape:connector-curvature="0" /><rect
+ style="opacity:0.71428576;fill:none;stroke:#000000;stroke-width:5.34089088;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1340"
+ width="90.864693"
+ height="69.585075"
+ x="18.616575"
+ y="18.260942"
+ rx="0.31439745"
+ ry="0.31439745" /><rect
+ style="fill:url(#radialGradient6453);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5719);stroke-width:2.67044973;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect5025"
+ width="10.735391"
+ height="7.9018679"
+ x="94.713921"
+ y="94.460587"
+ rx="0.95653802"
+ ry="1.4960535" /><rect
+ style="fill:#93d94c;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="rect6458"
+ width="5.3408928"
+ height="5.3408928"
+ x="85.405899"
+ y="95.755928"
+ rx="1.496052"
+ ry="1.496052" /><path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ id="path2300"
+ sodipodi:cx="28.3125"
+ sodipodi:cy="38.75"
+ sodipodi:rx="0.5625"
+ sodipodi:ry="0.5625"
+ d="m 28.875,38.75 a 0.5625,0.5625 0 1 1 -1.125,0 0.5625,0.5625 0 1 1 1.125,0 z"
+ transform="matrix(2.6704465,0,0,2.6704465,11.634812,-5.887944)" /></g></svg> \ No newline at end of file
diff --git a/icons/tutor2all.svg b/icons/tutor2all.svg
new file mode 100644
index 0000000..9fde8f2
--- /dev/null
+++ b/icons/tutor2all.svg
@@ -0,0 +1,2913 @@
+<?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.1"
+ width="114.38715"
+ height="114.30188"
+ id="svg2"
+ xml:space="preserve"
+ inkscape:version="0.48.3.1 r9886"
+ sodipodi:docname="tutor2all.svg"><sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1148"
+ id="namedview10864"
+ showgrid="false"
+ inkscape:zoom="8.2588318"
+ inkscape:cx="57.193577"
+ inkscape:cy="70.136895"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="g10" /><metadata
+ id="metadata8"><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 /></cc:Work></rdf:RDF></metadata><defs
+ id="defs6"><clipPath
+ id="clipPath18"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path20" /></clipPath><mask
+ id="mask22"><g
+ id="g24"><g
+ clip-path="url(#clipPath18)"
+ id="g26"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path28"
+ style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath34"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path36" /></clipPath><clipPath
+ id="clipPath38"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path40" /></clipPath><clipPath
+ id="clipPath42"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path44" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient46"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.980126,0,0,-0.216527,1.465394,57.746052)"
+ spreadMethod="pad"><stop
+ id="stop48"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop50"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath52"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path54" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient56"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.980126,0,0,-0.216527,1.465394,57.746052)"
+ spreadMethod="pad"><stop
+ id="stop58"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop60"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern62"><defs
+ id="defs64"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask0"><g
+ id="g67"><g
+ clip-path="url(#clipPath42)"
+ id="g69"><g
+ id="g71"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#radialGradient46);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path73" /></g></g></g></mask></defs><g
+ id="g75" /><g
+ id="g77"><g
+ clip-path="url(#clipPath38)"
+ id="g79"><g
+ id="g81"><g
+ id="g83"><g
+ id="g85" /><g
+ mask="url(#_mask0)"
+ id="g87"><g
+ id="g89" /><g
+ id="g91"><g
+ clip-path="url(#clipPath52)"
+ id="g93"><g
+ id="g95"><path
+ d="m 48.215,48.504 c 0,-2.844 -10.426,-5.145 -23.289,-5.145 -12.86,0 -23.285,2.301 -23.285,5.145 0,2.84 10.425,5.144 23.285,5.144 12.863,0 23.289,-2.304 23.289,-5.144 z"
+ style="fill:url(#radialGradient56);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path97" /></g></g></g></g></g></g></g></g></pattern><linearGradient
+ x1="31.742188"
+ y1="37.84375"
+ x2="31.859375"
+ y2="43.824219"
+ id="linearGradient111"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.012271,0,0,-1.012271,0,91.441505)"
+ spreadMethod="pad"><stop
+ id="stop113"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop115"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="17.246094"
+ y1="6.375"
+ x2="39.90625"
+ y2="38.875"
+ id="linearGradient123"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.012271,0,0,-1.012271,0,91.441505)"
+ spreadMethod="pad"><stop
+ id="stop125"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop127"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="24.007812"
+ cy="32.996094"
+ r="19"
+ fx="24.007812"
+ fy="32.996094"
+ id="radialGradient133"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.247759,0,0,-0.787943,-5.653165,89.260693)"
+ spreadMethod="pad"><stop
+ id="stop135"
+ style="stop-color:#555753;stop-opacity:1"
+ offset="0" /><stop
+ id="stop137"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath153"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path155" /></clipPath><mask
+ id="mask157"><g
+ id="g159"><g
+ clip-path="url(#clipPath153)"
+ id="g161"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path163"
+ style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath169"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path171" /></clipPath><clipPath
+ id="clipPath173"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path175" /></clipPath><clipPath
+ id="clipPath177"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path179" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient181"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)"
+ spreadMethod="pad"><stop
+ id="stop183"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop185"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath187"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path189" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient191"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)"
+ spreadMethod="pad"><stop
+ id="stop193"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop195"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern197"><defs
+ id="defs199"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask1"><g
+ id="g202"><g
+ clip-path="url(#clipPath177)"
+ id="g204"><g
+ id="g206"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient181);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path208" /></g></g></g></mask></defs><g
+ id="g210" /><g
+ id="g212"><g
+ clip-path="url(#clipPath173)"
+ id="g214"><g
+ id="g216"><g
+ id="g218"><g
+ id="g220" /><g
+ mask="url(#_mask1)"
+ id="g222"><g
+ id="g224" /><g
+ id="g226"><g
+ clip-path="url(#clipPath187)"
+ id="g228"><g
+ id="g230"><path
+ d="m 14.164,55.52 c 0.086,-2.2 -0.285,-2.95 -1.652,-3.723 l 23.902,-1.313 c -0.961,1.184 -2.355,2.969 -1.976,5.051 L 14.164,55.52 z"
+ style="fill:url(#linearGradient191);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path232" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath254"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path256" /></clipPath><mask
+ id="mask258"><g
+ id="g260"><g
+ clip-path="url(#clipPath254)"
+ id="g262"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path264"
+ style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath270"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path272" /></clipPath><clipPath
+ id="clipPath274"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path276" /></clipPath><clipPath
+ id="clipPath278"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path280" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient282"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)"
+ spreadMethod="pad"><stop
+ id="stop284"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop286"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath288"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path290" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient292"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)"
+ spreadMethod="pad"><stop
+ id="stop294"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop296"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern298"><defs
+ id="defs300"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask2"><g
+ id="g303"><g
+ clip-path="url(#clipPath278)"
+ id="g305"><g
+ id="g307"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient282);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path309" /></g></g></g></mask></defs><g
+ id="g311" /><g
+ id="g313"><g
+ clip-path="url(#clipPath274)"
+ id="g315"><g
+ id="g317"><g
+ id="g319"><g
+ id="g321" /><g
+ mask="url(#_mask2)"
+ id="g323"><g
+ id="g325" /><g
+ id="g327"><g
+ clip-path="url(#clipPath288)"
+ id="g329"><g
+ id="g331"><path
+ d="m 6.098,83.871 0,-18.23 c 16.644,1.371 22.875,10.238 36.41,11.164 l 0,7.097 -36.41,-0.031 z"
+ style="fill:url(#linearGradient292);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path333" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath347"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path349" /></clipPath><mask
+ id="mask351"><g
+ id="g353"><g
+ clip-path="url(#clipPath347)"
+ id="g355"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path357"
+ style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath363"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path365" /></clipPath><clipPath
+ id="clipPath367"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path369" /></clipPath><clipPath
+ id="clipPath371"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path373" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient375"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.593246,0,0,-0.131058,62.986967,65.666929)"
+ spreadMethod="pad"><stop
+ id="stop377"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop379"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath381"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path383" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient385"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.593246,0,0,-0.131058,62.986967,65.666929)"
+ spreadMethod="pad"><stop
+ id="stop387"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop389"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern391"><defs
+ id="defs393"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask3"><g
+ id="g396"><g
+ clip-path="url(#clipPath371)"
+ id="g398"><g
+ id="g400"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#radialGradient375);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path402" /></g></g></g></mask></defs><g
+ id="g404" /><g
+ id="g406"><g
+ clip-path="url(#clipPath367)"
+ id="g408"><g
+ id="g410"><g
+ id="g412"><g
+ id="g414" /><g
+ mask="url(#_mask3)"
+ id="g416"><g
+ id="g418" /><g
+ id="g420"><g
+ clip-path="url(#clipPath381)"
+ id="g422"><g
+ id="g424"><path
+ d="m 91.281,60.074 c 0,-1.722 -6.308,-3.117 -14.093,-3.117 -7.786,0 -14.094,1.395 -14.094,3.117 0,1.719 6.308,3.114 14.094,3.114 7.785,0 14.093,-1.395 14.093,-3.114 z"
+ style="fill:url(#radialGradient385);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path426" /></g></g></g></g></g></g></g></g></pattern><linearGradient
+ x1="31.742188"
+ y1="37.84375"
+ x2="31.859375"
+ y2="43.824219"
+ id="linearGradient440"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,85.841505)"
+ spreadMethod="pad"><stop
+ id="stop442"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop444"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="17.246094"
+ y1="6.375"
+ x2="39.90625"
+ y2="38.875"
+ id="linearGradient452"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,85.841505)"
+ spreadMethod="pad"><stop
+ id="stop454"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop456"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="24.007812"
+ cy="32.996094"
+ r="19"
+ fx="24.007812"
+ fy="32.996094"
+ id="radialGradient462"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.755238,0,0,-0.476923,58.678279,84.521513)"
+ spreadMethod="pad"><stop
+ id="stop464"
+ style="stop-color:#555753;stop-opacity:1"
+ offset="0" /><stop
+ id="stop466"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath482"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path484" /></clipPath><mask
+ id="mask486"><g
+ id="g488"><g
+ clip-path="url(#clipPath482)"
+ id="g490"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path492"
+ style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath498"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path500" /></clipPath><clipPath
+ id="clipPath502"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path504" /></clipPath><clipPath
+ id="clipPath506"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path508" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient510"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)"
+ spreadMethod="pad"><stop
+ id="stop512"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop514"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath516"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path518" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient520"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)"
+ spreadMethod="pad"><stop
+ id="stop522"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop524"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern526"><defs
+ id="defs528"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask4"><g
+ id="g531"><g
+ clip-path="url(#clipPath506)"
+ id="g533"><g
+ id="g535"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient510);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path537" /></g></g></g></mask></defs><g
+ id="g539" /><g
+ id="g541"><g
+ clip-path="url(#clipPath502)"
+ id="g543"><g
+ id="g545"><g
+ id="g547"><g
+ id="g549" /><g
+ mask="url(#_mask4)"
+ id="g551"><g
+ id="g553" /><g
+ id="g555"><g
+ clip-path="url(#clipPath516)"
+ id="g557"><g
+ id="g559"><path
+ d="m 70.672,64.32 c 0.051,-1.332 -0.172,-1.785 -1,-2.254 l 14.469,-0.793 c -0.582,0.715 -1.426,1.797 -1.196,3.055 L 70.672,64.32 z"
+ style="fill:url(#linearGradient520);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path561" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath583"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path585" /></clipPath><mask
+ id="mask587"><g
+ id="g589"><g
+ clip-path="url(#clipPath583)"
+ id="g591"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path593"
+ style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath599"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path601" /></clipPath><clipPath
+ id="clipPath603"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path605" /></clipPath><clipPath
+ id="clipPath607"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path609" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient611"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)"
+ spreadMethod="pad"><stop
+ id="stop613"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop615"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath617"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path619" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient621"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)"
+ spreadMethod="pad"><stop
+ id="stop623"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop625"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern627"><defs
+ id="defs629"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask5"><g
+ id="g632"><g
+ clip-path="url(#clipPath607)"
+ id="g634"><g
+ id="g636"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient611);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path638" /></g></g></g></mask></defs><g
+ id="g640" /><g
+ id="g642"><g
+ clip-path="url(#clipPath603)"
+ id="g644"><g
+ id="g646"><g
+ id="g648"><g
+ id="g650" /><g
+ mask="url(#_mask5)"
+ id="g652"><g
+ id="g654" /><g
+ id="g656"><g
+ clip-path="url(#clipPath617)"
+ id="g658"><g
+ id="g660"><path
+ d="m 65.789,81.48 0,-11.035 c 10.078,0.832 13.848,6.196 22.039,6.758 l 0,4.297 -22.039,-0.02 z"
+ style="fill:url(#linearGradient621);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path662" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath676"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path678" /></clipPath><mask
+ id="mask680"><g
+ id="g682"><g
+ clip-path="url(#clipPath676)"
+ id="g684"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path686"
+ style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath692"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path694" /></clipPath><clipPath
+ id="clipPath696"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path698" /></clipPath><clipPath
+ id="clipPath700"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path702" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient704"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.593246,0,0,-0.131058,53.686967,19.466929)"
+ spreadMethod="pad"><stop
+ id="stop706"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop708"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath710"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path712" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient714"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.593246,0,0,-0.131058,53.686967,19.466929)"
+ spreadMethod="pad"><stop
+ id="stop716"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop718"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern720"><defs
+ id="defs722"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask6"><g
+ id="g725"><g
+ clip-path="url(#clipPath700)"
+ id="g727"><g
+ id="g729"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#radialGradient704);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path731" /></g></g></g></mask></defs><g
+ id="g733" /><g
+ id="g735"><g
+ clip-path="url(#clipPath696)"
+ id="g737"><g
+ id="g739"><g
+ id="g741"><g
+ id="g743" /><g
+ mask="url(#_mask6)"
+ id="g745"><g
+ id="g747" /><g
+ id="g749"><g
+ clip-path="url(#clipPath710)"
+ id="g751"><g
+ id="g753"><path
+ d="m 81.984,13.871 c 0,-1.719 -6.312,-3.113 -14.097,-3.113 -7.785,0 -14.094,1.394 -14.094,3.113 0,1.723 6.309,3.113 14.094,3.113 7.785,0 14.097,-1.39 14.097,-3.113 z"
+ style="fill:url(#radialGradient714);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path755" /></g></g></g></g></g></g></g></g></pattern><linearGradient
+ x1="31.742188"
+ y1="37.84375"
+ x2="31.859375"
+ y2="43.824219"
+ id="linearGradient769"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,39.641505)"
+ spreadMethod="pad"><stop
+ id="stop771"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop773"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="17.246094"
+ y1="6.375"
+ x2="39.90625"
+ y2="38.875"
+ id="linearGradient781"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,39.641505)"
+ spreadMethod="pad"><stop
+ id="stop783"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop785"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="24.007812"
+ cy="32.996094"
+ r="19"
+ fx="24.007812"
+ fy="32.996094"
+ id="radialGradient791"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.755238,0,0,-0.476923,49.378279,38.321513)"
+ spreadMethod="pad"><stop
+ id="stop793"
+ style="stop-color:#555753;stop-opacity:1"
+ offset="0" /><stop
+ id="stop795"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath811"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path813" /></clipPath><mask
+ id="mask815"><g
+ id="g817"><g
+ clip-path="url(#clipPath811)"
+ id="g819"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path821"
+ style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath827"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path829" /></clipPath><clipPath
+ id="clipPath831"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path833" /></clipPath><clipPath
+ id="clipPath835"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path837" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient839"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)"
+ spreadMethod="pad"><stop
+ id="stop841"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop843"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath845"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path847" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient849"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)"
+ spreadMethod="pad"><stop
+ id="stop851"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop853"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern855"><defs
+ id="defs857"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask7"><g
+ id="g860"><g
+ clip-path="url(#clipPath835)"
+ id="g862"><g
+ id="g864"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient839);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path866" /></g></g></g></mask></defs><g
+ id="g868" /><g
+ id="g870"><g
+ clip-path="url(#clipPath831)"
+ id="g872"><g
+ id="g874"><g
+ id="g876"><g
+ id="g878" /><g
+ mask="url(#_mask7)"
+ id="g880"><g
+ id="g882" /><g
+ id="g884"><g
+ clip-path="url(#clipPath845)"
+ id="g886"><g
+ id="g888"><path
+ d="m 61.371,18.117 c 0.055,-1.328 -0.172,-1.781 -1,-2.25 L 74.84,15.07 c -0.578,0.719 -1.426,1.801 -1.195,3.059 L 61.371,18.117 z"
+ style="fill:url(#linearGradient849);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path890" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath912"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path914" /></clipPath><mask
+ id="mask916"><g
+ id="g918"><g
+ clip-path="url(#clipPath912)"
+ id="g920"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path922"
+ style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath928"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path930" /></clipPath><clipPath
+ id="clipPath932"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path934" /></clipPath><clipPath
+ id="clipPath936"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path938" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient940"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)"
+ spreadMethod="pad"><stop
+ id="stop942"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop944"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath946"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path948" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient950"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)"
+ spreadMethod="pad"><stop
+ id="stop952"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop954"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern956"><defs
+ id="defs958"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask8"><g
+ id="g961"><g
+ clip-path="url(#clipPath936)"
+ id="g963"><g
+ id="g965"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient940);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path967" /></g></g></g></mask></defs><g
+ id="g969" /><g
+ id="g971"><g
+ clip-path="url(#clipPath932)"
+ id="g973"><g
+ id="g975"><g
+ id="g977"><g
+ id="g979" /><g
+ mask="url(#_mask8)"
+ id="g981"><g
+ id="g983" /><g
+ id="g985"><g
+ clip-path="url(#clipPath946)"
+ id="g987"><g
+ id="g989"><path
+ d="m 56.492,35.277 0,-11.031 c 10.074,0.828 13.844,6.195 22.035,6.758 l 0,4.293 -22.035,-0.02 z"
+ style="fill:url(#linearGradient950);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path991" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath1005"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1007" /></clipPath><mask
+ id="mask1009"><g
+ id="g1011"><g
+ clip-path="url(#clipPath1005)"
+ id="g1013"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1015"
+ style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath1021"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1023" /></clipPath><clipPath
+ id="clipPath1025"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1027" /></clipPath><clipPath
+ id="clipPath1029"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1031" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient1033"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.593246,0,0,-0.131058,2.686967,9.266929)"
+ spreadMethod="pad"><stop
+ id="stop1035"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1037"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath1039"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1041" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient1043"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.593246,0,0,-0.131058,2.686967,9.266929)"
+ spreadMethod="pad"><stop
+ id="stop1045"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1047"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern1049"><defs
+ id="defs1051"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask9"><g
+ id="g1054"><g
+ clip-path="url(#clipPath1029)"
+ id="g1056"><g
+ id="g1058"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#radialGradient1033);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path1060" /></g></g></g></mask></defs><g
+ id="g1062" /><g
+ id="g1064"><g
+ clip-path="url(#clipPath1025)"
+ id="g1066"><g
+ id="g1068"><g
+ id="g1070"><g
+ id="g1072" /><g
+ mask="url(#_mask9)"
+ id="g1074"><g
+ id="g1076" /><g
+ id="g1078"><g
+ clip-path="url(#clipPath1039)"
+ id="g1080"><g
+ id="g1082"><path
+ d="m 30.984,3.672 c 0,-1.719 -6.312,-3.113 -14.097,-3.113 -7.785,0 -14.094,1.394 -14.094,3.113 0,1.719 6.309,3.113 14.094,3.113 7.785,0 14.097,-1.394 14.097,-3.113 z"
+ style="fill:url(#radialGradient1043);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path1084" /></g></g></g></g></g></g></g></g></pattern><linearGradient
+ x1="31.742188"
+ y1="37.84375"
+ x2="31.859375"
+ y2="43.824219"
+ id="linearGradient1098"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,29.441505)"
+ spreadMethod="pad"><stop
+ id="stop1100"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1102"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="17.246094"
+ y1="6.375"
+ x2="39.90625"
+ y2="38.875"
+ id="linearGradient1110"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,29.441505)"
+ spreadMethod="pad"><stop
+ id="stop1112"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1114"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="24.007812"
+ cy="32.996094"
+ r="19"
+ fx="24.007812"
+ fy="32.996094"
+ id="radialGradient1120"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.755238,0,0,-0.476923,-1.621721,28.121513)"
+ spreadMethod="pad"><stop
+ id="stop1122"
+ style="stop-color:#555753;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1124"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath1140"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1142" /></clipPath><mask
+ id="mask1144"><g
+ id="g1146"><g
+ clip-path="url(#clipPath1140)"
+ id="g1148"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1150"
+ style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath1156"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1158" /></clipPath><clipPath
+ id="clipPath1160"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1162" /></clipPath><clipPath
+ id="clipPath1164"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1166" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient1168"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)"
+ spreadMethod="pad"><stop
+ id="stop1170"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1172"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath1174"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1176" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient1178"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)"
+ spreadMethod="pad"><stop
+ id="stop1180"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1182"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern1184"><defs
+ id="defs1186"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask10"><g
+ id="g1189"><g
+ clip-path="url(#clipPath1164)"
+ id="g1191"><g
+ id="g1193"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient1168);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path1195" /></g></g></g></mask></defs><g
+ id="g1197" /><g
+ id="g1199"><g
+ clip-path="url(#clipPath1160)"
+ id="g1201"><g
+ id="g1203"><g
+ id="g1205"><g
+ id="g1207" /><g
+ mask="url(#_mask10)"
+ id="g1209"><g
+ id="g1211" /><g
+ id="g1213"><g
+ clip-path="url(#clipPath1174)"
+ id="g1215"><g
+ id="g1217"><path
+ d="m 10.371,7.918 c 0.055,-1.332 -0.172,-1.781 -1,-2.25 L 23.84,4.871 C 23.262,5.59 22.414,6.668 22.645,7.93 L 10.371,7.918 z"
+ style="fill:url(#linearGradient1178);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path1219" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath1241"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1243" /></clipPath><mask
+ id="mask1245"><g
+ id="g1247"><g
+ clip-path="url(#clipPath1241)"
+ id="g1249"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1251"
+ style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath1257"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1259" /></clipPath><clipPath
+ id="clipPath1261"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1263" /></clipPath><clipPath
+ id="clipPath1265"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1267" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient1269"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)"
+ spreadMethod="pad"><stop
+ id="stop1271"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1273"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath1275"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1277" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient1279"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)"
+ spreadMethod="pad"><stop
+ id="stop1281"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1283"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern1285"><defs
+ id="defs1287"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask11"><g
+ id="g1290"><g
+ clip-path="url(#clipPath1265)"
+ id="g1292"><g
+ id="g1294"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient1269);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path1296" /></g></g></g></mask></defs><g
+ id="g1298" /><g
+ id="g1300"><g
+ clip-path="url(#clipPath1261)"
+ id="g1302"><g
+ id="g1304"><g
+ id="g1306"><g
+ id="g1308" /><g
+ mask="url(#_mask11)"
+ id="g1310"><g
+ id="g1312" /><g
+ id="g1314"><g
+ clip-path="url(#clipPath1275)"
+ id="g1316"><g
+ id="g1318"><path
+ d="m 5.492,25.078 0,-11.031 c 10.074,0.828 13.844,6.195 22.035,6.754 l 0,4.297 -22.035,-0.02 z"
+ style="fill:url(#linearGradient1279);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path1320" /></g></g></g></g></g></g></g></g></pattern><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient6246"
+ xlink:href="#linearGradient6240"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ id="linearGradient6240"><stop
+ id="stop6242"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop6244"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient3063"
+ xlink:href="#linearGradient6240"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0181386,0,0,-0.99062596,-0.15727934,91.443685)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient6246-6"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ id="linearGradient6240-0"><stop
+ id="stop6242-8"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop6244-7"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient3063-5"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.60671483,0,0,-0.58167345,1.8899147,29.19821)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient4486"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.60671483,0,0,-0.58167345,52.918396,39.335412)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient4490"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.60671483,0,0,-0.58167345,62.233662,85.535023)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient4469"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.60671483,0,0,-0.58167345,62.233662,85.535023)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient4472"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.60671483,0,0,-0.58167345,52.918396,39.335412)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient4475"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.60671483,0,0,-0.58167345,1.8899147,29.19821)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient4478"
+ xlink:href="#linearGradient6240"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0181386,0,0,-0.99062596,-0.15727934,91.443685)" /><filter
+ color-interpolation-filters="sRGB"
+ id="filter3297"><feGaussianBlur
+ stdDeviation="0.26694977"
+ id="feGaussianBlur3299" /></filter><filter
+ color-interpolation-filters="sRGB"
+ id="filter3293"><feGaussianBlur
+ stdDeviation="0.355"
+ id="feGaussianBlur3295" /></filter><linearGradient
+ id="linearGradient44699"><stop
+ id="stop44701"
+ style="stop-color:#000173;stop-opacity:0.93333334"
+ offset="0" /><stop
+ id="stop44703"
+ style="stop-color:#3575f0;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44080"><stop
+ id="stop44082"
+ style="stop-color:#2c8300;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44084"
+ style="stop-color:#57aeff;stop-opacity:1"
+ offset="0.25" /><stop
+ id="stop44086"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop44088"
+ style="stop-color:#5aafff;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44090"><stop
+ id="stop44092"
+ style="stop-color:#0926bb;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44094"
+ style="stop-color:#6bb5fe;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient5790"><stop
+ id="stop5792"
+ style="stop-color:#0926bb;stop-opacity:1"
+ offset="0" /><stop
+ id="stop5794"
+ style="stop-color:#6bb5fe;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44615"><stop
+ id="stop44617"
+ style="stop-color:#2f68fa;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44619"
+ style="stop-color:#c7d5fb;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44693"><stop
+ id="stop44695"
+ style="stop-color:#3690e6;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44697"
+ style="stop-color:#d0e9ff;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44605"><stop
+ id="stop44607"
+ style="stop-color:#d0ecff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44609"
+ style="stop-color:#d7f0ff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop44611"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient5810"><stop
+ id="stop5812"
+ style="stop-color:#2f68fa;stop-opacity:1"
+ offset="0" /><stop
+ id="stop5814"
+ style="stop-color:#c7d5fb;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient2300-4"><stop
+ id="stop2302-6"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2304-2"
+ style="stop-color:#414141;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44627"><stop
+ id="stop44629"
+ style="stop-color:#fffcfb;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44633"
+ style="stop-color:#f4ad94;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44681"><stop
+ id="stop44683"
+ style="stop-color:#ff5c38;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44685"
+ style="stop-color:#fb7e65;stop-opacity:0.99607843"
+ offset="0.30397323" /><stop
+ id="stop44687"
+ style="stop-color:#cd0000;stop-opacity:0.98039216"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient2288-5"><stop
+ id="stop2290-0"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2292-6"
+ style="stop-color:#898989;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient5834"><stop
+ id="stop5836"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop5838"
+ style="stop-color:#414141;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient2318-2"><stop
+ id="stop2320-8"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2326-4"
+ style="stop-color:#373737;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop2322-7"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient2392-2"><stop
+ id="stop2394-4"
+ style="stop-color:#000000;stop-opacity:0.43298969"
+ offset="0" /><stop
+ id="stop2398-0"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient2338-6"><stop
+ id="stop2340-2"
+ style="stop-color:#545454;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2344-9"
+ style="stop-color:#545454;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient2380-9"><stop
+ id="stop2382-0"
+ style="stop-color:#838383;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2384-8"
+ style="stop-color:#767676;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3836-1"><stop
+ id="stop3838-3"
+ style="stop-color:#c90000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3844-1"
+ style="stop-color:#ff7474;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3846-1"
+ style="stop-color:#c90000;stop-opacity:1"
+ offset="0.75" /><stop
+ id="stop3840-0"
+ style="stop-color:#fa5555;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3895-3"><stop
+ id="stop3897-4"
+ style="stop-color:#930000;stop-opacity:0.50515461"
+ offset="0" /><stop
+ id="stop3899-0"
+ style="stop-color:#930000;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3924-3"><stop
+ id="stop3926-9"
+ style="stop-color:#ff6e6e;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3928-1"
+ style="stop-color:#ff7171;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3854-9"><stop
+ id="stop3856-6"
+ style="stop-color:#a00000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3860-9"
+ style="stop-color:#c90000;stop-opacity:0"
+ offset="0.75" /><stop
+ id="stop3862-3"
+ style="stop-color:#a00000;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient5207"
+ xlink:href="#linearGradient3339-4"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ id="linearGradient3339-4"><stop
+ id="stop3341-7"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3347-6"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3343-3"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="1" /></linearGradient><filter
+ color-interpolation-filters="sRGB"
+ id="filter3385-1"><feGaussianBlur
+ id="feGaussianBlur3387-7"
+ stdDeviation="0.14607691" /></filter><filter
+ color-interpolation-filters="sRGB"
+ id="filter3297-9"><feGaussianBlur
+ stdDeviation="0.26694977"
+ id="feGaussianBlur3299-7" /></filter><filter
+ color-interpolation-filters="sRGB"
+ id="filter3293-2"><feGaussianBlur
+ stdDeviation="0.355"
+ id="feGaussianBlur3295-7" /></filter><linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient5673-0"
+ xlink:href="#linearGradient44699-4"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(38.627584,1.0111154)" /><linearGradient
+ id="linearGradient44699-4"><stop
+ id="stop44701-3"
+ style="stop-color:#000173;stop-opacity:0.93333334"
+ offset="0" /><stop
+ id="stop44703-4"
+ style="stop-color:#3575f0;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient5670-6"
+ xlink:href="#linearGradient44080-3"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1396.4291,-948.41724)" /><linearGradient
+ id="linearGradient44080-3"><stop
+ id="stop44082-5"
+ style="stop-color:#2c8300;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44084-5"
+ style="stop-color:#57aeff;stop-opacity:1"
+ offset="0.25" /><stop
+ id="stop44086-1"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop44088-4"
+ style="stop-color:#5aafff;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient5667-0"
+ xlink:href="#linearGradient44090-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-408.92103,-635.92247)" /><linearGradient
+ id="linearGradient44090-0"><stop
+ id="stop44092-7"
+ style="stop-color:#0926bb;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44094-9"
+ style="stop-color:#6bb5fe;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient5664-4"
+ xlink:href="#linearGradient44090-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,574.52515,-635.92247)" /><linearGradient
+ id="linearGradient6984"><stop
+ id="stop6986"
+ style="stop-color:#0926bb;stop-opacity:1"
+ offset="0" /><stop
+ id="stop6988"
+ style="stop-color:#6bb5fe;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="-246.57739"
+ y1="958.07971"
+ x2="-248.7769"
+ y2="964.61743"
+ id="linearGradient5661-5"
+ xlink:href="#linearGradient44615-6"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(321.10111,-881.68159)" /><linearGradient
+ id="linearGradient44615-6"><stop
+ id="stop44617-5"
+ style="stop-color:#2f68fa;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44619-1"
+ style="stop-color:#c7d5fb;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="-35.566662"
+ y1="76.562927"
+ x2="-35.566662"
+ y2="84.910484"
+ id="linearGradient5658-1"
+ xlink:href="#linearGradient44693-1"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.1784451,0,0,0.9316118,126.37167,5.1827454)" /><linearGradient
+ id="linearGradient44693-1"><stop
+ id="stop44695-8"
+ style="stop-color:#3690e6;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44697-1"
+ style="stop-color:#d0e9ff;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient5655-7"
+ xlink:href="#linearGradient44605-2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.856113,-0.0637264,0.1161478,1.5603521,-422.20596,-1003.4503)" /><linearGradient
+ id="linearGradient44605-2"><stop
+ id="stop44607-0"
+ style="stop-color:#d0ecff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44609-9"
+ style="stop-color:#d7f0ff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop44611-1"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="-246.57739"
+ y1="958.07971"
+ x2="-248.7769"
+ y2="964.61743"
+ id="linearGradient5652-7"
+ xlink:href="#linearGradient44615-6"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,-155.83313,-881.68159)" /><linearGradient
+ id="linearGradient7004"><stop
+ id="stop7006"
+ style="stop-color:#2f68fa;stop-opacity:1"
+ offset="0" /><stop
+ id="stop7008"
+ style="stop-color:#c7d5fb;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="170.29684"
+ y1="219.20184"
+ x2="75.611801"
+ y2="140.29272"
+ id="linearGradient5645-3"
+ xlink:href="#linearGradient2300-4-8"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.32740907,0.15721672,0.11848357,0.24674603,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient2300-4-8"><stop
+ id="stop2302-6-8"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2304-2-7"
+ style="stop-color:#414141;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="53.60223"
+ cy="59.728882"
+ r="17.834057"
+ fx="53.60223"
+ fy="59.728882"
+ id="radialGradient5640-1"
+ xlink:href="#linearGradient44627-2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.4772178,-2.4522929,0,220.99205,-95.843466)" /><linearGradient
+ id="linearGradient44627-2"><stop
+ id="stop44629-5"
+ style="stop-color:#fffcfb;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44633-6"
+ style="stop-color:#f4ad94;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="60.126968"
+ y1="81.913818"
+ x2="60.126968"
+ y2="47.542713"
+ id="linearGradient5642-0"
+ xlink:href="#linearGradient44681-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4960409,0,0,1.4960409,-6.6306562,-46.588225)" /><linearGradient
+ id="linearGradient44681-0"><stop
+ id="stop44683-0"
+ style="stop-color:#ff5c38;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44685-6"
+ style="stop-color:#fb7e65;stop-opacity:0.99607843"
+ offset="0.30397323" /><stop
+ id="stop44687-1"
+ style="stop-color:#cd0000;stop-opacity:0.98039216"
+ offset="1" /></linearGradient><linearGradient
+ x1="81.846077"
+ y1="136.15834"
+ x2="168.78268"
+ y2="53.432808"
+ id="linearGradient5637-0"
+ xlink:href="#linearGradient2288-5-4"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.19109066,0.09175867,0.20300624,0.42276738,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient2288-5-4"><stop
+ id="stop2290-0-2"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2292-6-5"
+ style="stop-color:#898989;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="366.57416"
+ y1="39.730881"
+ x2="168.78265"
+ y2="53.4328"
+ id="linearGradient5634-9"
+ xlink:href="#linearGradient2300-4-8"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.19109066,0.09175867,0.20300624,0.42276738,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient7028"><stop
+ id="stop7030"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop7032"
+ style="stop-color:#414141;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="263.96207"
+ y1="41.317993"
+ x2="24.068567"
+ y2="220.45784"
+ id="linearGradient5631-1"
+ xlink:href="#linearGradient2318-2-2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2973758,0.14279496,0.13044969,0.27166614,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient2318-2-2"><stop
+ id="stop2320-8-2"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2326-4-2"
+ style="stop-color:#373737;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop2322-7-5"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="136.33336"
+ y1="113.51798"
+ x2="173.3575"
+ y2="164.5226"
+ id="linearGradient5628-3"
+ xlink:href="#linearGradient2392-2-4"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2973758,0.14279496,0.13044969,0.27166614,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient2392-2-4"><stop
+ id="stop2394-4-5"
+ style="stop-color:#000000;stop-opacity:0.43298969"
+ offset="0" /><stop
+ id="stop2398-0-5"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" /></linearGradient><radialGradient
+ cx="180.07829"
+ cy="176.38765"
+ r="53.050598"
+ fx="180.07837"
+ fy="177.18346"
+ id="radialGradient5625-6"
+ xlink:href="#linearGradient2338-6-6"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3015622,0.14480526,0.12863859,0.26789468,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient2338-6-6"><stop
+ id="stop2340-2-6"
+ style="stop-color:#545454;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2344-9-3"
+ style="stop-color:#545454;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ x1="219.53198"
+ y1="120.31494"
+ x2="211.80861"
+ y2="127.47651"
+ id="linearGradient5622-2"
+ xlink:href="#linearGradient2380-9-7"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3015622,0.14480526,0.12863859,0.26789468,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient2380-9-7"><stop
+ id="stop2382-0-1"
+ style="stop-color:#838383;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2384-8-9"
+ style="stop-color:#767676;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ x1="144.45633"
+ y1="98.692307"
+ x2="155.86334"
+ y2="161.02338"
+ id="linearGradient5618-0"
+ xlink:href="#linearGradient3836-1-6"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.17353113,0.0833269,0.22354827,0.46554701,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient3836-1-6"><stop
+ id="stop3838-3-7"
+ style="stop-color:#c90000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3844-1-7"
+ style="stop-color:#ff7474;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3846-1-8"
+ style="stop-color:#c90000;stop-opacity:1"
+ offset="0.75" /><stop
+ id="stop3840-0-7"
+ style="stop-color:#fa5555;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="190.18034"
+ y1="96.076317"
+ x2="156.40744"
+ y2="143.56932"
+ id="linearGradient5615-9"
+ xlink:href="#linearGradient3895-3-4"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.14979776,0.07193037,0.25896642,0.53930685,115.52106,-35.084377)" /><linearGradient
+ id="linearGradient3895-3-4"><stop
+ id="stop3897-4-0"
+ style="stop-color:#930000;stop-opacity:0.50515461"
+ offset="0" /><stop
+ id="stop3899-0-9"
+ style="stop-color:#930000;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ x1="190.18034"
+ y1="96.076317"
+ x2="156.40744"
+ y2="143.56932"
+ id="linearGradient5612-8"
+ xlink:href="#linearGradient3924-3-5"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.14979776,0.07193037,0.25896642,0.53930685,115.19546,-34.989862)" /><linearGradient
+ id="linearGradient3924-3-5"><stop
+ id="stop3926-9-6"
+ style="stop-color:#ff6e6e;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3928-1-9"
+ style="stop-color:#ff7171;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ x1="137.93805"
+ y1="118.24712"
+ x2="183.56607"
+ y2="110.30299"
+ id="linearGradient5609-6"
+ xlink:href="#linearGradient3854-9-1"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.17353113,0.0833269,0.22354827,0.46554701,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient3854-9-1"><stop
+ id="stop3856-6-2"
+ style="stop-color:#a00000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3860-9-0"
+ style="stop-color:#c90000;stop-opacity:0"
+ offset="0.75" /><stop
+ id="stop3862-3-8"
+ style="stop-color:#a00000;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient5207-5"
+ xlink:href="#linearGradient3339-4-4"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ id="linearGradient3339-4-4"><stop
+ id="stop3341-7-3"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3347-6-0"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3343-3-2"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="1" /></linearGradient><filter
+ color-interpolation-filters="sRGB"
+ id="filter3385-1-2"><feGaussianBlur
+ id="feGaussianBlur3387-7-8"
+ stdDeviation="0.14607691" /></filter><filter
+ color-interpolation-filters="sRGB"
+ id="filter3297-4"><feGaussianBlur
+ stdDeviation="0.26694977"
+ id="feGaussianBlur3299-77" /></filter><filter
+ color-interpolation-filters="sRGB"
+ id="filter3293-5"><feGaussianBlur
+ stdDeviation="0.355"
+ id="feGaussianBlur3295-8" /></filter><linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient5698"
+ xlink:href="#linearGradient3197"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-200.71307,-35.857716)" /><linearGradient
+ id="linearGradient3197"><stop
+ id="stop3199"
+ style="stop-color:#002f32;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3201"
+ style="stop-color:#045b04;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient5695"
+ xlink:href="#linearGradient3205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient
+ id="linearGradient3205"><stop
+ id="stop3207"
+ style="stop-color:#2c8300;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3215"
+ style="stop-color:#3db800;stop-opacity:1"
+ offset="0.25" /><stop
+ id="stop3213"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3209"
+ style="stop-color:#69cf35;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient5692"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient
+ id="linearGradient3219"><stop
+ id="stop3221"
+ style="stop-color:#0e7309;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3223"
+ style="stop-color:#70d13e;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient5689"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><linearGradient
+ id="linearGradient7410"><stop
+ id="stop7412"
+ style="stop-color:#0e7309;stop-opacity:1"
+ offset="0" /><stop
+ id="stop7414"
+ style="stop-color:#70d13e;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient5683"
+ xlink:href="#linearGradient3261"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><linearGradient
+ id="linearGradient3261"><stop
+ id="stop3263"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="0" /><stop
+ id="stop3269"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="0.5" /><stop
+ id="stop3265"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="53.60223"
+ cy="59.728882"
+ r="17.834057"
+ fx="53.60223"
+ fy="59.728882"
+ id="radialGradient5677"
+ xlink:href="#linearGradient3327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient
+ id="linearGradient3327"><stop
+ id="stop3329"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3335"
+ style="stop-color:#fdd99a;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3331"
+ style="stop-color:#c39539;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="41.945538"
+ y1="46.665127"
+ x2="41.945538"
+ y2="82.333244"
+ id="linearGradient5679"
+ xlink:href="#linearGradient3319"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient
+ id="linearGradient3319"><stop
+ id="stop3321"
+ style="stop-color:#7d491f;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44679"
+ style="stop-color:#87570f;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3323"
+ style="stop-color:#926600;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient5710"
+ xlink:href="#linearGradient3339-4-5"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ id="linearGradient3339-4-5"><stop
+ id="stop3341-7-9"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3347-6-7"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3343-3-5"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="1" /></linearGradient><filter
+ color-interpolation-filters="sRGB"
+ id="filter3385-1-3"><feGaussianBlur
+ id="feGaussianBlur3387-7-8-5"
+ stdDeviation="0.14607691" /></filter><linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient7597"
+ xlink:href="#linearGradient3197"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-200.71307,-35.857716)" /><radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient7599"
+ xlink:href="#linearGradient3205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient7601"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient7603"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient7605"
+ xlink:href="#linearGradient3261"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><radialGradient
+ cx="53.60223"
+ cy="59.728882"
+ r="17.834057"
+ fx="53.60223"
+ fy="59.728882"
+ id="radialGradient7607"
+ xlink:href="#linearGradient3327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient
+ x1="41.945538"
+ y1="46.665127"
+ x2="41.945538"
+ y2="82.333244"
+ id="linearGradient7609"
+ xlink:href="#linearGradient3319"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient7611"
+ xlink:href="#linearGradient3339-4-5"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient7647"
+ xlink:href="#linearGradient3197"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-200.71307,-35.857716)" /><radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient7649"
+ xlink:href="#linearGradient3205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient7651"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient7653"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient7655"
+ xlink:href="#linearGradient3261"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><radialGradient
+ cx="53.60223"
+ cy="59.728882"
+ r="17.834057"
+ fx="53.60223"
+ fy="59.728882"
+ id="radialGradient7657"
+ xlink:href="#linearGradient3327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient
+ x1="41.945538"
+ y1="46.665127"
+ x2="41.945538"
+ y2="82.333244"
+ id="linearGradient7659"
+ xlink:href="#linearGradient3319"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient7661"
+ xlink:href="#linearGradient3339-4-5"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient7697"
+ xlink:href="#linearGradient3197"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-200.71307,-35.857716)" /><radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient7699"
+ xlink:href="#linearGradient3205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient7701"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient7703"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient7705"
+ xlink:href="#linearGradient3261"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><radialGradient
+ cx="53.60223"
+ cy="59.728882"
+ r="17.834057"
+ fx="53.60223"
+ fy="59.728882"
+ id="radialGradient7707"
+ xlink:href="#linearGradient3327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient
+ x1="41.945538"
+ y1="46.665127"
+ x2="41.945538"
+ y2="82.333244"
+ id="linearGradient7709"
+ xlink:href="#linearGradient3319"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient7711"
+ xlink:href="#linearGradient3339-4-5"
+ gradientUnits="userSpaceOnUse" /></defs><g
+ transform="matrix(1.25,0,0,-1.25,0,114.30188)"
+ id="g10"><g
+ id="g14"><g
+ id="g16" /><g
+ mask="url(#mask22)"
+ id="g30"><g
+ id="g32" /><g
+ id="g99"><g
+ clip-path="url(#clipPath34)"
+ id="g101"><g
+ id="g103"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path105"
+ style="fill:url(#pattern62);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ id="g107"><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g109"><path
+ d="m 14.551,35.969 c 0,0 1.234,4.996 -3.903,5.043 -2.46,0.023 -1.957,4.086 -1.957,4.086 l 31.227,-0.036 c 0,0 0.422,-3.941 -2.047,-3.988 -5.051,-0.094 -3.859,-5.168 -3.859,-5.168 l -19.461,0.063 z"
+ id="path117"
+ style="fill:url(#linearGradient111);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g
+ id="g119"><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g121"><path
+ d="m 4.949,3.52 38.598,0 c 2.047,0 3.543,1.445 3.543,3.671 l 0.012,26.528 c 0,1.711 -0.536,2.242 -2.063,2.242 L 3.574,35.941 C 2.383,35.91 1.531,35.441 1.516,33.895 L 1.531,7 c 0,-1.793 1.559,-3.48 3.418,-3.48 z"
+ id="path129"
+ style="fill:url(#linearGradient123);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g
+ id="g131"><path
+ d="m 5.574,83.848 37.453,0 0,-23.277 -37.453,0 0,23.277 z"
+ id="path139"
+ style="fill:url(#radialGradient133);fill-opacity:1;fill-rule:evenodd;stroke:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g141"><path
+ d="m 5.574,7.594 37.453,0 0,23.277 -37.453,0 0,-23.277 z"
+ id="path143"
+ style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g145"><path
+ d="m 4.934,4.398 c -1.325,0 -2.532,1.309 -2.532,2.594 l 0,26.918 c 0.008,0.613 0.149,0.801 0.286,0.918 0.132,0.113 0.425,0.203 0.886,0.223 l 0.031,0 41.442,0.031 c 0.66,0 0.867,-0.102 0.949,-0.191 0.082,-0.086 0.219,-0.407 0.219,-1.168 l 0,-26.543 c 0,-1.828 -1.024,-2.782 -2.656,-2.782 l -38.625,0 z"
+ id="path147"
+ style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ id="g149"><g
+ id="g151" /><g
+ mask="url(#mask157)"
+ id="g165"><g
+ id="g167" /><g
+ id="g234"><g
+ clip-path="url(#clipPath169)"
+ id="g236"><g
+ id="g238"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path240"
+ style="fill:url(#pattern197);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g242"><path
+ d="m 10.113,42.004 c 6.789,0.004 28.141,0 28.141,0"
+ id="path244"
+ style="fill:none;stroke:#8d8d8f;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.43902402;stroke-dasharray:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g246"><path
+ d="m 9.766,43.027 c 6.789,0 29.074,0 29.074,0"
+ id="path248"
+ style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ id="g250"><g
+ id="g252" /><g
+ mask="url(#mask258)"
+ id="g266"><g
+ id="g268" /><g
+ id="g335"><g
+ clip-path="url(#clipPath270)"
+ id="g337"><g
+ id="g339"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path341"
+ style="fill:url(#pattern298);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ id="g343"><g
+ id="g345" /><g
+ mask="url(#mask351)"
+ id="g359"><g
+ id="g361" /><g
+ id="g428"><g
+ clip-path="url(#clipPath363)"
+ id="g430"><g
+ id="g432"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path434"
+ style="fill:url(#pattern391);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ id="g436"><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g438"><path
+ d="m 70.906,27.371 c 0,0 0.746,3.024 -2.359,3.051 -1.492,0.016 -1.188,2.473 -1.188,2.473 l 18.903,-0.02 c 0,0 0.254,-2.387 -1.239,-2.414 -3.058,-0.055 -2.335,-3.129 -2.335,-3.129 l -11.782,0.039 z"
+ id="path446"
+ style="fill:url(#linearGradient440);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g
+ id="g448"><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g450"><path
+ d="m 65.094,7.73 23.363,0 c 1.242,0 2.145,0.875 2.145,2.223 l 0.007,16.055 c 0,1.035 -0.324,1.359 -1.246,1.359 L 64.266,27.355 C 63.543,27.336 63.027,27.051 63.02,26.117 L 63.027,9.84 c 0,-1.09 0.942,-2.11 2.067,-2.11 z"
+ id="path458"
+ style="fill:url(#linearGradient452);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g
+ id="g460"><path
+ d="m 65.473,81.246 22.672,0 0,-14.09 -22.672,0 0,14.09 z"
+ id="path468"
+ style="fill:url(#radialGradient462);fill-opacity:1;fill-rule:evenodd;stroke:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g470"><path
+ d="m 65.473,10.195 22.672,0 0,14.09 -22.672,0 0,-14.09 z"
+ id="path472"
+ style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g474"><path
+ d="m 65.086,8.262 c -0.801,0 -1.531,0.793 -1.531,1.57 l 0,16.293 c 0.004,0.371 0.09,0.484 0.172,0.555 0.082,0.07 0.257,0.125 0.535,0.136 l 0.019,0 25.086,0.016 c 0.399,0 0.524,-0.059 0.574,-0.113 0.047,-0.051 0.133,-0.246 0.133,-0.707 l 0,-16.067 c 0,-1.105 -0.621,-1.683 -1.609,-1.683 l -23.379,0 z"
+ id="path476"
+ style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ id="g478"><g
+ id="g480" /><g
+ mask="url(#mask486)"
+ id="g494"><g
+ id="g496" /><g
+ id="g563"><g
+ clip-path="url(#clipPath498)"
+ id="g565"><g
+ id="g567"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path569"
+ style="fill:url(#pattern526);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g571"><path
+ d="m 68.223,31.023 c 4.109,0.004 17.031,0 17.031,0"
+ id="path573"
+ style="fill:none;stroke:#8d8d8f;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.43902402;stroke-dasharray:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g575"><path
+ d="m 68.012,31.641 c 4.109,0.004 17.597,0 17.597,0"
+ id="path577"
+ style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ id="g579"><g
+ id="g581" /><g
+ mask="url(#mask587)"
+ id="g595"><g
+ id="g597" /><g
+ id="g664"><g
+ clip-path="url(#clipPath599)"
+ id="g666"><g
+ id="g668"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path670"
+ style="fill:url(#pattern627);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ id="g672"><g
+ id="g674" /><g
+ mask="url(#mask680)"
+ id="g688"><g
+ id="g690" /><g
+ id="g757"><g
+ clip-path="url(#clipPath692)"
+ id="g759"><g
+ id="g761"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path763"
+ style="fill:url(#pattern720);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ id="g765"><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g767"><path
+ d="m 61.609,73.57 c 0,0 0.743,3.024 -2.363,3.055 -1.488,0.012 -1.184,2.469 -1.184,2.469 l 18.899,-0.016 c 0,0 0.258,-2.387 -1.238,-2.418 -3.059,-0.055 -2.336,-3.129 -2.336,-3.129 L 61.609,73.57 z"
+ id="path775"
+ style="fill:url(#linearGradient769);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g
+ id="g777"><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g779"><path
+ d="m 55.797,53.93 23.359,0 c 1.242,0 2.145,0.875 2.145,2.222 l 0.008,16.055 c 0,1.039 -0.325,1.359 -1.247,1.359 L 54.965,73.555 c -0.723,-0.02 -1.238,-0.305 -1.246,-1.239 l 0.008,-16.277 c 0,-1.09 0.945,-2.109 2.07,-2.109 z"
+ id="path787"
+ style="fill:url(#linearGradient781);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g
+ id="g789"><path
+ d="m 56.172,35.047 22.672,0 0,-14.094 -22.672,0 0,14.094 z"
+ id="path797"
+ style="fill:url(#radialGradient791);fill-opacity:1;fill-rule:evenodd;stroke:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g799"><path
+ d="m 56.172,56.395 22.672,0 0,14.094 -22.672,0 0,-14.094 z"
+ id="path801"
+ style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g803"><path
+ d="m 55.785,54.461 c -0.801,0 -1.531,0.793 -1.531,1.57 l 0,16.293 c 0.004,0.371 0.09,0.485 0.172,0.555 0.082,0.07 0.258,0.125 0.539,0.137 l 0.019,0 25.082,0.019 c 0.399,0 0.524,-0.062 0.575,-0.117 0.047,-0.051 0.132,-0.246 0.132,-0.707 l 0,-16.066 c 0,-1.106 -0.617,-1.684 -1.609,-1.684 l -23.379,0 z"
+ id="path805"
+ style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ id="g807"><g
+ id="g809" /><g
+ mask="url(#mask815)"
+ id="g823"><g
+ id="g825" /><g
+ id="g892"><g
+ clip-path="url(#clipPath827)"
+ id="g894"><g
+ id="g896"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path898"
+ style="fill:url(#pattern855);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g900"><path
+ d="m 58.922,77.227 c 4.109,0 17.031,0 17.031,0"
+ id="path902"
+ style="fill:none;stroke:#8d8d8f;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.43902402;stroke-dasharray:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g904"><path
+ d="m 58.711,77.844 c 4.109,0 17.598,0 17.598,0"
+ id="path906"
+ style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ id="g908"><g
+ id="g910" /><g
+ mask="url(#mask916)"
+ id="g924"><g
+ id="g926" /><g
+ id="g993"><g
+ clip-path="url(#clipPath928)"
+ id="g995"><g
+ id="g997"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path999"
+ style="fill:url(#pattern956);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ id="g1001"><g
+ id="g1003" /><g
+ mask="url(#mask1009)"
+ id="g1017"><g
+ id="g1019" /><g
+ id="g1086"><g
+ clip-path="url(#clipPath1021)"
+ id="g1088"><g
+ id="g1090"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1092"
+ style="fill:url(#pattern1049);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ id="g1094"><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g1096"><path
+ d="m 10.609,83.77 c 0,0 0.743,3.023 -2.363,3.054 -1.488,0.012 -1.184,2.473 -1.184,2.473 l 18.899,-0.02 c 0,0 0.258,-2.386 -1.238,-2.414 -3.059,-0.058 -2.336,-3.129 -2.336,-3.129 L 10.609,83.77 z"
+ id="path1104"
+ style="fill:url(#linearGradient1098);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g
+ id="g1106"><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g1108"><path
+ d="m 4.797,64.133 23.359,0 c 1.242,0 2.145,0.875 2.145,2.219 l 0.008,16.054 c 0,1.039 -0.325,1.36 -1.247,1.36 L 3.965,83.754 C 3.242,83.734 2.727,83.449 2.719,82.516 L 2.727,66.238 c 0,-1.086 0.945,-2.105 2.07,-2.105 z"
+ id="path1116"
+ style="fill:url(#linearGradient1110);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g
+ id="g1118"><path
+ d="m 5.172,24.844 22.672,0 0,-14.09 -22.672,0 0,14.09 z"
+ id="path1126"
+ style="fill:url(#radialGradient1120);fill-opacity:1;fill-rule:evenodd;stroke:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g1128"><path
+ d="m 5.172,66.598 22.672,0 0,14.09 -22.672,0 0,-14.09 z"
+ id="path1130"
+ style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g1132"><path
+ d="m 4.785,64.66 c -0.801,0 -1.531,0.793 -1.531,1.57 l 0,16.297 c 0.004,0.368 0.09,0.485 0.172,0.555 0.082,0.066 0.258,0.121 0.539,0.133 l 0.019,0 25.082,0.019 c 0.399,0 0.524,-0.062 0.575,-0.117 0.047,-0.051 0.132,-0.242 0.132,-0.707 l 0,-16.062 c 0,-1.11 -0.617,-1.688 -1.609,-1.688 l -23.379,0 z"
+ id="path1134"
+ style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ id="g1136"><g
+ id="g1138" /><g
+ mask="url(#mask1144)"
+ id="g1152"><g
+ id="g1154" /><g
+ id="g1221"><g
+ clip-path="url(#clipPath1156)"
+ id="g1223"><g
+ id="g1225"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1227"
+ style="fill:url(#pattern1184);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g1229"><path
+ d="m 7.922,87.426 c 4.109,0 17.031,0 17.031,0"
+ id="path1231"
+ style="fill:none;stroke:#8d8d8f;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.43902402;stroke-dasharray:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g1233"><path
+ d="m 7.711,88.043 c 4.109,0 17.598,0 17.598,0"
+ id="path1235"
+ style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ id="g1237"><g
+ id="g1239" /><g
+ mask="url(#mask1245)"
+ id="g1253"><g
+ id="g1255" /><g
+ id="g1322"><g
+ clip-path="url(#clipPath1257)"
+ id="g1324"><g
+ id="g1326"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1328"
+ style="fill:url(#pattern1285);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g1330"><path
+ d="m 62.199,17.5 -14.301,-6.699 1.704,6 -1.903,4.699 14.5,-4 z"
+ id="path1332"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g1334"><path
+ d="m 56.102,52.199 -4.903,-17.898 -3.801,5.597 -6,1.602 14.704,10.699 z"
+ id="path1336"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g1338"><path
+ d="M 16.801,63 12.602,46.301 17.801,49.699 24.398,47.398 16.801,63 z"
+ id="path1340"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><path
+ d="m 5.9755084,83.487599 0,-17.839038 C 22.718232,66.990115 28.98411,75.666186 42.596557,76.572642 l 0,6.946035 -36.6210486,-0.03108 z"
+ id="path4073"
+ style="opacity:0.65;fill:url(#linearGradient4478);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path
+ d="m 5.5444789,24.526574 0,-10.474685 c 9.9770891,0.787731 13.7109621,5.882126 21.8227001,6.414376 l 0,4.078557 -21.8227001,-0.01825 z"
+ id="path4073-3"
+ style="opacity:0.65;fill:url(#linearGradient4475);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path
+ d="m 56.57296,34.663776 0,-10.474685 c 9.97709,0.787731 13.710963,5.882126 21.822701,6.414376 l 0,4.078557 -21.822701,-0.01825 z"
+ id="path4484"
+ style="opacity:0.65;fill:url(#linearGradient4472);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path
+ d="m 65.888226,80.863387 0,-10.474685 c 9.97709,0.787731 13.710963,5.882126 21.822701,6.414376 l 0,4.078557 -21.822701,-0.01825 z"
+ id="path4488"
+ style="opacity:0.65;fill:url(#linearGradient4469);fill-opacity:1;fill-rule:evenodd;stroke:none" /><g
+ transform="matrix(0.2730524,0,0,-0.2730524,1.850926,90.906749)"
+ id="g5712"><path
+ d="m 83.554544,24.461435 c -14.71669,0 -26.69498,11.97829 -26.69498,26.69498 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.694966,-11.97829 26.694966,-26.69498 0,-14.71669 -11.978286,-26.69498 -26.694966,-26.69498 z"
+ id="path44010"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297-9)"
+ inkscape:connector-curvature="0" /><path
+ d="m 83.471334,61.729865 c -21.63445,0 -39.1875,17.34747 -39.1875,38.750005 l 0,6.125 c 0,6.05287 6.27536,18.75004 28.90625,18.75004 l 20.53125,0 c 22.630376,0 28.937496,-12.07968 28.937496,-18.75004 l 0,-6.125 c 0,-21.402545 -17.55305,-38.750005 -39.187496,-38.750005 z"
+ id="path44012"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293-2)"
+ inkscape:connector-curvature="0" /><path
+ d="m 82.721334,60.479865 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125005 c 0,6.05287 6.27536,18.75004 28.90625,18.75004 l 20.53125,0 c 22.630376,0 28.937496,-12.07968 28.937496,-18.75004 l 0,-6.125005 c 0,-21.40254 -17.55305,-38.75 -39.187496,-38.75 z"
+ id="path44014"
+ style="fill:url(#linearGradient5673-0);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 82.721334,62.640575 c -20.11022,0 -36.4266,15.9074 -36.4266,35.53322 l 0,5.616555 c 0,5.55039 5.83324,17.19346 26.8697,17.19346 l 19.08475,0 c 21.035986,0 26.898746,-11.07683 26.898746,-17.19346 l 0,-5.616555 c 0,-19.62582 -16.31638,-35.53322 -36.426596,-35.53322 z"
+ id="path44016"
+ style="fill:url(#radialGradient5670-6);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 100.20776,69.951755 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.652675"
+ id="path44018"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient5667-0);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 65.396354,69.951755 c -8.46364,9.0621 -14.91528,24.09751 -16.80551,38.652675"
+ id="path44020"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient5664-4);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 76.029544,74.153135 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z"
+ id="path44022"
+ style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5661-5);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" /><path
+ d="m 82.802063,84.286357 -6.375115,-8.729195 12.750228,0 -6.375113,8.729195 z"
+ id="path44024"
+ style="fill:url(#linearGradient5658-1);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 66.167774,68.733775 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z"
+ id="path44028"
+ style="fill:url(#radialGradient5655-7);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 89.238444,74.153135 c 2.3027,1.97418 4.96223,3.5307 3.72122,8.28271 5.66073,-1.14662 9.949706,-8.89011 6.36208,-14.40472 l -10.0833,6.12201 z"
+ id="path44621"
+ style="fill:#9dcfff;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5652-7);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" /><path
+ d="M 94.866576,3.8320402 125.6365,30.998333 84.545268,42.990242 53.315632,16.353847 94.866576,3.8320402 z"
+ id="path2368"
+ style="fill:url(#linearGradient5645-3);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 108.48254,49.905192 a 25.680481,25.680481 0 1 1 -51.360957,0 25.680481,25.680481 0 1 1 51.360957,0 z"
+ id="path44030"
+ style="fill:url(#radialGradient5640-1);fill-opacity:1;stroke:url(#linearGradient5642-0);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" /><path
+ d="M 95.339339,2.2381767 126.15042,28.890606 125.62204,31.068045 94.816591,4.063144 95.339339,2.2381767 z"
+ id="path1526"
+ style="fill:url(#linearGradient5637-0);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="M 95.339339,2.2381767 53.897375,14.26818 53.368996,16.44562 94.816591,4.063144 95.339339,2.2381767 z"
+ id="path2296"
+ style="fill:url(#linearGradient5634-9);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z"
+ id="path2308"
+ style="fill:url(#linearGradient5631-1);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z"
+ id="path2390"
+ style="fill:url(#linearGradient5628-3);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z"
+ id="path2334"
+ style="fill:url(#radialGradient5625-6);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 107.19478,29.038759 c 0,0 -0.0232,-2.96189 -2.87177,-5.616365 -2.84859,-2.654477 -14.259844,-12.214967 -33.764071,-5.122837 -1.779252,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660762 -4.034895,9.807253 -4.034895,9.807253 0,0 14.650436,1.009743 20.024613,13.294259 12.141744,-9.677712 23.688825,-4.204767 23.688825,-4.204767 l -0.74633,-10.659294 z"
+ id="path2378"
+ style="fill:url(#linearGradient5622-2);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 64.162631,30.18291 c 0.149332,0.01059 14.629755,1.063358 19.976289,13.284672 11.922076,-9.502622 23.13746,-4.443379 23.5442,-4.255555 l 0.0324,0.45444 c 0,0 -11.547076,-5.472945 -23.688824,4.204771 C 78.652529,31.586719 64.002093,30.576979 64.002093,30.576979 c 0,0 0.15161,-0.371808 0.160545,-0.394069 z"
+ id="path2346"
+ style="fill:#4a4a4a;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 113.60446,18.082424 -1.90168,-1.445041 c 3.80497,-1.738734 7.43718,0.715259 6.56708,4.719089 l -1.22689,5.969541 c 0.0432,0.587925 0.46457,1.781249 0.0473,2.502842 -0.10735,1.184875 -1.3604,1.258502 -1.25176,2.164778 0.0432,0.587928 1.47788,1.196989 1.72301,2.387496 1.28414,1.824459 3.37872,5.88301 5.33931,7.295208 1.50561,0.927498 1.91686,1.943279 3.66098,1.18229 0,0 0.6432,-0.265733 0.69931,0.363737 -4.78339,3.695975 -10.00982,-9.009253 -9.00872,-5.467637 6.68202,14.27976 8.21084,11.272157 8.55487,11.806497 0.34402,0.534341 -0.051,0.986356 -0.051,0.986356 l -0.52871,-0.0085 0.31272,0.287043 -0.61385,0.906853 -1.43837,-0.446058 1.1172,0.687721 -0.50866,0.94379 -0.9153,-0.08514 0.59413,0.3268 -0.11363,0.491771 -0.88399,0.162157 0.27578,0.392223 -0.39504,0.452019 -0.6965,-0.539975 0.48614,0.466097 -0.75596,0.975096 -1.02048,-0.122078 0.23885,0.497407 -1.04019,1.111575 -1.12285,-0.335247 c 0,0 -6.11605,-12.190603 -6.8614,-16.29223 -0.74535,-4.101625 0.96815,-7.63512 0.96815,-7.63512 0,0 1.05742,0.01691 0.30676,-1.546372 -1.12002,-0.511482 -0.42667,-1.981163 -0.26766,-3.106818 0.15902,-1.125658 1.60584,-1.208306 1.60584,-1.208306 -0.003,0.176234 0.87053,-5.232949 1.07604,-6.640612 0.20551,-1.407664 -1.17557,-3.094485 -2.97083,-2.199306 z"
+ id="path2312"
+ style="fill:url(#linearGradient5618-0);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 115.91213,31.697338 c -0.0283,0.09625 -0.0898,0.176977 -0.0753,0.298474 0.004,0.05087 0.0627,0.104062 0.0857,0.155615 -0.22808,0.653732 -0.85238,4.783698 1.5573,9.275224 2.58485,5.743692 6.17379,11.446673 6.67497,12.239195 l -0.1105,0.02029 0.0473,0.07568 -0.0838,0.0075 c -1.74796,-2.671528 -5.72681,-9.566492 -7.26492,-13.103586 -1.77943,-4.092008 -1.17869,-7.872147 -1.17869,-7.872147 0,0 0.0503,-0.585045 0.0905,-0.972506 l 0.25759,-0.123687 z m -0.53294,0.255905 c -0.0271,0.148082 -0.031,0.106964 -0.0618,0.281061 -0.77301,5.472219 0.0637,7.784838 0.11098,7.947636 1.94994,4.370678 4.95692,10.04966 7.46633,15.116404 l -0.0945,0.121887 -0.0483,-0.0096 c -0.5523,-1.068673 -6.26702,-12.131795 -7.3696,-14.550761 -1.1561,-2.536393 -0.37181,-8.172154 -0.37181,-8.172154 0,0 0.0816,-0.42384 0.12,-0.615067 l 0.2487,-0.119421 z m -0.39081,0.187665 c -0.0306,0.130484 -0.0222,0.09744 -0.0568,0.245885 -0.98219,4.521543 -1.12277,6.100908 -0.27012,8.906683 l 6.93973,14.975782 -0.16129,0.164884 c -0.37775,-0.7712 -5.57624,-11.39103 -6.96106,-15.020189 -1.43567,-3.762422 0.19657,-8.991591 0.19657,-8.991591 l 0.0199,-0.140706 0.29311,-0.140748 z m 0.99844,0.121722 c 0.0529,0.08014 0.0814,0.164318 0.16349,0.249406 -0.0109,0.10155 -0.41901,4.037563 1.62811,7.601687 3.30572,6.554234 5.62206,9.753525 6.88943,11.229006 l -0.17979,-0.05576 0.29245,0.17655 c 0.31865,0.362827 0.53553,0.579229 0.70221,0.733969 l -0.10906,0.205391 c -3.0155,-2.788048 -7.67376,-11.678343 -8.65681,-13.976383 -0.93689,-2.190161 -0.78502,-5.120942 -0.73003,-6.163868 z m 0.17663,0.254022 c 0.0928,0.0955 0.20817,0.19957 0.32125,0.30481 -0.0584,0.327528 -0.008,2.619958 0.65763,4.351427 3.59805,8.221928 7.67344,12.549433 9.17238,13.980214 l -0.0949,0.143916 c -5.65706,-5.243362 -8.61552,-12.638435 -9.23491,-13.928329 -0.62085,-1.292946 -0.81735,-4.779678 -0.8215,-4.852038 z m 0.42111,0.398955 c 0.0105,0.0099 0.0153,0.02121 0.026,0.03126 0.54782,2.496948 1.35363,3.685882 1.84436,4.273434 0.003,0.0777 0.0112,0.16213 0.0562,0.344646 -0.22166,-0.32497 -0.32388,-0.389714 -0.33083,-0.256486 -1.15972,-2.095324 -1.45557,-3.836954 -1.59566,-4.392858 z"
+ id="path3870"
+ style="fill:url(#linearGradient5615-9);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 115.85352,31.663647 c -0.0283,0.09625 -0.0898,0.176979 -0.0753,0.298476 0.0136,0.184351 0.17979,0.373322 0.38738,0.579103 0.0136,0.06266 0.023,0.09735 0.037,0.168058 0.54619,2.757078 1.41267,3.989248 1.9272,4.605283 0.003,0.09157 -0.0166,0.121374 0.064,0.406472 0.19472,0.41613 0.33888,0.683193 0.52495,1.070479 -0.13062,-0.153536 -0.32065,-0.428383 -0.67134,-1.011121 -1.52995,-2.542366 -1.77339,-5.051088 -1.89601,-5.177698 -0.0955,-0.263292 -0.0761,2.732998 0.66584,4.664456 3.66253,8.369271 7.8511,12.742461 9.28077,14.092121 l -0.0949,0.143913 c -5.73254,-5.249092 -8.71969,-12.741574 -9.34329,-14.040234 -0.62731,-1.30638 -0.82968,-4.891829 -0.82968,-4.891832 0,0 -0.45066,4.026286 1.62315,7.636865 4.45297,8.828902 7.13324,11.594718 7.83436,12.218056 l -0.11332,0.196508 C 122.164,49.96029 117.3874,40.848354 116.39171,38.520764 c -1.00935,-2.35954 -0.76537,-5.787484 -0.7283,-6.547252 -0.12263,-0.126609 -1.15961,4.606322 1.49125,9.547401 2.58485,5.743694 6.1738,11.446675 6.67498,12.239197 l -0.1105,0.02029 0.27578,0.392223 -0.0764,0.09133 c -1.6443,-2.454711 -5.91251,-9.85128 -7.50091,-13.503989 -1.77942,-4.092007 -1.17868,-7.872149 -1.17869,-7.872149 0,0 0.0503,-0.585043 0.0905,-0.972507 l 0.52406,-0.251641 z m -0.7994,0.383859 c -0.0271,0.148081 -0.031,0.106966 -0.0618,0.281063 -0.77301,5.472217 0.0637,7.784832 0.11099,7.947633 1.96639,4.407561 5.0083,10.150784 7.5303,15.249641 l -0.20679,-0.02093 c -0.5523,-1.068673 -6.26703,-12.131795 -7.3696,-14.550762 -1.15611,-2.53639 -0.37182,-8.172152 -0.37182,-8.172152 0,0 0.0816,-0.423842 0.12001,-0.615066 l 0.2487,-0.119424 z m -0.39082,0.187664 c -0.0306,0.130488 -0.0222,0.09744 -0.0568,0.245888 -0.98219,4.521544 -1.12277,6.100905 -0.27013,8.906678 l 6.98665,15.073486 -0.15702,0.17377 c -0.29822,-0.608735 -5.61583,-11.467249 -7.01224,-15.126773 -1.43567,-3.762428 0.19656,-8.991591 0.19656,-8.991591 l 0.0199,-0.14071 0.29312,-0.140748 z"
+ id="path3920"
+ style="fill:url(#linearGradient5612-8);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 113.60446,18.082424 -1.27483,-0.959065 c 3.80497,-1.738734 5.70753,0.846273 5.94023,4.233113 l -1.22689,5.969541 c 0.0432,0.587925 0.46457,1.781249 0.0473,2.502842 -0.10735,1.184875 -1.3604,1.258502 -1.25176,2.164778 0.0432,0.587928 1.47788,1.196989 1.72301,2.387496 1.28414,1.824459 3.37872,5.88301 5.33931,7.295208 1.50561,0.927498 1.91686,1.943279 3.66098,1.18229 0,0 0.6432,-0.265733 0.69931,0.363737 -4.78339,3.695975 -10.00982,-9.009253 -9.00872,-5.467637 6.68202,14.27976 8.21084,11.272157 8.55487,11.806497 0.34402,0.534341 -0.051,0.986356 -0.051,0.986356 l -0.52871,-0.0085 0.31272,0.287043 -0.61385,0.906853 -1.43837,-0.446058 1.1172,0.687721 -0.50866,0.94379 -0.9153,-0.08514 0.59413,0.3268 -0.11363,0.491771 -0.88399,0.162157 0.27578,0.392223 -0.39504,0.452019 -0.6965,-0.539975 0.48614,0.466097 -0.75596,0.975096 -1.02048,-0.122078 0.23885,0.497407 -1.04019,1.111575 -1.12285,-0.335247 c 0,0 -6.11605,-12.190603 -6.8614,-16.29223 -0.74535,-4.101625 0.96815,-7.63512 0.96815,-7.63512 0,0 1.05742,0.01691 0.30676,-1.546372 -1.12002,-0.511482 0.0153,-2.06224 0.17434,-3.187895 0.15901,-1.125658 1.16384,-1.127229 1.16384,-1.127229 0.77459,0.06526 1.26996,-4.856376 1.47547,-6.264039 0.20551,-1.407664 -1.575,-3.471058 -3.37026,-2.575879 z"
+ id="use3848"
+ style="fill:url(#linearGradient5609-6);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 114.28311,29.943753 c 0.49479,-0.31028 1.3331,-0.405599 2.65708,0.298067 -0.28917,0.677244 -0.92757,0.954658 -1.04227,1.516989 -0.52987,0.05596 -1.07253,0.09282 -1.54418,0.107535 -0.0359,-0.185534 -0.0611,-0.35482 -0.19267,-0.628878 -0.26879,-0.122748 -0.42825,-0.300007 -0.52061,-0.515126 0.0395,-0.111579 0.19072,-0.495192 0.64265,-0.778587 z"
+ id="path3946"
+ style="fill:#7f0000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 114.69752,30.761267 c 0.54914,-0.263686 1.20881,-0.03202 1.4725,0.517115 0.20064,0.41784 0.11214,0.890735 -0.18245,1.213425 -0.3225,-0.311108 -0.80766,-0.41008 -1.2351,-0.204831 -0.1342,0.06444 -0.24525,0.145845 -0.33893,0.250191 -0.0889,-0.08724 -0.17614,-0.184704 -0.23313,-0.303405 -0.26369,-0.549131 -0.032,-1.208808 0.51711,-1.472495 z"
+ id="path3937"
+ style="fill:#f6ca12;fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 115.34938,30.99509 c 2.45474,1.059132 -2.30147,0.635082 0,0 z"
+ id="path3942"
+ style="fill:#f6f1d7;fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" /><g
+ transform="matrix(0.92615143,0,0,0.79615016,38.327829,16.316524)"
+ id="g3842"><path
+ d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z"
+ id="path3337"
+ style="fill:url(#linearGradient5207-5);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" /><path
+ d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z"
+ transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)"
+ id="path3360"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1-2)"
+ inkscape:connector-curvature="0" /><path
+ d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z"
+ id="path3375"
+ style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /></g></g><g
+ id="g5744"
+ transform="matrix(0.17221294,0,0,-0.17221294,104.6656,80.487889)"><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297-4)"
+ id="path3281"
+ d="m -155.78611,-12.407395 c -14.71669,0 -26.69498,11.97828915 -26.69498,26.694979 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.69497,-11.97829 26.69497,-26.69498 0,-14.71668985 -11.97829,-26.694979 -26.69497,-26.694979 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293-5)"
+ id="path3283"
+ d="m -155.32695,24.861034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient7597);fill-opacity:1;stroke:none"
+ id="path2214"
+ d="m -156.61932,23.611034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient7599);fill-opacity:1;stroke:none"
+ id="path3193"
+ d="m -156.61932,25.771744 c -20.11022,0 -36.4266,15.9074 -36.4266,35.53322 l 0,5.61655 c 0,5.55039 5.83324,17.193505 26.8697,17.193505 l 19.08475,0 c 21.03599,0 26.89875,-11.076875 26.89875,-17.193505 l 0,-5.61655 c 0,-19.62582 -16.31638,-35.53322 -36.4266,-35.53322 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7601);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path3217"
+ d="m -139.13289,33.082924 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.65267" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7603);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path3227"
+ d="m -173.9443,33.082924 c -8.46364,9.0621 -14.91528,24.09751 -16.80551,38.65267" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:#52aa5d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3249"
+ d="m -163.31111,37.284304 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#ff2600;fill-opacity:1;stroke:#800000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path3245"
+ d="m -156.53859,49.903956 -6.32332,-10.952307 12.64663,-1e-6 -6.32331,10.952308 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#a0ff74;fill-opacity:1;fill-rule:evenodd;stroke:#5eaa5e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3247"
+ d="m -150.1765,37.284304 c 2.78286,1.49402 6.04258,3.41066 4.80157,8.16267 4.9405,-2.10693 8.86936,-8.77007 5.28173,-14.28468 l -10.0833,6.12201 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient7605);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path3251"
+ d="m -173.17288,31.864944 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient7607);fill-opacity:1;stroke:url(#linearGradient7609);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path2309"
+ d="m -130.85811,13.036361 a 25.68048,25.68048 0 1 1 -51.36096,0 25.68048,25.68048 0 1 1 51.36096,0 z" /><g
+ id="g3842-8"
+ transform="matrix(1,0,0,0.87225898,-199.74982,-24.193125)"><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient7611);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3337-3"
+ d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1-3)"
+ id="path3360-1"
+ transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)"
+ d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path3375-8"
+ d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z" /></g></g><g
+ id="g7615"
+ transform="matrix(0.17221294,0,0,-0.17221294,94.665383,34.185536)"><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297-4)"
+ id="path7617"
+ d="m -155.78611,-12.407395 c -14.71669,0 -26.69498,11.97828915 -26.69498,26.694979 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.69497,-11.97829 26.69497,-26.69498 0,-14.71668985 -11.97829,-26.694979 -26.69497,-26.694979 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293-5)"
+ id="path7619"
+ d="m -155.32695,24.861034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient7647);fill-opacity:1;stroke:none"
+ id="path7621"
+ d="m -156.61932,23.611034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient7649);fill-opacity:1;stroke:none"
+ id="path7623"
+ d="m -156.61932,25.771744 c -20.11022,0 -36.4266,15.9074 -36.4266,35.53322 l 0,5.61655 c 0,5.55039 5.83324,17.193505 26.8697,17.193505 l 19.08475,0 c 21.03599,0 26.89875,-11.076875 26.89875,-17.193505 l 0,-5.61655 c 0,-19.62582 -16.31638,-35.53322 -36.4266,-35.53322 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7651);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7625"
+ d="m -139.13289,33.082924 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.65267" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7653);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7627"
+ d="m -173.9443,33.082924 c -8.46364,9.0621 -14.91528,24.09751 -16.80551,38.65267" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:#52aa5d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path7629"
+ d="m -163.31111,37.284304 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#ff2600;fill-opacity:1;stroke:#800000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path7631"
+ d="m -156.53859,49.903956 -6.32332,-10.952307 12.64663,-1e-6 -6.32331,10.952308 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#a0ff74;fill-opacity:1;fill-rule:evenodd;stroke:#5eaa5e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path7633"
+ d="m -150.1765,37.284304 c 2.78286,1.49402 6.04258,3.41066 4.80157,8.16267 4.9405,-2.10693 8.86936,-8.77007 5.28173,-14.28468 l -10.0833,6.12201 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient7655);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path7635"
+ d="m -173.17288,31.864944 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient7657);fill-opacity:1;stroke:url(#linearGradient7659);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path7637"
+ d="m -130.85811,13.036361 a 25.68048,25.68048 0 1 1 -51.36096,0 25.68048,25.68048 0 1 1 51.36096,0 z" /><g
+ id="g7639"
+ transform="matrix(1,0,0,0.87225898,-199.74982,-24.193125)"><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient7661);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path7641"
+ d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1-3)"
+ id="path7643"
+ transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)"
+ d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path7645"
+ d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z" /></g></g><g
+ id="g7665"
+ transform="matrix(0.17221294,0,0,-0.17221294,43.705396,23.911345)"><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297-4)"
+ id="path7667"
+ d="m -155.78611,-12.407395 c -14.71669,0 -26.69498,11.97828915 -26.69498,26.694979 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.69497,-11.97829 26.69497,-26.69498 0,-14.71668985 -11.97829,-26.694979 -26.69497,-26.694979 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293-5)"
+ id="path7669"
+ d="m -155.32695,24.861034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient7697);fill-opacity:1;stroke:none"
+ id="path7671"
+ d="m -156.61932,23.611034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient7699);fill-opacity:1;stroke:none"
+ id="path7673"
+ d="m -156.61932,25.771744 c -20.11022,0 -36.4266,15.9074 -36.4266,35.53322 l 0,5.61655 c 0,5.55039 5.83324,17.193505 26.8697,17.193505 l 19.08475,0 c 21.03599,0 26.89875,-11.076875 26.89875,-17.193505 l 0,-5.61655 c 0,-19.62582 -16.31638,-35.53322 -36.4266,-35.53322 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7701);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7675"
+ d="m -139.13289,33.082924 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.65267" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7703);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7677"
+ d="m -173.9443,33.082924 c -8.46364,9.0621 -14.91528,24.09751 -16.80551,38.65267" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:#52aa5d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path7679"
+ d="m -163.31111,37.284304 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#ff2600;fill-opacity:1;stroke:#800000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path7681"
+ d="m -156.53859,49.903956 -6.32332,-10.952307 12.64663,-1e-6 -6.32331,10.952308 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#a0ff74;fill-opacity:1;fill-rule:evenodd;stroke:#5eaa5e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path7683"
+ d="m -150.1765,37.284304 c 2.78286,1.49402 6.04258,3.41066 4.80157,8.16267 4.9405,-2.10693 8.86936,-8.77007 5.28173,-14.28468 l -10.0833,6.12201 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient7705);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path7685"
+ d="m -173.17288,31.864944 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient7707);fill-opacity:1;stroke:url(#linearGradient7709);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path7687"
+ d="m -130.85811,13.036361 a 25.68048,25.68048 0 1 1 -51.36096,0 25.68048,25.68048 0 1 1 51.36096,0 z" /><g
+ id="g7689"
+ transform="matrix(1,0,0,0.87225898,-199.74982,-24.193125)"><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient7711);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path7691"
+ d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1-3)"
+ id="path7693"
+ transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)"
+ d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path7695"
+ d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z" /></g></g></g></svg> \ No newline at end of file
diff --git a/icons/tutor2student.svg b/icons/tutor2student.svg
new file mode 100644
index 0000000..52942c6
--- /dev/null
+++ b/icons/tutor2student.svg
@@ -0,0 +1,2608 @@
+<?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.1"
+ width="114.38715"
+ height="114.30188"
+ id="svg2"
+ xml:space="preserve"
+ inkscape:version="0.48.3.1 r9886"
+ sodipodi:docname="tutor2student.svg"><sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1148"
+ id="namedview10864"
+ showgrid="false"
+ inkscape:zoom="8.2588318"
+ inkscape:cx="57.193577"
+ inkscape:cy="56.962738"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="g10" /><metadata
+ id="metadata8"><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></dc:title></cc:Work></rdf:RDF></metadata><defs
+ id="defs6"><clipPath
+ id="clipPath18"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path20" /></clipPath><mask
+ id="mask22"><g
+ id="g24"><g
+ clip-path="url(#clipPath18)"
+ id="g26"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path28"
+ style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath34"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path36" /></clipPath><clipPath
+ id="clipPath38"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path40" /></clipPath><clipPath
+ id="clipPath42"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path44" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient46"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.980126,0,0,-0.216527,1.465394,57.746052)"
+ spreadMethod="pad"><stop
+ id="stop48"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop50"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath52"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path54" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient56"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.980126,0,0,-0.216527,1.465394,57.746052)"
+ spreadMethod="pad"><stop
+ id="stop58"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop60"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern62"><defs
+ id="defs64"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask0"><g
+ id="g67"><g
+ clip-path="url(#clipPath42)"
+ id="g69"><g
+ id="g71"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#radialGradient46);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path73" /></g></g></g></mask></defs><g
+ id="g75" /><g
+ id="g77"><g
+ clip-path="url(#clipPath38)"
+ id="g79"><g
+ id="g81"><g
+ id="g83"><g
+ id="g85" /><g
+ mask="url(#_mask0)"
+ id="g87"><g
+ id="g89" /><g
+ id="g91"><g
+ clip-path="url(#clipPath52)"
+ id="g93"><g
+ id="g95"><path
+ d="m 48.215,48.504 c 0,-2.844 -10.426,-5.145 -23.289,-5.145 -12.86,0 -23.285,2.301 -23.285,5.145 0,2.84 10.425,5.144 23.285,5.144 12.863,0 23.289,-2.304 23.289,-5.144 z"
+ style="fill:url(#radialGradient56);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path97" /></g></g></g></g></g></g></g></g></pattern><linearGradient
+ x1="31.742188"
+ y1="37.84375"
+ x2="31.859375"
+ y2="43.824219"
+ id="linearGradient111"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.012271,0,0,-1.012271,0,91.441505)"
+ spreadMethod="pad"><stop
+ id="stop113"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop115"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="17.246094"
+ y1="6.375"
+ x2="39.90625"
+ y2="38.875"
+ id="linearGradient123"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.012271,0,0,-1.012271,0,91.441505)"
+ spreadMethod="pad"><stop
+ id="stop125"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop127"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="24.007812"
+ cy="32.996094"
+ r="19"
+ fx="24.007812"
+ fy="32.996094"
+ id="radialGradient133"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.247759,0,0,-0.787943,-5.653165,89.260693)"
+ spreadMethod="pad"><stop
+ id="stop135"
+ style="stop-color:#555753;stop-opacity:1"
+ offset="0" /><stop
+ id="stop137"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath153"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path155" /></clipPath><mask
+ id="mask157"><g
+ id="g159"><g
+ clip-path="url(#clipPath153)"
+ id="g161"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path163"
+ style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath169"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path171" /></clipPath><clipPath
+ id="clipPath173"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path175" /></clipPath><clipPath
+ id="clipPath177"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path179" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient181"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)"
+ spreadMethod="pad"><stop
+ id="stop183"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop185"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath187"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path189" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient191"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)"
+ spreadMethod="pad"><stop
+ id="stop193"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop195"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern197"><defs
+ id="defs199"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask1"><g
+ id="g202"><g
+ clip-path="url(#clipPath177)"
+ id="g204"><g
+ id="g206"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient181);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path208" /></g></g></g></mask></defs><g
+ id="g210" /><g
+ id="g212"><g
+ clip-path="url(#clipPath173)"
+ id="g214"><g
+ id="g216"><g
+ id="g218"><g
+ id="g220" /><g
+ mask="url(#_mask1)"
+ id="g222"><g
+ id="g224" /><g
+ id="g226"><g
+ clip-path="url(#clipPath187)"
+ id="g228"><g
+ id="g230"><path
+ d="m 14.164,55.52 c 0.086,-2.2 -0.285,-2.95 -1.652,-3.723 l 23.902,-1.313 c -0.961,1.184 -2.355,2.969 -1.976,5.051 L 14.164,55.52 z"
+ style="fill:url(#linearGradient191);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path232" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath254"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path256" /></clipPath><mask
+ id="mask258"><g
+ id="g260"><g
+ clip-path="url(#clipPath254)"
+ id="g262"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path264"
+ style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath270"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path272" /></clipPath><clipPath
+ id="clipPath274"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path276" /></clipPath><clipPath
+ id="clipPath278"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path280" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient282"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)"
+ spreadMethod="pad"><stop
+ id="stop284"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop286"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath288"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path290" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient292"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)"
+ spreadMethod="pad"><stop
+ id="stop294"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop296"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern298"><defs
+ id="defs300"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask2"><g
+ id="g303"><g
+ clip-path="url(#clipPath278)"
+ id="g305"><g
+ id="g307"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient282);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path309" /></g></g></g></mask></defs><g
+ id="g311" /><g
+ id="g313"><g
+ clip-path="url(#clipPath274)"
+ id="g315"><g
+ id="g317"><g
+ id="g319"><g
+ id="g321" /><g
+ mask="url(#_mask2)"
+ id="g323"><g
+ id="g325" /><g
+ id="g327"><g
+ clip-path="url(#clipPath288)"
+ id="g329"><g
+ id="g331"><path
+ d="m 6.098,83.871 0,-18.23 c 16.644,1.371 22.875,10.238 36.41,11.164 l 0,7.097 -36.41,-0.031 z"
+ style="fill:url(#linearGradient292);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path333" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath347"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path349" /></clipPath><mask
+ id="mask351"><g
+ id="g353"><g
+ clip-path="url(#clipPath347)"
+ id="g355"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path357"
+ style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath363"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path365" /></clipPath><clipPath
+ id="clipPath367"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path369" /></clipPath><clipPath
+ id="clipPath371"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path373" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient375"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.593246,0,0,-0.131058,62.986967,65.666929)"
+ spreadMethod="pad"><stop
+ id="stop377"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop379"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath381"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path383" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient385"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.593246,0,0,-0.131058,62.986967,65.666929)"
+ spreadMethod="pad"><stop
+ id="stop387"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop389"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern391"><defs
+ id="defs393"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask3"><g
+ id="g396"><g
+ clip-path="url(#clipPath371)"
+ id="g398"><g
+ id="g400"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#radialGradient375);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path402" /></g></g></g></mask></defs><g
+ id="g404" /><g
+ id="g406"><g
+ clip-path="url(#clipPath367)"
+ id="g408"><g
+ id="g410"><g
+ id="g412"><g
+ id="g414" /><g
+ mask="url(#_mask3)"
+ id="g416"><g
+ id="g418" /><g
+ id="g420"><g
+ clip-path="url(#clipPath381)"
+ id="g422"><g
+ id="g424"><path
+ d="m 91.281,60.074 c 0,-1.722 -6.308,-3.117 -14.093,-3.117 -7.786,0 -14.094,1.395 -14.094,3.117 0,1.719 6.308,3.114 14.094,3.114 7.785,0 14.093,-1.395 14.093,-3.114 z"
+ style="fill:url(#radialGradient385);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path426" /></g></g></g></g></g></g></g></g></pattern><linearGradient
+ x1="31.742188"
+ y1="37.84375"
+ x2="31.859375"
+ y2="43.824219"
+ id="linearGradient440"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,85.841505)"
+ spreadMethod="pad"><stop
+ id="stop442"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop444"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="17.246094"
+ y1="6.375"
+ x2="39.90625"
+ y2="38.875"
+ id="linearGradient452"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,85.841505)"
+ spreadMethod="pad"><stop
+ id="stop454"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop456"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="24.007812"
+ cy="32.996094"
+ r="19"
+ fx="24.007812"
+ fy="32.996094"
+ id="radialGradient462"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.755238,0,0,-0.476923,58.678279,84.521513)"
+ spreadMethod="pad"><stop
+ id="stop464"
+ style="stop-color:#555753;stop-opacity:1"
+ offset="0" /><stop
+ id="stop466"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath482"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path484" /></clipPath><mask
+ id="mask486"><g
+ id="g488"><g
+ clip-path="url(#clipPath482)"
+ id="g490"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path492"
+ style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath498"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path500" /></clipPath><clipPath
+ id="clipPath502"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path504" /></clipPath><clipPath
+ id="clipPath506"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path508" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient510"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)"
+ spreadMethod="pad"><stop
+ id="stop512"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop514"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath516"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path518" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient520"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)"
+ spreadMethod="pad"><stop
+ id="stop522"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop524"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern526"><defs
+ id="defs528"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask4"><g
+ id="g531"><g
+ clip-path="url(#clipPath506)"
+ id="g533"><g
+ id="g535"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient510);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path537" /></g></g></g></mask></defs><g
+ id="g539" /><g
+ id="g541"><g
+ clip-path="url(#clipPath502)"
+ id="g543"><g
+ id="g545"><g
+ id="g547"><g
+ id="g549" /><g
+ mask="url(#_mask4)"
+ id="g551"><g
+ id="g553" /><g
+ id="g555"><g
+ clip-path="url(#clipPath516)"
+ id="g557"><g
+ id="g559"><path
+ d="m 70.672,64.32 c 0.051,-1.332 -0.172,-1.785 -1,-2.254 l 14.469,-0.793 c -0.582,0.715 -1.426,1.797 -1.196,3.055 L 70.672,64.32 z"
+ style="fill:url(#linearGradient520);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path561" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath583"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path585" /></clipPath><mask
+ id="mask587"><g
+ id="g589"><g
+ clip-path="url(#clipPath583)"
+ id="g591"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path593"
+ style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath599"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path601" /></clipPath><clipPath
+ id="clipPath603"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path605" /></clipPath><clipPath
+ id="clipPath607"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path609" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient611"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)"
+ spreadMethod="pad"><stop
+ id="stop613"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop615"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath617"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path619" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient621"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)"
+ spreadMethod="pad"><stop
+ id="stop623"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop625"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern627"><defs
+ id="defs629"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask5"><g
+ id="g632"><g
+ clip-path="url(#clipPath607)"
+ id="g634"><g
+ id="g636"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient611);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path638" /></g></g></g></mask></defs><g
+ id="g640" /><g
+ id="g642"><g
+ clip-path="url(#clipPath603)"
+ id="g644"><g
+ id="g646"><g
+ id="g648"><g
+ id="g650" /><g
+ mask="url(#_mask5)"
+ id="g652"><g
+ id="g654" /><g
+ id="g656"><g
+ clip-path="url(#clipPath617)"
+ id="g658"><g
+ id="g660"><path
+ d="m 65.789,81.48 0,-11.035 c 10.078,0.832 13.848,6.196 22.039,6.758 l 0,4.297 -22.039,-0.02 z"
+ style="fill:url(#linearGradient621);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path662" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath676"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path678" /></clipPath><mask
+ id="mask680"><g
+ id="g682"><g
+ clip-path="url(#clipPath676)"
+ id="g684"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path686"
+ style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath692"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path694" /></clipPath><clipPath
+ id="clipPath696"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path698" /></clipPath><clipPath
+ id="clipPath700"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path702" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient704"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.593246,0,0,-0.131058,53.686967,19.466929)"
+ spreadMethod="pad"><stop
+ id="stop706"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop708"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath710"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path712" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient714"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.593246,0,0,-0.131058,53.686967,19.466929)"
+ spreadMethod="pad"><stop
+ id="stop716"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop718"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern720"><defs
+ id="defs722"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask6"><g
+ id="g725"><g
+ clip-path="url(#clipPath700)"
+ id="g727"><g
+ id="g729"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#radialGradient704);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path731" /></g></g></g></mask></defs><g
+ id="g733" /><g
+ id="g735"><g
+ clip-path="url(#clipPath696)"
+ id="g737"><g
+ id="g739"><g
+ id="g741"><g
+ id="g743" /><g
+ mask="url(#_mask6)"
+ id="g745"><g
+ id="g747" /><g
+ id="g749"><g
+ clip-path="url(#clipPath710)"
+ id="g751"><g
+ id="g753"><path
+ d="m 81.984,13.871 c 0,-1.719 -6.312,-3.113 -14.097,-3.113 -7.785,0 -14.094,1.394 -14.094,3.113 0,1.723 6.309,3.113 14.094,3.113 7.785,0 14.097,-1.39 14.097,-3.113 z"
+ style="fill:url(#radialGradient714);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path755" /></g></g></g></g></g></g></g></g></pattern><linearGradient
+ x1="31.742188"
+ y1="37.84375"
+ x2="31.859375"
+ y2="43.824219"
+ id="linearGradient769"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,39.641505)"
+ spreadMethod="pad"><stop
+ id="stop771"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop773"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="17.246094"
+ y1="6.375"
+ x2="39.90625"
+ y2="38.875"
+ id="linearGradient781"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,39.641505)"
+ spreadMethod="pad"><stop
+ id="stop783"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop785"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="24.007812"
+ cy="32.996094"
+ r="19"
+ fx="24.007812"
+ fy="32.996094"
+ id="radialGradient791"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.755238,0,0,-0.476923,49.378279,38.321513)"
+ spreadMethod="pad"><stop
+ id="stop793"
+ style="stop-color:#555753;stop-opacity:1"
+ offset="0" /><stop
+ id="stop795"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath811"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path813" /></clipPath><mask
+ id="mask815"><g
+ id="g817"><g
+ clip-path="url(#clipPath811)"
+ id="g819"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path821"
+ style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath827"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path829" /></clipPath><clipPath
+ id="clipPath831"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path833" /></clipPath><clipPath
+ id="clipPath835"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path837" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient839"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)"
+ spreadMethod="pad"><stop
+ id="stop841"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop843"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath845"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path847" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient849"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)"
+ spreadMethod="pad"><stop
+ id="stop851"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop853"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern855"><defs
+ id="defs857"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask7"><g
+ id="g860"><g
+ clip-path="url(#clipPath835)"
+ id="g862"><g
+ id="g864"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient839);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path866" /></g></g></g></mask></defs><g
+ id="g868" /><g
+ id="g870"><g
+ clip-path="url(#clipPath831)"
+ id="g872"><g
+ id="g874"><g
+ id="g876"><g
+ id="g878" /><g
+ mask="url(#_mask7)"
+ id="g880"><g
+ id="g882" /><g
+ id="g884"><g
+ clip-path="url(#clipPath845)"
+ id="g886"><g
+ id="g888"><path
+ d="m 61.371,18.117 c 0.055,-1.328 -0.172,-1.781 -1,-2.25 L 74.84,15.07 c -0.578,0.719 -1.426,1.801 -1.195,3.059 L 61.371,18.117 z"
+ style="fill:url(#linearGradient849);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path890" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath912"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path914" /></clipPath><mask
+ id="mask916"><g
+ id="g918"><g
+ clip-path="url(#clipPath912)"
+ id="g920"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path922"
+ style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath928"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path930" /></clipPath><clipPath
+ id="clipPath932"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path934" /></clipPath><clipPath
+ id="clipPath936"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path938" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient940"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)"
+ spreadMethod="pad"><stop
+ id="stop942"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop944"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath946"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path948" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient950"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)"
+ spreadMethod="pad"><stop
+ id="stop952"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop954"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern956"><defs
+ id="defs958"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask8"><g
+ id="g961"><g
+ clip-path="url(#clipPath936)"
+ id="g963"><g
+ id="g965"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient940);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path967" /></g></g></g></mask></defs><g
+ id="g969" /><g
+ id="g971"><g
+ clip-path="url(#clipPath932)"
+ id="g973"><g
+ id="g975"><g
+ id="g977"><g
+ id="g979" /><g
+ mask="url(#_mask8)"
+ id="g981"><g
+ id="g983" /><g
+ id="g985"><g
+ clip-path="url(#clipPath946)"
+ id="g987"><g
+ id="g989"><path
+ d="m 56.492,35.277 0,-11.031 c 10.074,0.828 13.844,6.195 22.035,6.758 l 0,4.293 -22.035,-0.02 z"
+ style="fill:url(#linearGradient950);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path991" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath1005"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1007" /></clipPath><mask
+ id="mask1009"><g
+ id="g1011"><g
+ clip-path="url(#clipPath1005)"
+ id="g1013"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1015"
+ style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath1021"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1023" /></clipPath><clipPath
+ id="clipPath1025"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1027" /></clipPath><clipPath
+ id="clipPath1029"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1031" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient1033"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.593246,0,0,-0.131058,2.686967,9.266929)"
+ spreadMethod="pad"><stop
+ id="stop1035"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1037"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath1039"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1041" /></clipPath><radialGradient
+ cx="23.9375"
+ cy="42.6875"
+ r="23.757812"
+ fx="23.9375"
+ fy="42.6875"
+ id="radialGradient1043"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.593246,0,0,-0.131058,2.686967,9.266929)"
+ spreadMethod="pad"><stop
+ id="stop1045"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1047"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern1049"><defs
+ id="defs1051"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask9"><g
+ id="g1054"><g
+ clip-path="url(#clipPath1029)"
+ id="g1056"><g
+ id="g1058"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#radialGradient1033);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path1060" /></g></g></g></mask></defs><g
+ id="g1062" /><g
+ id="g1064"><g
+ clip-path="url(#clipPath1025)"
+ id="g1066"><g
+ id="g1068"><g
+ id="g1070"><g
+ id="g1072" /><g
+ mask="url(#_mask9)"
+ id="g1074"><g
+ id="g1076" /><g
+ id="g1078"><g
+ clip-path="url(#clipPath1039)"
+ id="g1080"><g
+ id="g1082"><path
+ d="m 30.984,3.672 c 0,-1.719 -6.312,-3.113 -14.097,-3.113 -7.785,0 -14.094,1.394 -14.094,3.113 0,1.719 6.309,3.113 14.094,3.113 7.785,0 14.097,-1.394 14.097,-3.113 z"
+ style="fill:url(#radialGradient1043);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path1084" /></g></g></g></g></g></g></g></g></pattern><linearGradient
+ x1="31.742188"
+ y1="37.84375"
+ x2="31.859375"
+ y2="43.824219"
+ id="linearGradient1098"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,29.441505)"
+ spreadMethod="pad"><stop
+ id="stop1100"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1102"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="17.246094"
+ y1="6.375"
+ x2="39.90625"
+ y2="38.875"
+ id="linearGradient1110"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,29.441505)"
+ spreadMethod="pad"><stop
+ id="stop1112"
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1114"
+ style="stop-color:#e6e6e3;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="24.007812"
+ cy="32.996094"
+ r="19"
+ fx="24.007812"
+ fy="32.996094"
+ id="radialGradient1120"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.755238,0,0,-0.476923,-1.621721,28.121513)"
+ spreadMethod="pad"><stop
+ id="stop1122"
+ style="stop-color:#555753;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1124"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></radialGradient><clipPath
+ id="clipPath1140"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1142" /></clipPath><mask
+ id="mask1144"><g
+ id="g1146"><g
+ clip-path="url(#clipPath1140)"
+ id="g1148"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1150"
+ style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath1156"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1158" /></clipPath><clipPath
+ id="clipPath1160"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1162" /></clipPath><clipPath
+ id="clipPath1164"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1166" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient1168"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)"
+ spreadMethod="pad"><stop
+ id="stop1170"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1172"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath1174"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1176" /></clipPath><linearGradient
+ x1="23.15625"
+ y1="34.574219"
+ x2="23.53125"
+ y2="40.21875"
+ id="linearGradient1178"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)"
+ spreadMethod="pad"><stop
+ id="stop1180"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1182"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern1184"><defs
+ id="defs1186"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask10"><g
+ id="g1189"><g
+ clip-path="url(#clipPath1164)"
+ id="g1191"><g
+ id="g1193"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient1168);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path1195" /></g></g></g></mask></defs><g
+ id="g1197" /><g
+ id="g1199"><g
+ clip-path="url(#clipPath1160)"
+ id="g1201"><g
+ id="g1203"><g
+ id="g1205"><g
+ id="g1207" /><g
+ mask="url(#_mask10)"
+ id="g1209"><g
+ id="g1211" /><g
+ id="g1213"><g
+ clip-path="url(#clipPath1174)"
+ id="g1215"><g
+ id="g1217"><path
+ d="m 10.371,7.918 c 0.055,-1.332 -0.172,-1.781 -1,-2.25 L 23.84,4.871 C 23.262,5.59 22.414,6.668 22.645,7.93 L 10.371,7.918 z"
+ style="fill:url(#linearGradient1178);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path1219" /></g></g></g></g></g></g></g></g></pattern><clipPath
+ id="clipPath1241"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1243" /></clipPath><mask
+ id="mask1245"><g
+ id="g1247"><g
+ clip-path="url(#clipPath1241)"
+ id="g1249"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1251"
+ style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath
+ id="clipPath1257"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path1259" /></clipPath><clipPath
+ id="clipPath1261"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1263" /></clipPath><clipPath
+ id="clipPath1265"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1267" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient1269"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)"
+ spreadMethod="pad"><stop
+ id="stop1271"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1273"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><clipPath
+ id="clipPath1275"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ id="path1277" /></clipPath><linearGradient
+ x1="20.15625"
+ y1="5.101562"
+ x2="20.15625"
+ y2="26.039062"
+ id="linearGradient1279"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)"
+ spreadMethod="pad"><stop
+ id="stop1281"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop1283"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><pattern
+ patternTransform="translate(0,-0.558495)"
+ patternUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="92"
+ height="92"
+ id="pattern1285"><defs
+ id="defs1287"><mask
+ maskUnits="userSpaceOnUse"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ id="_mask11"><g
+ id="g1290"><g
+ clip-path="url(#clipPath1265)"
+ id="g1292"><g
+ id="g1294"><path
+ d="M 0,0 92,0 92,92 0,92 0,0 z"
+ style="fill:url(#linearGradient1269);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path1296" /></g></g></g></mask></defs><g
+ id="g1298" /><g
+ id="g1300"><g
+ clip-path="url(#clipPath1261)"
+ id="g1302"><g
+ id="g1304"><g
+ id="g1306"><g
+ id="g1308" /><g
+ mask="url(#_mask11)"
+ id="g1310"><g
+ id="g1312" /><g
+ id="g1314"><g
+ clip-path="url(#clipPath1275)"
+ id="g1316"><g
+ id="g1318"><path
+ d="m 5.492,25.078 0,-11.031 c 10.074,0.828 13.844,6.195 22.035,6.754 l 0,4.297 -22.035,-0.02 z"
+ style="fill:url(#linearGradient1279);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path1320" /></g></g></g></g></g></g></g></g></pattern><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient6246"
+ xlink:href="#linearGradient6240"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ id="linearGradient6240"><stop
+ id="stop6242"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop6244"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient3063"
+ xlink:href="#linearGradient6240"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0181386,0,0,-0.99062596,-0.15727934,91.443685)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient6246-6"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ id="linearGradient6240-0"><stop
+ id="stop6242-8"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop6244-7"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient3063-5"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.60671483,0,0,-0.58167345,1.8899147,29.19821)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient4486"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.60671483,0,0,-0.58167345,52.918396,39.335412)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient4490"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.60671483,0,0,-0.58167345,62.233662,85.535023)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient4469"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.60671483,0,0,-0.58167345,62.233662,85.535023)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient4472"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.80816813,0,0,-0.77481202,52.78538,39.808205)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient4475"
+ xlink:href="#linearGradient6240-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.60671483,0,0,-0.58167345,1.8899147,29.19821)" /><linearGradient
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215"
+ id="linearGradient4478"
+ xlink:href="#linearGradient6240"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0181386,0,0,-0.99062596,-0.15727934,91.443685)" /><filter
+ color-interpolation-filters="sRGB"
+ id="filter3297"><feGaussianBlur
+ stdDeviation="0.26694977"
+ id="feGaussianBlur3299" /></filter><filter
+ color-interpolation-filters="sRGB"
+ id="filter3293"><feGaussianBlur
+ stdDeviation="0.355"
+ id="feGaussianBlur3295" /></filter><linearGradient
+ id="linearGradient44699"><stop
+ id="stop44701"
+ style="stop-color:#000173;stop-opacity:0.93333334"
+ offset="0" /><stop
+ id="stop44703"
+ style="stop-color:#3575f0;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44080"><stop
+ id="stop44082"
+ style="stop-color:#2c8300;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44084"
+ style="stop-color:#57aeff;stop-opacity:1"
+ offset="0.25" /><stop
+ id="stop44086"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop44088"
+ style="stop-color:#5aafff;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44090"><stop
+ id="stop44092"
+ style="stop-color:#0926bb;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44094"
+ style="stop-color:#6bb5fe;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient5790"><stop
+ id="stop5792"
+ style="stop-color:#0926bb;stop-opacity:1"
+ offset="0" /><stop
+ id="stop5794"
+ style="stop-color:#6bb5fe;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44615"><stop
+ id="stop44617"
+ style="stop-color:#2f68fa;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44619"
+ style="stop-color:#c7d5fb;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44693"><stop
+ id="stop44695"
+ style="stop-color:#3690e6;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44697"
+ style="stop-color:#d0e9ff;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44605"><stop
+ id="stop44607"
+ style="stop-color:#d0ecff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44609"
+ style="stop-color:#d7f0ff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop44611"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient5810"><stop
+ id="stop5812"
+ style="stop-color:#2f68fa;stop-opacity:1"
+ offset="0" /><stop
+ id="stop5814"
+ style="stop-color:#c7d5fb;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient2300-4"><stop
+ id="stop2302-6"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2304-2"
+ style="stop-color:#414141;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44627"><stop
+ id="stop44629"
+ style="stop-color:#fffcfb;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44633"
+ style="stop-color:#f4ad94;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient44681"><stop
+ id="stop44683"
+ style="stop-color:#ff5c38;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44685"
+ style="stop-color:#fb7e65;stop-opacity:0.99607843"
+ offset="0.30397323" /><stop
+ id="stop44687"
+ style="stop-color:#cd0000;stop-opacity:0.98039216"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient2288-5"><stop
+ id="stop2290-0"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2292-6"
+ style="stop-color:#898989;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient5834"><stop
+ id="stop5836"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop5838"
+ style="stop-color:#414141;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient2318-2"><stop
+ id="stop2320-8"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2326-4"
+ style="stop-color:#373737;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop2322-7"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient2392-2"><stop
+ id="stop2394-4"
+ style="stop-color:#000000;stop-opacity:0.43298969"
+ offset="0" /><stop
+ id="stop2398-0"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient2338-6"><stop
+ id="stop2340-2"
+ style="stop-color:#545454;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2344-9"
+ style="stop-color:#545454;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient2380-9"><stop
+ id="stop2382-0"
+ style="stop-color:#838383;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2384-8"
+ style="stop-color:#767676;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3836-1"><stop
+ id="stop3838-3"
+ style="stop-color:#c90000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3844-1"
+ style="stop-color:#ff7474;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3846-1"
+ style="stop-color:#c90000;stop-opacity:1"
+ offset="0.75" /><stop
+ id="stop3840-0"
+ style="stop-color:#fa5555;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3895-3"><stop
+ id="stop3897-4"
+ style="stop-color:#930000;stop-opacity:0.50515461"
+ offset="0" /><stop
+ id="stop3899-0"
+ style="stop-color:#930000;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3924-3"><stop
+ id="stop3926-9"
+ style="stop-color:#ff6e6e;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3928-1"
+ style="stop-color:#ff7171;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ id="linearGradient3854-9"><stop
+ id="stop3856-6"
+ style="stop-color:#a00000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3860-9"
+ style="stop-color:#c90000;stop-opacity:0"
+ offset="0.75" /><stop
+ id="stop3862-3"
+ style="stop-color:#a00000;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient5207"
+ xlink:href="#linearGradient3339-4"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ id="linearGradient3339-4"><stop
+ id="stop3341-7"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3347-6"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3343-3"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="1" /></linearGradient><filter
+ color-interpolation-filters="sRGB"
+ id="filter3385-1"><feGaussianBlur
+ id="feGaussianBlur3387-7"
+ stdDeviation="0.14607691" /></filter><filter
+ color-interpolation-filters="sRGB"
+ id="filter3297-9"><feGaussianBlur
+ stdDeviation="0.26694977"
+ id="feGaussianBlur3299-7" /></filter><filter
+ color-interpolation-filters="sRGB"
+ id="filter3293-2"><feGaussianBlur
+ stdDeviation="0.355"
+ id="feGaussianBlur3295-7" /></filter><linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient5673-0"
+ xlink:href="#linearGradient44699-4"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(38.627584,1.0111154)" /><linearGradient
+ id="linearGradient44699-4"><stop
+ id="stop44701-3"
+ style="stop-color:#000173;stop-opacity:0.93333334"
+ offset="0" /><stop
+ id="stop44703-4"
+ style="stop-color:#3575f0;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient5670-6"
+ xlink:href="#linearGradient44080-3"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1396.4291,-948.41724)" /><linearGradient
+ id="linearGradient44080-3"><stop
+ id="stop44082-5"
+ style="stop-color:#2c8300;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44084-5"
+ style="stop-color:#57aeff;stop-opacity:1"
+ offset="0.25" /><stop
+ id="stop44086-1"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop44088-4"
+ style="stop-color:#5aafff;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient5667-0"
+ xlink:href="#linearGradient44090-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-408.92103,-635.92247)" /><linearGradient
+ id="linearGradient44090-0"><stop
+ id="stop44092-7"
+ style="stop-color:#0926bb;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44094-9"
+ style="stop-color:#6bb5fe;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient5664-4"
+ xlink:href="#linearGradient44090-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,574.52515,-635.92247)" /><linearGradient
+ id="linearGradient6984"><stop
+ id="stop6986"
+ style="stop-color:#0926bb;stop-opacity:1"
+ offset="0" /><stop
+ id="stop6988"
+ style="stop-color:#6bb5fe;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="-246.57739"
+ y1="958.07971"
+ x2="-248.7769"
+ y2="964.61743"
+ id="linearGradient5661-5"
+ xlink:href="#linearGradient44615-6"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(321.10111,-881.68159)" /><linearGradient
+ id="linearGradient44615-6"><stop
+ id="stop44617-5"
+ style="stop-color:#2f68fa;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44619-1"
+ style="stop-color:#c7d5fb;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="-35.566662"
+ y1="76.562927"
+ x2="-35.566662"
+ y2="84.910484"
+ id="linearGradient5658-1"
+ xlink:href="#linearGradient44693-1"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.1784451,0,0,0.9316118,126.37167,5.1827454)" /><linearGradient
+ id="linearGradient44693-1"><stop
+ id="stop44695-8"
+ style="stop-color:#3690e6;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44697-1"
+ style="stop-color:#d0e9ff;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient5655-7"
+ xlink:href="#linearGradient44605-2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.856113,-0.0637264,0.1161478,1.5603521,-422.20596,-1003.4503)" /><linearGradient
+ id="linearGradient44605-2"><stop
+ id="stop44607-0"
+ style="stop-color:#d0ecff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44609-9"
+ style="stop-color:#d7f0ff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop44611-1"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="-246.57739"
+ y1="958.07971"
+ x2="-248.7769"
+ y2="964.61743"
+ id="linearGradient5652-7"
+ xlink:href="#linearGradient44615-6"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,-155.83313,-881.68159)" /><linearGradient
+ id="linearGradient7004"><stop
+ id="stop7006"
+ style="stop-color:#2f68fa;stop-opacity:1"
+ offset="0" /><stop
+ id="stop7008"
+ style="stop-color:#c7d5fb;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="170.29684"
+ y1="219.20184"
+ x2="75.611801"
+ y2="140.29272"
+ id="linearGradient5645-3"
+ xlink:href="#linearGradient2300-4-8"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.32740907,0.15721672,0.11848357,0.24674603,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient2300-4-8"><stop
+ id="stop2302-6-8"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2304-2-7"
+ style="stop-color:#414141;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="53.60223"
+ cy="59.728882"
+ r="17.834057"
+ fx="53.60223"
+ fy="59.728882"
+ id="radialGradient5640-1"
+ xlink:href="#linearGradient44627-2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.4772178,-2.4522929,0,220.99205,-95.843466)" /><linearGradient
+ id="linearGradient44627-2"><stop
+ id="stop44629-5"
+ style="stop-color:#fffcfb;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44633-6"
+ style="stop-color:#f4ad94;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="60.126968"
+ y1="81.913818"
+ x2="60.126968"
+ y2="47.542713"
+ id="linearGradient5642-0"
+ xlink:href="#linearGradient44681-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4960409,0,0,1.4960409,-6.6306562,-46.588225)" /><linearGradient
+ id="linearGradient44681-0"><stop
+ id="stop44683-0"
+ style="stop-color:#ff5c38;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44685-6"
+ style="stop-color:#fb7e65;stop-opacity:0.99607843"
+ offset="0.30397323" /><stop
+ id="stop44687-1"
+ style="stop-color:#cd0000;stop-opacity:0.98039216"
+ offset="1" /></linearGradient><linearGradient
+ x1="81.846077"
+ y1="136.15834"
+ x2="168.78268"
+ y2="53.432808"
+ id="linearGradient5637-0"
+ xlink:href="#linearGradient2288-5-4"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.19109066,0.09175867,0.20300624,0.42276738,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient2288-5-4"><stop
+ id="stop2290-0-2"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2292-6-5"
+ style="stop-color:#898989;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="366.57416"
+ y1="39.730881"
+ x2="168.78265"
+ y2="53.4328"
+ id="linearGradient5634-9"
+ xlink:href="#linearGradient2300-4-8"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.19109066,0.09175867,0.20300624,0.42276738,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient7028"><stop
+ id="stop7030"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop7032"
+ style="stop-color:#414141;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="263.96207"
+ y1="41.317993"
+ x2="24.068567"
+ y2="220.45784"
+ id="linearGradient5631-1"
+ xlink:href="#linearGradient2318-2-2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2973758,0.14279496,0.13044969,0.27166614,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient2318-2-2"><stop
+ id="stop2320-8-2"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2326-4-2"
+ style="stop-color:#373737;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop2322-7-5"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="136.33336"
+ y1="113.51798"
+ x2="173.3575"
+ y2="164.5226"
+ id="linearGradient5628-3"
+ xlink:href="#linearGradient2392-2-4"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2973758,0.14279496,0.13044969,0.27166614,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient2392-2-4"><stop
+ id="stop2394-4-5"
+ style="stop-color:#000000;stop-opacity:0.43298969"
+ offset="0" /><stop
+ id="stop2398-0-5"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" /></linearGradient><radialGradient
+ cx="180.07829"
+ cy="176.38765"
+ r="53.050598"
+ fx="180.07837"
+ fy="177.18346"
+ id="radialGradient5625-6"
+ xlink:href="#linearGradient2338-6-6"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3015622,0.14480526,0.12863859,0.26789468,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient2338-6-6"><stop
+ id="stop2340-2-6"
+ style="stop-color:#545454;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2344-9-3"
+ style="stop-color:#545454;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ x1="219.53198"
+ y1="120.31494"
+ x2="211.80861"
+ y2="127.47651"
+ id="linearGradient5622-2"
+ xlink:href="#linearGradient2380-9-7"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3015622,0.14480526,0.12863859,0.26789468,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient2380-9-7"><stop
+ id="stop2382-0-1"
+ style="stop-color:#838383;stop-opacity:1"
+ offset="0" /><stop
+ id="stop2384-8-9"
+ style="stop-color:#767676;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ x1="144.45633"
+ y1="98.692307"
+ x2="155.86334"
+ y2="161.02338"
+ id="linearGradient5618-0"
+ xlink:href="#linearGradient3836-1-6"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.17353113,0.0833269,0.22354827,0.46554701,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient3836-1-6"><stop
+ id="stop3838-3-7"
+ style="stop-color:#c90000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3844-1-7"
+ style="stop-color:#ff7474;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3846-1-8"
+ style="stop-color:#c90000;stop-opacity:1"
+ offset="0.75" /><stop
+ id="stop3840-0-7"
+ style="stop-color:#fa5555;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="190.18034"
+ y1="96.076317"
+ x2="156.40744"
+ y2="143.56932"
+ id="linearGradient5615-9"
+ xlink:href="#linearGradient3895-3-4"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.14979776,0.07193037,0.25896642,0.53930685,115.52106,-35.084377)" /><linearGradient
+ id="linearGradient3895-3-4"><stop
+ id="stop3897-4-0"
+ style="stop-color:#930000;stop-opacity:0.50515461"
+ offset="0" /><stop
+ id="stop3899-0-9"
+ style="stop-color:#930000;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ x1="190.18034"
+ y1="96.076317"
+ x2="156.40744"
+ y2="143.56932"
+ id="linearGradient5612-8"
+ xlink:href="#linearGradient3924-3-5"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.14979776,0.07193037,0.25896642,0.53930685,115.19546,-34.989862)" /><linearGradient
+ id="linearGradient3924-3-5"><stop
+ id="stop3926-9-6"
+ style="stop-color:#ff6e6e;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3928-1-9"
+ style="stop-color:#ff7171;stop-opacity:0"
+ offset="1" /></linearGradient><linearGradient
+ x1="137.93805"
+ y1="118.24712"
+ x2="183.56607"
+ y2="110.30299"
+ id="linearGradient5609-6"
+ xlink:href="#linearGradient3854-9-1"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.17353113,0.0833269,0.22354827,0.46554701,115.25407,-34.956172)" /><linearGradient
+ id="linearGradient3854-9-1"><stop
+ id="stop3856-6-2"
+ style="stop-color:#a00000;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3860-9-0"
+ style="stop-color:#c90000;stop-opacity:0"
+ offset="0.75" /><stop
+ id="stop3862-3-8"
+ style="stop-color:#a00000;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient5207-5"
+ xlink:href="#linearGradient3339-4-4"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ id="linearGradient3339-4-4"><stop
+ id="stop3341-7-3"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3347-6-0"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3343-3-2"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="1" /></linearGradient><filter
+ color-interpolation-filters="sRGB"
+ id="filter3385-1-2"><feGaussianBlur
+ id="feGaussianBlur3387-7-8"
+ stdDeviation="0.14607691" /></filter><filter
+ color-interpolation-filters="sRGB"
+ id="filter3297-4"><feGaussianBlur
+ stdDeviation="0.26694977"
+ id="feGaussianBlur3299-77" /></filter><filter
+ color-interpolation-filters="sRGB"
+ id="filter3293-5"><feGaussianBlur
+ stdDeviation="0.355"
+ id="feGaussianBlur3295-8" /></filter><linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient5698"
+ xlink:href="#linearGradient3197"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-200.71307,-35.857716)" /><linearGradient
+ id="linearGradient3197"><stop
+ id="stop3199"
+ style="stop-color:#002f32;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3201"
+ style="stop-color:#045b04;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient5695"
+ xlink:href="#linearGradient3205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient
+ id="linearGradient3205"><stop
+ id="stop3207"
+ style="stop-color:#2c8300;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3215"
+ style="stop-color:#3db800;stop-opacity:1"
+ offset="0.25" /><stop
+ id="stop3213"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3209"
+ style="stop-color:#69cf35;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient5692"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient
+ id="linearGradient3219"><stop
+ id="stop3221"
+ style="stop-color:#0e7309;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3223"
+ style="stop-color:#70d13e;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient5689"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><linearGradient
+ id="linearGradient7410"><stop
+ id="stop7412"
+ style="stop-color:#0e7309;stop-opacity:1"
+ offset="0" /><stop
+ id="stop7414"
+ style="stop-color:#70d13e;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient5683"
+ xlink:href="#linearGradient3261"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><linearGradient
+ id="linearGradient3261"><stop
+ id="stop3263"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="0" /><stop
+ id="stop3269"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="0.5" /><stop
+ id="stop3265"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" /></linearGradient><radialGradient
+ cx="53.60223"
+ cy="59.728882"
+ r="17.834057"
+ fx="53.60223"
+ fy="59.728882"
+ id="radialGradient5677"
+ xlink:href="#linearGradient3327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient
+ id="linearGradient3327"><stop
+ id="stop3329"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3335"
+ style="stop-color:#fdd99a;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3331"
+ style="stop-color:#c39539;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="41.945538"
+ y1="46.665127"
+ x2="41.945538"
+ y2="82.333244"
+ id="linearGradient5679"
+ xlink:href="#linearGradient3319"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient
+ id="linearGradient3319"><stop
+ id="stop3321"
+ style="stop-color:#7d491f;stop-opacity:1"
+ offset="0" /><stop
+ id="stop44679"
+ style="stop-color:#87570f;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3323"
+ style="stop-color:#926600;stop-opacity:1"
+ offset="1" /></linearGradient><linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient5710"
+ xlink:href="#linearGradient3339-4-5"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ id="linearGradient3339-4-5"><stop
+ id="stop3341-7-9"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="0" /><stop
+ id="stop3347-6-7"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.5" /><stop
+ id="stop3343-3-5"
+ style="stop-color:#e8e8e8;stop-opacity:1"
+ offset="1" /></linearGradient><filter
+ color-interpolation-filters="sRGB"
+ id="filter3385-1-3"><feGaussianBlur
+ id="feGaussianBlur3387-7-8-5"
+ stdDeviation="0.14607691" /></filter><linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient7597"
+ xlink:href="#linearGradient3197"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-200.71307,-35.857716)" /><radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient7599"
+ xlink:href="#linearGradient3205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient7601"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient7603"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient7605"
+ xlink:href="#linearGradient3261"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><radialGradient
+ cx="53.60223"
+ cy="59.728882"
+ r="17.834057"
+ fx="53.60223"
+ fy="59.728882"
+ id="radialGradient7607"
+ xlink:href="#linearGradient3327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient
+ x1="41.945538"
+ y1="46.665127"
+ x2="41.945538"
+ y2="82.333244"
+ id="linearGradient7609"
+ xlink:href="#linearGradient3319"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient7611"
+ xlink:href="#linearGradient3339-4-5"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient7647"
+ xlink:href="#linearGradient3197"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-200.71307,-35.857716)" /><radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient7649"
+ xlink:href="#linearGradient3205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient7651"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient7653"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient7655"
+ xlink:href="#linearGradient3261"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><radialGradient
+ cx="53.60223"
+ cy="59.728882"
+ r="17.834057"
+ fx="53.60223"
+ fy="59.728882"
+ id="radialGradient7657"
+ xlink:href="#linearGradient3327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient
+ x1="41.945538"
+ y1="46.665127"
+ x2="41.945538"
+ y2="82.333244"
+ id="linearGradient7659"
+ xlink:href="#linearGradient3319"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient7661"
+ xlink:href="#linearGradient3339-4-5"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ x1="83.28125"
+ y1="123.09795"
+ x2="83.28125"
+ y2="66.310989"
+ id="linearGradient7697"
+ xlink:href="#linearGradient3197"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-200.71307,-35.857716)" /><radialGradient
+ cx="491.52231"
+ cy="670.92523"
+ r="36.426601"
+ fx="491.52231"
+ fy="670.92523"
+ id="radialGradient7699"
+ xlink:href="#linearGradient3205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient7701"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient
+ x1="517.02167"
+ y1="705.48438"
+ x2="517.02167"
+ y2="745.30084"
+ id="linearGradient7703"
+ xlink:href="#linearGradient3219"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><radialGradient
+ cx="479.68311"
+ cy="709.6579"
+ r="5.0058851"
+ fx="479.68311"
+ fy="709.6579"
+ id="radialGradient7705"
+ xlink:href="#linearGradient3261"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><radialGradient
+ cx="53.60223"
+ cy="59.728882"
+ r="17.834057"
+ fx="53.60223"
+ fy="59.728882"
+ id="radialGradient7707"
+ xlink:href="#linearGradient3327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient
+ x1="41.945538"
+ y1="46.665127"
+ x2="41.945538"
+ y2="82.333244"
+ id="linearGradient7709"
+ xlink:href="#linearGradient3319"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient
+ x1="28.429483"
+ y1="61.798298"
+ x2="58.95916"
+ y2="61.798298"
+ id="linearGradient7711"
+ xlink:href="#linearGradient3339-4-5"
+ gradientUnits="userSpaceOnUse" /></defs><g
+ transform="matrix(1.25,0,0,-1.25,0,114.30188)"
+ id="g10"><g
+ id="g14"><g
+ id="g16" /><g
+ mask="url(#mask22)"
+ id="g30"><g
+ id="g32" /><g
+ id="g99"><g
+ clip-path="url(#clipPath34)"
+ id="g101"><g
+ id="g103"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path105"
+ style="fill:url(#pattern62);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ id="g107"><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g109"><path
+ d="m 14.551,35.969 c 0,0 1.234,4.996 -3.903,5.043 -2.46,0.023 -1.957,4.086 -1.957,4.086 l 31.227,-0.036 c 0,0 0.422,-3.941 -2.047,-3.988 -5.051,-0.094 -3.859,-5.168 -3.859,-5.168 l -19.461,0.063 z"
+ id="path117"
+ style="fill:url(#linearGradient111);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g
+ id="g119"><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g121"><path
+ d="m 4.949,3.52 38.598,0 c 2.047,0 3.543,1.445 3.543,3.671 l 0.012,26.528 c 0,1.711 -0.536,2.242 -2.063,2.242 L 3.574,35.941 C 2.383,35.91 1.531,35.441 1.516,33.895 L 1.531,7 c 0,-1.793 1.559,-3.48 3.418,-3.48 z"
+ id="path129"
+ style="fill:url(#linearGradient123);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g
+ id="g131"><path
+ d="m 5.574,83.848 37.453,0 0,-23.277 -37.453,0 0,23.277 z"
+ id="path139"
+ style="fill:url(#radialGradient133);fill-opacity:1;fill-rule:evenodd;stroke:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g141"><path
+ d="m 5.574,7.594 37.453,0 0,23.277 -37.453,0 0,-23.277 z"
+ id="path143"
+ style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g145"><path
+ d="m 4.934,4.398 c -1.325,0 -2.532,1.309 -2.532,2.594 l 0,26.918 c 0.008,0.613 0.149,0.801 0.286,0.918 0.132,0.113 0.425,0.203 0.886,0.223 l 0.031,0 41.442,0.031 c 0.66,0 0.867,-0.102 0.949,-0.191 0.082,-0.086 0.219,-0.407 0.219,-1.168 l 0,-26.543 c 0,-1.828 -1.024,-2.782 -2.656,-2.782 l -38.625,0 z"
+ id="path147"
+ style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ id="g149"><g
+ id="g151" /><g
+ mask="url(#mask157)"
+ id="g165"><g
+ id="g167" /><g
+ id="g234"><g
+ clip-path="url(#clipPath169)"
+ id="g236"><g
+ id="g238"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path240"
+ style="fill:url(#pattern197);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g242"><path
+ d="m 10.113,42.004 c 6.789,0.004 28.141,0 28.141,0"
+ id="path244"
+ style="fill:none;stroke:#8d8d8f;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.43902402;stroke-dasharray:none" /></g><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g246"><path
+ d="m 9.766,43.027 c 6.789,0 29.074,0 29.074,0"
+ id="path248"
+ style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
+ id="g250"><g
+ id="g252" /><g
+ mask="url(#mask258)"
+ id="g266"><g
+ id="g268" /><g
+ id="g335"><g
+ clip-path="url(#clipPath270)"
+ id="g337"><g
+ id="g339"><path
+ d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z"
+ id="path341"
+ style="fill:url(#pattern298);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g
+ id="g765"
+ transform="matrix(1.3320395,0,0,1.3320395,-17.704015,-12.588118)"><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g767"><path
+ d="m 61.609,73.57 c 0,0 0.743,3.024 -2.363,3.055 -1.488,0.012 -1.184,2.469 -1.184,2.469 l 18.899,-0.016 c 0,0 0.258,-2.387 -1.238,-2.418 -3.059,-0.055 -2.336,-3.129 -2.336,-3.129 L 61.609,73.57 z"
+ id="path775"
+ style="fill:url(#linearGradient769);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" /></g></g><g
+ id="g777"
+ transform="matrix(1.3320395,0,0,1.3320395,-17.704015,-12.588118)"><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g779"><path
+ d="m 55.797,53.93 23.359,0 c 1.242,0 2.145,0.875 2.145,2.222 l 0.008,16.055 c 0,1.039 -0.325,1.359 -1.247,1.359 L 54.965,73.555 c -0.723,-0.02 -1.238,-0.305 -1.246,-1.239 l 0.008,-16.277 c 0,-1.09 0.945,-2.109 2.07,-2.109 z"
+ id="path787"
+ style="fill:url(#linearGradient781);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" /></g></g><g
+ id="g789"
+ transform="matrix(1.3320395,0,0,1.3320395,-17.704015,-12.588118)"><path
+ d="m 56.172,35.047 22.672,0 0,-14.094 -22.672,0 0,14.094 z"
+ id="path797"
+ style="fill:url(#radialGradient791);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /></g><g
+ transform="matrix(1.3320395,0,0,-1.3320395,-17.704015,109.21558)"
+ id="g799"><path
+ d="m 56.172,56.395 22.672,0 0,14.094 -22.672,0 0,-14.094 z"
+ id="path801"
+ style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" /></g><g
+ transform="matrix(1.3320395,0,0,-1.3320395,-17.704015,109.21558)"
+ id="g803"><path
+ d="m 55.785,54.461 c -0.801,0 -1.531,0.793 -1.531,1.57 l 0,16.293 c 0.004,0.371 0.09,0.485 0.172,0.555 0.082,0.07 0.258,0.125 0.539,0.137 l 0.019,0 25.082,0.019 c 0.399,0 0.524,-0.062 0.575,-0.117 0.047,-0.051 0.132,-0.246 0.132,-0.707 l 0,-16.066 c 0,-1.106 -0.617,-1.684 -1.609,-1.684 l -23.379,0 z"
+ id="path805"
+ style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" /></g><g
+ transform="matrix(1.3320395,0,0,-1.3320395,-17.704015,109.21558)"
+ id="g900"><path
+ d="m 58.922,77.227 c 4.109,0 17.031,0 17.031,0"
+ id="path902"
+ style="fill:none;stroke:#8d8d8f;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.43902402;stroke-dasharray:none"
+ inkscape:connector-curvature="0" /></g><g
+ transform="matrix(1.3320395,0,0,-1.3320395,-17.704015,109.21558)"
+ id="g904"><path
+ d="m 58.711,77.844 c 4.109,0 17.598,0 17.598,0"
+ id="path906"
+ style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" /></g><g
+ id="g1239" /><g
+ id="g1255" /><g
+ transform="matrix(1,0,0,-1,0,91.441505)"
+ id="g1334"><path
+ d="m 56.102,52.199 -4.903,-17.898 -3.801,5.597 -6,1.602 14.704,10.699 z"
+ id="path1336"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><path
+ d="m 5.9755084,83.487599 0,-17.839038 C 22.718232,66.990115 28.98411,75.666186 42.596557,76.572642 l 0,6.946035 -36.6210486,-0.03108 z"
+ id="path4073"
+ style="opacity:0.65;fill:url(#linearGradient4478);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path
+ d="m 57.653403,33.585402 0,-13.952695 c 13.289878,1.049289 18.263545,7.835225 29.0687,8.544203 l 0,5.432799 -29.0687,-0.02431 z"
+ id="path4484"
+ style="opacity:0.65;fill:url(#linearGradient4472);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><g
+ transform="matrix(0.2730524,0,0,-0.2730524,1.850926,90.906749)"
+ id="g5712"><path
+ d="m 83.554544,24.461435 c -14.71669,0 -26.69498,11.97829 -26.69498,26.69498 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.694966,-11.97829 26.694966,-26.69498 0,-14.71669 -11.978286,-26.69498 -26.694966,-26.69498 z"
+ id="path44010"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297-9)"
+ inkscape:connector-curvature="0" /><path
+ d="m 83.471334,61.729865 c -21.63445,0 -39.1875,17.34747 -39.1875,38.750005 l 0,6.125 c 0,6.05287 6.27536,18.75004 28.90625,18.75004 l 20.53125,0 c 22.630376,0 28.937496,-12.07968 28.937496,-18.75004 l 0,-6.125 c 0,-21.402545 -17.55305,-38.750005 -39.187496,-38.750005 z"
+ id="path44012"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293-2)"
+ inkscape:connector-curvature="0" /><path
+ d="m 82.721334,60.479865 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125005 c 0,6.05287 6.27536,18.75004 28.90625,18.75004 l 20.53125,0 c 22.630376,0 28.937496,-12.07968 28.937496,-18.75004 l 0,-6.125005 c 0,-21.40254 -17.55305,-38.75 -39.187496,-38.75 z"
+ id="path44014"
+ style="fill:url(#linearGradient5673-0);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 82.721334,62.640575 c -20.11022,0 -36.4266,15.9074 -36.4266,35.53322 l 0,5.616555 c 0,5.55039 5.83324,17.19346 26.8697,17.19346 l 19.08475,0 c 21.035986,0 26.898746,-11.07683 26.898746,-17.19346 l 0,-5.616555 c 0,-19.62582 -16.31638,-35.53322 -36.426596,-35.53322 z"
+ id="path44016"
+ style="fill:url(#radialGradient5670-6);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 100.20776,69.951755 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.652675"
+ id="path44018"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient5667-0);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 65.396354,69.951755 c -8.46364,9.0621 -14.91528,24.09751 -16.80551,38.652675"
+ id="path44020"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient5664-4);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 76.029544,74.153135 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z"
+ id="path44022"
+ style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5661-5);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" /><path
+ d="m 82.802063,84.286357 -6.375115,-8.729195 12.750228,0 -6.375113,8.729195 z"
+ id="path44024"
+ style="fill:url(#linearGradient5658-1);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 66.167774,68.733775 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z"
+ id="path44028"
+ style="fill:url(#radialGradient5655-7);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 89.238444,74.153135 c 2.3027,1.97418 4.96223,3.5307 3.72122,8.28271 5.66073,-1.14662 9.949706,-8.89011 6.36208,-14.40472 l -10.0833,6.12201 z"
+ id="path44621"
+ style="fill:#9dcfff;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5652-7);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" /><path
+ d="M 94.866576,3.8320402 125.6365,30.998333 84.545268,42.990242 53.315632,16.353847 94.866576,3.8320402 z"
+ id="path2368"
+ style="fill:url(#linearGradient5645-3);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 108.48254,49.905192 a 25.680481,25.680481 0 1 1 -51.360957,0 25.680481,25.680481 0 1 1 51.360957,0 z"
+ id="path44030"
+ style="fill:url(#radialGradient5640-1);fill-opacity:1;stroke:url(#linearGradient5642-0);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" /><path
+ d="M 95.339339,2.2381767 126.15042,28.890606 125.62204,31.068045 94.816591,4.063144 95.339339,2.2381767 z"
+ id="path1526"
+ style="fill:url(#linearGradient5637-0);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="M 95.339339,2.2381767 53.897375,14.26818 53.368996,16.44562 94.816591,4.063144 95.339339,2.2381767 z"
+ id="path2296"
+ style="fill:url(#linearGradient5634-9);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z"
+ id="path2308"
+ style="fill:url(#linearGradient5631-1);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z"
+ id="path2390"
+ style="fill:url(#linearGradient5628-3);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z"
+ id="path2334"
+ style="fill:url(#radialGradient5625-6);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 107.19478,29.038759 c 0,0 -0.0232,-2.96189 -2.87177,-5.616365 -2.84859,-2.654477 -14.259844,-12.214967 -33.764071,-5.122837 -1.779252,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660762 -4.034895,9.807253 -4.034895,9.807253 0,0 14.650436,1.009743 20.024613,13.294259 12.141744,-9.677712 23.688825,-4.204767 23.688825,-4.204767 l -0.74633,-10.659294 z"
+ id="path2378"
+ style="fill:url(#linearGradient5622-2);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 64.162631,30.18291 c 0.149332,0.01059 14.629755,1.063358 19.976289,13.284672 11.922076,-9.502622 23.13746,-4.443379 23.5442,-4.255555 l 0.0324,0.45444 c 0,0 -11.547076,-5.472945 -23.688824,4.204771 C 78.652529,31.586719 64.002093,30.576979 64.002093,30.576979 c 0,0 0.15161,-0.371808 0.160545,-0.394069 z"
+ id="path2346"
+ style="fill:#4a4a4a;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 113.60446,18.082424 -1.90168,-1.445041 c 3.80497,-1.738734 7.43718,0.715259 6.56708,4.719089 l -1.22689,5.969541 c 0.0432,0.587925 0.46457,1.781249 0.0473,2.502842 -0.10735,1.184875 -1.3604,1.258502 -1.25176,2.164778 0.0432,0.587928 1.47788,1.196989 1.72301,2.387496 1.28414,1.824459 3.37872,5.88301 5.33931,7.295208 1.50561,0.927498 1.91686,1.943279 3.66098,1.18229 0,0 0.6432,-0.265733 0.69931,0.363737 -4.78339,3.695975 -10.00982,-9.009253 -9.00872,-5.467637 6.68202,14.27976 8.21084,11.272157 8.55487,11.806497 0.34402,0.534341 -0.051,0.986356 -0.051,0.986356 l -0.52871,-0.0085 0.31272,0.287043 -0.61385,0.906853 -1.43837,-0.446058 1.1172,0.687721 -0.50866,0.94379 -0.9153,-0.08514 0.59413,0.3268 -0.11363,0.491771 -0.88399,0.162157 0.27578,0.392223 -0.39504,0.452019 -0.6965,-0.539975 0.48614,0.466097 -0.75596,0.975096 -1.02048,-0.122078 0.23885,0.497407 -1.04019,1.111575 -1.12285,-0.335247 c 0,0 -6.11605,-12.190603 -6.8614,-16.29223 -0.74535,-4.101625 0.96815,-7.63512 0.96815,-7.63512 0,0 1.05742,0.01691 0.30676,-1.546372 -1.12002,-0.511482 -0.42667,-1.981163 -0.26766,-3.106818 0.15902,-1.125658 1.60584,-1.208306 1.60584,-1.208306 -0.003,0.176234 0.87053,-5.232949 1.07604,-6.640612 0.20551,-1.407664 -1.17557,-3.094485 -2.97083,-2.199306 z"
+ id="path2312"
+ style="fill:url(#linearGradient5618-0);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 115.91213,31.697338 c -0.0283,0.09625 -0.0898,0.176977 -0.0753,0.298474 0.004,0.05087 0.0627,0.104062 0.0857,0.155615 -0.22808,0.653732 -0.85238,4.783698 1.5573,9.275224 2.58485,5.743692 6.17379,11.446673 6.67497,12.239195 l -0.1105,0.02029 0.0473,0.07568 -0.0838,0.0075 c -1.74796,-2.671528 -5.72681,-9.566492 -7.26492,-13.103586 -1.77943,-4.092008 -1.17869,-7.872147 -1.17869,-7.872147 0,0 0.0503,-0.585045 0.0905,-0.972506 l 0.25759,-0.123687 z m -0.53294,0.255905 c -0.0271,0.148082 -0.031,0.106964 -0.0618,0.281061 -0.77301,5.472219 0.0637,7.784838 0.11098,7.947636 1.94994,4.370678 4.95692,10.04966 7.46633,15.116404 l -0.0945,0.121887 -0.0483,-0.0096 c -0.5523,-1.068673 -6.26702,-12.131795 -7.3696,-14.550761 -1.1561,-2.536393 -0.37181,-8.172154 -0.37181,-8.172154 0,0 0.0816,-0.42384 0.12,-0.615067 l 0.2487,-0.119421 z m -0.39081,0.187665 c -0.0306,0.130484 -0.0222,0.09744 -0.0568,0.245885 -0.98219,4.521543 -1.12277,6.100908 -0.27012,8.906683 l 6.93973,14.975782 -0.16129,0.164884 c -0.37775,-0.7712 -5.57624,-11.39103 -6.96106,-15.020189 -1.43567,-3.762422 0.19657,-8.991591 0.19657,-8.991591 l 0.0199,-0.140706 0.29311,-0.140748 z m 0.99844,0.121722 c 0.0529,0.08014 0.0814,0.164318 0.16349,0.249406 -0.0109,0.10155 -0.41901,4.037563 1.62811,7.601687 3.30572,6.554234 5.62206,9.753525 6.88943,11.229006 l -0.17979,-0.05576 0.29245,0.17655 c 0.31865,0.362827 0.53553,0.579229 0.70221,0.733969 l -0.10906,0.205391 c -3.0155,-2.788048 -7.67376,-11.678343 -8.65681,-13.976383 -0.93689,-2.190161 -0.78502,-5.120942 -0.73003,-6.163868 z m 0.17663,0.254022 c 0.0928,0.0955 0.20817,0.19957 0.32125,0.30481 -0.0584,0.327528 -0.008,2.619958 0.65763,4.351427 3.59805,8.221928 7.67344,12.549433 9.17238,13.980214 l -0.0949,0.143916 c -5.65706,-5.243362 -8.61552,-12.638435 -9.23491,-13.928329 -0.62085,-1.292946 -0.81735,-4.779678 -0.8215,-4.852038 z m 0.42111,0.398955 c 0.0105,0.0099 0.0153,0.02121 0.026,0.03126 0.54782,2.496948 1.35363,3.685882 1.84436,4.273434 0.003,0.0777 0.0112,0.16213 0.0562,0.344646 -0.22166,-0.32497 -0.32388,-0.389714 -0.33083,-0.256486 -1.15972,-2.095324 -1.45557,-3.836954 -1.59566,-4.392858 z"
+ id="path3870"
+ style="fill:url(#linearGradient5615-9);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 115.85352,31.663647 c -0.0283,0.09625 -0.0898,0.176979 -0.0753,0.298476 0.0136,0.184351 0.17979,0.373322 0.38738,0.579103 0.0136,0.06266 0.023,0.09735 0.037,0.168058 0.54619,2.757078 1.41267,3.989248 1.9272,4.605283 0.003,0.09157 -0.0166,0.121374 0.064,0.406472 0.19472,0.41613 0.33888,0.683193 0.52495,1.070479 -0.13062,-0.153536 -0.32065,-0.428383 -0.67134,-1.011121 -1.52995,-2.542366 -1.77339,-5.051088 -1.89601,-5.177698 -0.0955,-0.263292 -0.0761,2.732998 0.66584,4.664456 3.66253,8.369271 7.8511,12.742461 9.28077,14.092121 l -0.0949,0.143913 c -5.73254,-5.249092 -8.71969,-12.741574 -9.34329,-14.040234 -0.62731,-1.30638 -0.82968,-4.891829 -0.82968,-4.891832 0,0 -0.45066,4.026286 1.62315,7.636865 4.45297,8.828902 7.13324,11.594718 7.83436,12.218056 l -0.11332,0.196508 C 122.164,49.96029 117.3874,40.848354 116.39171,38.520764 c -1.00935,-2.35954 -0.76537,-5.787484 -0.7283,-6.547252 -0.12263,-0.126609 -1.15961,4.606322 1.49125,9.547401 2.58485,5.743694 6.1738,11.446675 6.67498,12.239197 l -0.1105,0.02029 0.27578,0.392223 -0.0764,0.09133 c -1.6443,-2.454711 -5.91251,-9.85128 -7.50091,-13.503989 -1.77942,-4.092007 -1.17868,-7.872149 -1.17869,-7.872149 0,0 0.0503,-0.585043 0.0905,-0.972507 l 0.52406,-0.251641 z m -0.7994,0.383859 c -0.0271,0.148081 -0.031,0.106966 -0.0618,0.281063 -0.77301,5.472217 0.0637,7.784832 0.11099,7.947633 1.96639,4.407561 5.0083,10.150784 7.5303,15.249641 l -0.20679,-0.02093 c -0.5523,-1.068673 -6.26703,-12.131795 -7.3696,-14.550762 -1.15611,-2.53639 -0.37182,-8.172152 -0.37182,-8.172152 0,0 0.0816,-0.423842 0.12001,-0.615066 l 0.2487,-0.119424 z m -0.39082,0.187664 c -0.0306,0.130488 -0.0222,0.09744 -0.0568,0.245888 -0.98219,4.521544 -1.12277,6.100905 -0.27013,8.906678 l 6.98665,15.073486 -0.15702,0.17377 c -0.29822,-0.608735 -5.61583,-11.467249 -7.01224,-15.126773 -1.43567,-3.762428 0.19656,-8.991591 0.19656,-8.991591 l 0.0199,-0.14071 0.29312,-0.140748 z"
+ id="path3920"
+ style="fill:url(#linearGradient5612-8);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 113.60446,18.082424 -1.27483,-0.959065 c 3.80497,-1.738734 5.70753,0.846273 5.94023,4.233113 l -1.22689,5.969541 c 0.0432,0.587925 0.46457,1.781249 0.0473,2.502842 -0.10735,1.184875 -1.3604,1.258502 -1.25176,2.164778 0.0432,0.587928 1.47788,1.196989 1.72301,2.387496 1.28414,1.824459 3.37872,5.88301 5.33931,7.295208 1.50561,0.927498 1.91686,1.943279 3.66098,1.18229 0,0 0.6432,-0.265733 0.69931,0.363737 -4.78339,3.695975 -10.00982,-9.009253 -9.00872,-5.467637 6.68202,14.27976 8.21084,11.272157 8.55487,11.806497 0.34402,0.534341 -0.051,0.986356 -0.051,0.986356 l -0.52871,-0.0085 0.31272,0.287043 -0.61385,0.906853 -1.43837,-0.446058 1.1172,0.687721 -0.50866,0.94379 -0.9153,-0.08514 0.59413,0.3268 -0.11363,0.491771 -0.88399,0.162157 0.27578,0.392223 -0.39504,0.452019 -0.6965,-0.539975 0.48614,0.466097 -0.75596,0.975096 -1.02048,-0.122078 0.23885,0.497407 -1.04019,1.111575 -1.12285,-0.335247 c 0,0 -6.11605,-12.190603 -6.8614,-16.29223 -0.74535,-4.101625 0.96815,-7.63512 0.96815,-7.63512 0,0 1.05742,0.01691 0.30676,-1.546372 -1.12002,-0.511482 0.0153,-2.06224 0.17434,-3.187895 0.15901,-1.125658 1.16384,-1.127229 1.16384,-1.127229 0.77459,0.06526 1.26996,-4.856376 1.47547,-6.264039 0.20551,-1.407664 -1.575,-3.471058 -3.37026,-2.575879 z"
+ id="use3848"
+ style="fill:url(#linearGradient5609-6);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 114.28311,29.943753 c 0.49479,-0.31028 1.3331,-0.405599 2.65708,0.298067 -0.28917,0.677244 -0.92757,0.954658 -1.04227,1.516989 -0.52987,0.05596 -1.07253,0.09282 -1.54418,0.107535 -0.0359,-0.185534 -0.0611,-0.35482 -0.19267,-0.628878 -0.26879,-0.122748 -0.42825,-0.300007 -0.52061,-0.515126 0.0395,-0.111579 0.19072,-0.495192 0.64265,-0.778587 z"
+ id="path3946"
+ style="fill:#7f0000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 114.69752,30.761267 c 0.54914,-0.263686 1.20881,-0.03202 1.4725,0.517115 0.20064,0.41784 0.11214,0.890735 -0.18245,1.213425 -0.3225,-0.311108 -0.80766,-0.41008 -1.2351,-0.204831 -0.1342,0.06444 -0.24525,0.145845 -0.33893,0.250191 -0.0889,-0.08724 -0.17614,-0.184704 -0.23313,-0.303405 -0.26369,-0.549131 -0.032,-1.208808 0.51711,-1.472495 z"
+ id="path3937"
+ style="fill:#f6ca12;fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" /><path
+ d="m 115.34938,30.99509 c 2.45474,1.059132 -2.30147,0.635082 0,0 z"
+ id="path3942"
+ style="fill:#f6f1d7;fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" /><g
+ transform="matrix(0.92615143,0,0,0.79615016,38.327829,16.316524)"
+ id="g3842"><path
+ d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z"
+ id="path3337"
+ style="fill:url(#linearGradient5207-5);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" /><path
+ d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z"
+ transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)"
+ id="path3360"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1-2)"
+ inkscape:connector-curvature="0" /><path
+ d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z"
+ id="path3375"
+ style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" /></g></g><g
+ id="g7615"
+ transform="matrix(0.22939444,0,0,-0.22939444,108.39401,32.948366)"><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297-4)"
+ id="path7617"
+ d="m -155.78611,-12.407395 c -14.71669,0 -26.69498,11.97828915 -26.69498,26.694979 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.69497,-11.97829 26.69497,-26.69498 0,-14.71668985 -11.97829,-26.694979 -26.69497,-26.694979 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293-5)"
+ id="path7619"
+ d="m -155.32695,24.861034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient7647);fill-opacity:1;stroke:none"
+ id="path7621"
+ d="m -156.61932,23.611034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient7649);fill-opacity:1;stroke:none"
+ id="path7623"
+ d="m -156.61932,25.771744 c -20.11022,0 -36.4266,15.9074 -36.4266,35.53322 l 0,5.61655 c 0,5.55039 5.83324,17.193505 26.8697,17.193505 l 19.08475,0 c 21.03599,0 26.89875,-11.076875 26.89875,-17.193505 l 0,-5.61655 c 0,-19.62582 -16.31638,-35.53322 -36.4266,-35.53322 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7651);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7625"
+ d="m -139.13289,33.082924 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.65267" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7653);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7627"
+ d="m -173.9443,33.082924 c -8.46364,9.0621 -14.91528,24.09751 -16.80551,38.65267" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:#52aa5d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path7629"
+ d="m -163.31111,37.284304 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#ff2600;fill-opacity:1;stroke:#800000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path7631"
+ d="m -156.53859,49.903956 -6.32332,-10.952307 12.64663,-1e-6 -6.32331,10.952308 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#a0ff74;fill-opacity:1;fill-rule:evenodd;stroke:#5eaa5e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path7633"
+ d="m -150.1765,37.284304 c 2.78286,1.49402 6.04258,3.41066 4.80157,8.16267 4.9405,-2.10693 8.86936,-8.77007 5.28173,-14.28468 l -10.0833,6.12201 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient7655);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path7635"
+ d="m -173.17288,31.864944 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient7657);fill-opacity:1;stroke:url(#linearGradient7659);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path7637"
+ d="m -130.85811,13.036361 a 25.68048,25.68048 0 1 1 -51.36096,0 25.68048,25.68048 0 1 1 51.36096,0 z" /><g
+ id="g7639"
+ transform="matrix(1,0,0,0.87225898,-199.74982,-24.193125)"><path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient7661);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path7641"
+ d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1-3)"
+ id="path7643"
+ transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)"
+ d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z" /><path
+ inkscape:connector-curvature="0"
+ style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path7645"
+ d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z" /></g></g></g></svg> \ No newline at end of file
diff --git a/icons/view-restore.svg b/icons/view-restore.svg
new file mode 100644
index 0000000..000c826
--- /dev/null
+++ b/icons/view-restore.svg
@@ -0,0 +1,422 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ version="1.0"
+ x="0.0000000"
+ y="0.0000000"
+ width="48.000000"
+ height="48.000000"
+ id="svg11300"
+ sodipodi:version="0.32"
+ inkscape:version="0.45"
+ sodipodi:docname="view-restore.svg"
+ sodipodi:docbase="/home/dobey/Projects/gnome-icon-theme/scalable/actions"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <metadata
+ id="metadata66">
+ <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>Restore View</dc:title>
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+ <dc:source>http://jimmac.musichall.cz</dc:source>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Jakub Steiner</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>window</rdf:li>
+ <rdf:li>fullscreen</rdf:li>
+ <rdf:li>view. restore</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/GPL/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:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/SourceCode" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <sodipodi:namedview
+ inkscape:window-height="889"
+ inkscape:window-width="924"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="0.31764706"
+ bordercolor="#666"
+ pagecolor="#ffffff"
+ id="base"
+ inkscape:zoom="8"
+ inkscape:cx="21.684252"
+ inkscape:cy="19.196453"
+ inkscape:window-x="2237"
+ inkscape:window-y="144"
+ inkscape:current-layer="svg11300"
+ showgrid="true"
+ inkscape:showpageshadow="false" />
+ <defs
+ id="defs3">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2905">
+ <stop
+ style="stop-color:#729fcf;stop-opacity:1;"
+ offset="0"
+ id="stop2907" />
+ <stop
+ style="stop-color:#729fcf;stop-opacity:0;"
+ offset="1"
+ id="stop2909" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2897">
+ <stop
+ style="stop-color:#204a87;stop-opacity:1;"
+ offset="0"
+ id="stop2899" />
+ <stop
+ style="stop-color:#204a87;stop-opacity:0;"
+ offset="1"
+ id="stop2901" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2889">
+ <stop
+ style="stop-color:white;stop-opacity:1;"
+ offset="0"
+ id="stop2891" />
+ <stop
+ style="stop-color:white;stop-opacity:0;"
+ offset="1"
+ id="stop2893" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient5031"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5060">
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0"
+ id="stop5062" />
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop5064" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient5029"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <linearGradient
+ id="linearGradient5048">
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="0"
+ id="stop5050" />
+ <stop
+ id="stop5056"
+ offset="0.5"
+ style="stop-color:black;stop-opacity:1;" />
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop5052" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5048"
+ id="linearGradient5027"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+ x1="302.85715"
+ y1="366.64789"
+ x2="302.85715"
+ y2="609.50507" />
+ <linearGradient
+ id="linearGradient4816">
+ <stop
+ style="stop-color:#204a87;stop-opacity:1.0000000"
+ offset="0.0000000"
+ id="stop4818" />
+ <stop
+ style="stop-color:#204a87;stop-opacity:0.0000000"
+ offset="1.0000000"
+ id="stop4820" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3832">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1.0000000"
+ offset="0.0000000"
+ id="stop3834" />
+ <stop
+ style="stop-color:#e0e0e0;stop-opacity:1.0000000"
+ offset="1.0000000"
+ id="stop3836" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4816"
+ id="linearGradient2264"
+ gradientUnits="userSpaceOnUse"
+ x1="13.050564"
+ y1="11.353518"
+ x2="13.050564"
+ y2="5.6173568"
+ gradientTransform="matrix(1.116479,0,0,1.28466,-1.813167,16.33649)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3832"
+ id="linearGradient2267"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.181102,0,0,1.133215,-2.996059,16.44342)"
+ x1="17.880680"
+ y1="11.072588"
+ x2="17.880680"
+ y2="21.767578" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5048"
+ id="linearGradient1983"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+ x1="302.85715"
+ y1="366.64789"
+ x2="302.85715"
+ y2="609.50507" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient1985"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient1987"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3832"
+ id="linearGradient1989"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.181102,0,0,1.133215,7.003941,8.44342)"
+ x1="17.880680"
+ y1="11.072588"
+ x2="17.880680"
+ y2="21.767578" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4816"
+ id="linearGradient1991"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.116479,0,0,1.28466,8.186833,8.33649)"
+ x1="13.050564"
+ y1="11.353518"
+ x2="13.050564"
+ y2="5.6173568" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2889"
+ id="linearGradient2895"
+ x1="24.75"
+ y1="13.984375"
+ x2="41.96875"
+ y2="13.984375"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2897"
+ id="linearGradient2903"
+ x1="35.100983"
+ y1="12.375624"
+ x2="43.349266"
+ y2="4.4381237"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2905"
+ id="linearGradient2911"
+ x1="35.100983"
+ y1="12.375624"
+ x2="43.349266"
+ y2="4.4381237"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <g
+ id="g1993"
+ style="opacity:0.6">
+ <g
+ style="opacity:0.58730164;display:inline"
+ id="g1969"
+ transform="matrix(1.32174e-2,0,0,1.145603e-2,35.17455,34.53806)">
+ <rect
+ y="-150.69685"
+ x="-1559.2523"
+ height="478.35718"
+ width="1339.6335"
+ id="rect1971"
+ style="opacity:0.40206185;color:black;fill:url(#linearGradient1983);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path1973"
+ d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
+ style="opacity:0.40206185;color:black;fill:url(#radialGradient1985);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ <path
+ style="opacity:0.40206185;color:black;fill:url(#radialGradient1987);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
+ id="path1975"
+ sodipodi:nodetypes="cccc" />
+ </g>
+ <rect
+ width="18.999998"
+ height="18.000006"
+ rx="0.46699828"
+ ry="0.48554277"
+ x="13.500001"
+ y="17.5"
+ style="color:black;fill:url(#linearGradient1989);fill-opacity:1;fill-rule:evenodd;stroke:#8d8d8d;stroke-width:1.00000119;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="rect1977" />
+ <rect
+ width="16"
+ height="3.2133625"
+ rx="0.084674627"
+ ry="0.10203383"
+ x="15"
+ y="19"
+ style="color:black;fill:url(#linearGradient1991);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="rect1979" />
+ <rect
+ width="16.999989"
+ height="15.99999"
+ rx="0.15984313"
+ ry="0.14619765"
+ x="14.500002"
+ y="18.499994"
+ style="color:black;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:white;stroke-width:1.00000167;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.47878789;visibility:visible;display:inline;overflow:visible"
+ id="rect1981" />
+ </g>
+ <g
+ style="opacity:0.58730164;display:inline"
+ id="g5022"
+ transform="matrix(1.32174e-2,0,0,1.145603e-2,25.17455,42.53806)">
+ <rect
+ y="-150.69685"
+ x="-1559.2523"
+ height="478.35718"
+ width="1339.6335"
+ id="rect4173"
+ style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path5058"
+ d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
+ style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ <path
+ style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
+ id="path5018"
+ sodipodi:nodetypes="cccc" />
+ </g>
+ <rect
+ width="18.999998"
+ height="18.000006"
+ rx="0.46699828"
+ ry="0.48554277"
+ x="3.5000007"
+ y="25.5"
+ style="color:black;fill:url(#linearGradient2267);fill-opacity:1;fill-rule:evenodd;stroke:#8d8d8d;stroke-width:1.00000119;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="rect3818" />
+ <rect
+ width="16"
+ height="3.2133625"
+ rx="0.084674627"
+ ry="0.10203383"
+ x="5"
+ y="27"
+ style="color:black;fill:url(#linearGradient2264);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="rect3820" />
+ <rect
+ width="16.999989"
+ height="15.99999"
+ rx="0.15984313"
+ ry="0.14619765"
+ x="4.5000014"
+ y="26.499994"
+ style="color:black;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:white;stroke-width:1.00000167;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.47878789;visibility:visible;display:inline;overflow:visible"
+ id="rect4962" />
+ <path
+ id="path2890"
+ d="M 35.983085,20.557267 L 32.986379,17.741128 L 47.536767,1.0012484 L 29.463656,14.208861 L 26.28779,11.024392 L 24.100981,22.5 L 35.983085,20.557267 z "
+ style="opacity:1;color:black;fill:url(#linearGradient2911);fill-opacity:1.0;fill-rule:evenodd;stroke:url(#linearGradient2903);stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="-0.92676479"
+ inkscape:original="M 47.53125 1 L 29.46875 14.21875 L 26.28125 11.03125 L 24.09375 22.5 L 35.96875 20.5625 L 33 17.75 L 47.53125 1 z "
+ xlink:href="#path2890"
+ style="opacity:0.40703518;color:black;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2895);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="path2887"
+ inkscape:href="#path2890"
+ d="M 41.46875,6.59375 L 30.03125,14.96875 C 29.659036,15.247768 29.137662,15.207663 28.8125,14.875 L 26.875,12.9375 L 25.25,21.375 L 33.96875,19.96875 L 32.375,18.4375 C 32.014256,18.09614 31.986693,17.5311 32.3125,17.15625 L 41.46875,6.59375 z " />
+</svg>
diff --git a/pvsclient.qrc b/pvsclient.qrc
new file mode 100644
index 0000000..2979d52
--- /dev/null
+++ b/pvsclient.qrc
@@ -0,0 +1,43 @@
+<RCC>
+ <qresource prefix="/">
+ <file alias="darrow16.svg">icons/darrow16.svg</file>
+ <file alias="ok16.svg">icons/ok16.svg</file>
+
+ <file alias="cam32.svg">icons/cam32.svg</file>
+ <file alias="cam_on32.svg">icons/cam_on32.svg</file>
+ <file alias="cam_off32.svg">icons/cam_off32.svg</file>
+ <file alias="chat_msg16.svg">icons/chat_msg16.svg</file>
+ <file alias="AUTHORS">AUTHORS</file>
+ <file alias="TRANSLATION">TRANSLATION</file>
+ </qresource>
+ <qresource prefix="/" lang="de_DE">
+ <file alias="pvsclient.qm">build/pvsclient_de_DE.qm</file>
+ </qresource>
+ <qresource prefix="/" lang="de">
+ <file alias="pvsclient.qm">build/pvsclient_de_DE.qm</file>
+ </qresource>
+ <qresource prefix="/" lang="fr_FR">
+ <file alias="pvsclient.qm">build/pvsclient_fr_FR.qm</file>
+ </qresource>
+ <qresource prefix="/" lang="fr">
+ <file alias="pvsclient.qm">build/pvsclient_fr_FR.qm</file>
+ </qresource>
+ <qresource prefix="/" lang="es_MX">
+ <file alias="pvsclient.qm">build/pvsclient_es_MX.qm</file>
+ </qresource>
+ <qresource prefix="/" lang="es">
+ <file alias="pvsclient.qm">build/pvsclient_es_MX.qm</file>
+ </qresource>
+ <qresource prefix="/" lang="ar_JO">
+ <file alias="pvsclient.qm">build/pvsclient_ar_JO.qm</file>
+ </qresource>
+ <qresource prefix="/" lang="ar">
+ <file alias="pvsclient.qm">build/pvsclient_ar_JO.qm</file>
+ </qresource>
+ <qresource prefix="/" lang="pl_PL">
+ <file alias="pvsclient.qm">build/pvsclient_pl_PL.qm</file>
+ </qresource>
+ <qresource prefix="/" lang="pl">
+ <file alias="pvsclient.qm">build/pvsclient_pl_PL.qm</file>
+ </qresource>
+</RCC>
diff --git a/pvsmgr.qrc b/pvsmgr.qrc
new file mode 100644
index 0000000..24b95c3
--- /dev/null
+++ b/pvsmgr.qrc
@@ -0,0 +1,47 @@
+<RCC>
+ <qresource prefix="/">
+ <file alias="exit">icons/exit.svg</file>
+ <file alias="terminal">icons/terminal.svg</file>
+ <file alias="photo">icons/photo.svg</file>
+ <file alias="lock">icons/lock.svg</file>
+ <file alias="dozent">icons/dozent.svg</file>
+ <file alias="eye">icons/eye.svg</file>
+ <file alias="cam32">icons/cam32.svg</file>
+ <file alias="student2all">icons/student2all.svg</file>
+ <file alias="tutor2all">icons/tutor2all.svg</file>
+ <file alias="student2tutor">icons/student2tutor.svg</file>
+ <file alias="tutor2student">icons/tutor2student.svg</file>
+ <file alias="AUTHORS">AUTHORS</file>
+ <file alias="TRANSLATION">TRANSLATION</file>
+ </qresource>
+ <qresource prefix="/" lang="de_DE">
+ <file alias="pvsmgr.qm">build/pvsmgr_de_DE.qm</file>
+ </qresource>
+ <qresource prefix="/" lang="de">
+ <file alias="pvsmgr.qm">build/pvsmgr_de_DE.qm</file>
+ </qresource>
+ <qresource prefix="/" lang="fr_FR">
+ <file alias="pvsmgr.qm">build/pvsmgr_fr_FR.qm</file>
+ </qresource>
+ <qresource prefix="/" lang="fr">
+ <file alias="pvsmgr.qm">build/pvsmgr_fr_FR.qm</file>
+ </qresource>
+ <qresource prefix="/" lang="es_MX">
+ <file alias="pvsmgr.qm">build/pvsmgr_es_MX.qm</file>
+ </qresource>
+ <qresource prefix="/" lang="es">
+ <file alias="pvsmgr.qm">build/pvsmgr_es_MX.qm</file>
+ </qresource>
+ <qresource prefix="/" lang="ar_JO">
+ <file alias="pvsmgr.qm">build/pvsmgr_ar_JO.qm</file>
+ </qresource>
+ <qresource prefix="/" lang="ar">
+ <file alias="pvsmgr.qm">build/pvsmgr_ar_JO.qm</file>
+ </qresource>
+ <qresource prefix="/" lang="pl_PL">
+ <file alias="pvsmgr.qm">build/pvsmgr_pl_PL.qm</file>
+ </qresource>
+ <qresource prefix="/" lang="pl">
+ <file alias="pvsmgr.qm">build/pvsmgr_pl_PL.qm</file>
+ </qresource>
+</RCC>
diff --git a/src/client/connectwindow/connectwindow.cpp b/src/client/connectwindow/connectwindow.cpp
new file mode 100644
index 0000000..bc4e9b2
--- /dev/null
+++ b/src/client/connectwindow/connectwindow.cpp
@@ -0,0 +1,284 @@
+/*
+ * connectwindow.cpp
+ *
+ * Created on: 28.01.2013
+ * Author: sr
+ */
+
+#include "connectwindow.h"
+#include "../../shared/settings.h"
+#include "../../shared/network.h"
+#include "../../shared/util.h"
+
+#include "../net/serverconnection.h"
+
+#include <QNetworkInterface>
+
+#define UDPBUFSIZ 9000
+#define SALT_LEN 18
+
+ConnectWindow::ConnectWindow(QWidget *parent) :
+ QDialog(parent), _connected(false), _timerDiscover(0), _timerHide(0), _connection(NULL), _state(Idle),
+ _hashErrorCount(0), _hashSslErrorCount(0), _certErrorCount(0), _ipErrorCount(0), _discoveryInterval(800)
+{
+ setupUi(this);
+ //
+ connect(cmdOK, SIGNAL(clicked()), this, SLOT(onOkClick()));
+ connect(cmdCancel, SIGNAL(clicked()), this, SLOT(onCancelClick()));
+ int tries = 10;
+ while (tries-- != 0)
+ {
+ const quint16 port = (quint16)(qrand() % 10000) + 10000;
+ if (_discoverySocket.bind(QHostAddress::Any, port))
+ break;
+ if (tries == 0)
+ qFatal("Could not bind to any UDP port for server discovery.");
+ }
+ connect(&_discoverySocket, SIGNAL(readyRead()), this, SLOT(onUdpReadyRead()));
+ this->setState(Idle);
+}
+
+ConnectWindow::~ConnectWindow()
+{
+
+}
+
+void ConnectWindow::setConnected(const bool connected)
+{
+ _connected = connected;
+ this->updateState();
+ if (_state == Scanning)
+ {
+ killTimer(_timerDiscover);
+ _discoveryInterval = 1000;
+ _timerDiscover = startTimer(_discoveryInterval);
+ }
+}
+
+void ConnectWindow::setState(const ConnectionState state)
+{
+ if (_state != state)
+ {
+ _state = state;
+ this->updateState();
+ }
+}
+
+void ConnectWindow::updateState()
+{
+ txtName->setEnabled(_state == Idle && !_connected);
+
+ if (_connected)
+ {
+ cmdOK->setEnabled(true);
+ cmdOK->setText(tr("&Disconnect"));
+ lblStatus->setText(tr("Connected."));
+ txtName->setEnabled(false);
+ return;
+ }
+
+ if (_state != Idle)
+ cmdOK->setText(tr("&Stop"));
+ else
+ cmdOK->setText(tr("&Connect"));
+
+ switch (_state)
+ {
+ case Idle:
+ lblStatus->setText(tr("Ready to connect; please enter session name."));
+ break;
+ case Scanning:
+ lblStatus->setText(tr("Scanning for session %1.").arg(txtName->text()));
+ _timerDiscover = startTimer(_discoveryInterval);
+ break;
+ case Connecting:
+ lblStatus->setText(tr("Found session, connecting..."));
+ break;
+ case AwaitingChallenge:
+ lblStatus->setText(tr("Waiting for server challenge..."));
+ break;
+ case AwaitingChallengeResponse:
+ lblStatus->setText(tr("Replied to challenge, sent own..."));
+ break;
+ case LoggingIn:
+ lblStatus->setText(tr("Logging in..."));
+ break;
+ case Connected:
+ lblStatus->setText(tr("Connection established!"));
+ break;
+ case InvalidIpList:
+ case InvalidHash:
+ case InvalidCert:
+ case InvalidSslHash:
+ lblError->setText(tr("Invalid hash: %1; invalid cert: %2; invalid iplist: %3; invalid sslhash: %4")
+ .arg(_hashErrorCount).arg(_certErrorCount).arg(_ipErrorCount).arg(_hashSslErrorCount));
+ break;
+ }
+}
+
+/**
+ * Overrides
+ */
+
+void ConnectWindow::timerEvent(QTimerEvent* event)
+{
+ if (event->timerId() == _timerDiscover)
+ {
+ killTimer(_timerDiscover);
+ if (_connected || _state != Scanning) // Not scanning, bail out
+ return;
+ if (_discoveryInterval < 30000)
+ _discoveryInterval += 100;
+ _timerDiscover = startTimer(_discoveryInterval);
+ // Don't send packet if we're trying to connect
+ if (_connection != NULL)
+ return;
+ // Send discovery
+ _packet.reset();
+ QByteArray iplist(Network::interfaceAddressesToString().toUtf8());
+ QByteArray salt1(SALT_LEN, 0);
+ if (_salt2.size() < SALT_LEN)
+ _salt2.resize(SALT_LEN);
+ for (int i = 0; i < SALT_LEN; ++i)
+ {
+ salt1[i] = qrand() & 0xff;
+ _salt2[i] = qrand() & 0xff;
+ }
+ _packet.reset();
+ _packet.setField(_HASH, genSha1(&_nameBytes, &salt1, &iplist));
+ _packet.setField(_SALT1, salt1);
+ _packet.setField(_SALT2, _salt2);
+ _packet.setField(_IPLIST, iplist);
+ foreach (QNetworkInterface interface, QNetworkInterface::allInterfaces())
+ {
+ foreach (QNetworkAddressEntry entry, interface.addressEntries())
+ {
+ if (!entry.broadcast().isNull() && entry.ip() != QHostAddress::LocalHost && entry.ip() != QHostAddress::LocalHostIPv6)
+ {
+ qDebug() << "Broadcasting to " << entry.broadcast().toString();
+ if (!_packet.writeMessage(&_discoverySocket, entry.broadcast(), SERVICE_DISCOVERY_PORT))
+ qDebug("FAILED");
+ }
+ }
+ }
+ qDebug("Broadcasting to 255.255.255.255");
+ if (!_packet.writeMessage(&_discoverySocket, QHostAddress::Broadcast, SERVICE_DISCOVERY_PORT))
+ qDebug("FAILED");
+ // End send discovery
+ }
+ else if(event->timerId() == _timerHide)
+ {
+ killTimer(_timerHide);
+ _timerHide = 0;
+ this->hide();
+ }
+ else
+ // Unknown/Old timer id, kill it
+ killTimer(event->timerId());
+}
+
+void ConnectWindow::closeEvent(QCloseEvent *e)
+{
+ e->ignore();
+ this->hide();
+}
+
+/**
+ * Slots
+ */
+
+void ConnectWindow::onOkClick()
+{
+ if (_timerHide)
+ killTimer(_timerHide);
+ _timerHide = 0;
+ if (_timerDiscover)
+ killTimer(_timerDiscover);
+ if (_connected || _state != Idle)
+ {
+ // Stop or disconnect
+ _timerDiscover = 0;
+ emit disconnect();
+ this->setState(Idle);
+ }
+ else
+ {
+ // Connect (scan for session)
+ _discoveryInterval = 800;
+ _nameBytes = txtName->text().toUtf8();
+ _timerDiscover = startTimer(_discoveryInterval);
+ _hashErrorCount = _hashSslErrorCount = _certErrorCount = _ipErrorCount = 0;
+ this->setState(Scanning);
+ }
+}
+
+void ConnectWindow::onCancelClick()
+{
+ this->hide();
+}
+
+void ConnectWindow::onUdpReadyRead()
+{
+ char data[UDPBUFSIZ];
+ QHostAddress addr;
+ quint16 port;
+ while (_discoverySocket.hasPendingDatagrams())
+ {
+ const qint64 size = _discoverySocket.readDatagram(data, UDPBUFSIZ, &addr, &port);
+ if (size <= 0 || _connection != NULL)
+ continue;
+
+ _packet.reset();
+ if (!_packet.readMessage(data, (quint32)size))
+ continue;
+ // Valid packet, process it:
+ const QByteArray hash(_packet.getFieldBytes(_HASH));
+ const QByteArray iplist(_packet.getFieldBytes(_IPLIST));
+ const QByteArray port(_packet.getFieldBytes(_PORT));
+ const QByteArray cert(_packet.getFieldBytes(_CERT));
+ // Check if the source IP of the packet matches any of the addresses given in the IP list
+ if (!Network::isAddressInList(QString::fromUtf8(iplist), addr.toString()))
+ {
+ ++_ipErrorCount;
+ this->setState(InvalidIpList);
+ this->setState(Scanning);
+ continue;
+ }
+ // If so, check if the submitted hash seems valid
+ if (genSha1(&_nameBytes, &_salt2, &iplist, &port, &cert) != hash)
+ {
+ // did not match local session name, or other data was spoofed
+ ++_hashErrorCount;
+ this->setState(InvalidHash);
+ this->setState(Scanning);
+ continue;
+ }
+ // Otherwise it's a valid reply, try to connect
+ _connection = new ServerConnection(addr.toString(), (quint16)QString::fromUtf8(port).toInt(), _nameBytes, cert);
+ connect(_connection, SIGNAL(stateChange(ConnectWindow::ConnectionState)), this, SLOT(onConnectionStateChange(ConnectWindow::ConnectionState)));
+ connect(_connection, SIGNAL(destroyed(QObject*)), this, SLOT(onConnectionClosed(QObject*)));
+ }
+}
+
+void ConnectWindow::onConnectionStateChange(ConnectWindow::ConnectionState state)
+{
+ bool reset = (_state == Scanning);
+ if (state == InvalidSslHash)
+ ++_hashSslErrorCount;
+ this->setState(state);
+ if (reset)
+ _state = Scanning;
+ if (state == Connected)
+ {
+ QObject::disconnect(_connection, SIGNAL(stateChange(ConnectWindow::ConnectionState)), this, SLOT(onConnectionStateChange(ConnectWindow::ConnectionState)));
+ QObject::disconnect(_connection, SIGNAL(destroyed(QObject*)), this, SLOT(onConnectionClosed(QObject*)));
+ emit connected(_connection);
+ _connection = NULL;
+ _timerHide = startTimer(2000);
+ }
+}
+
+void ConnectWindow::onConnectionClosed(QObject* connection)
+{
+ _connection = NULL;
+}
diff --git a/src/client/connectwindow/connectwindow.h b/src/client/connectwindow/connectwindow.h
new file mode 100644
index 0000000..d8f9ab9
--- /dev/null
+++ b/src/client/connectwindow/connectwindow.h
@@ -0,0 +1,95 @@
+/*
+ # Copyright (c) 2013 - OpenSLX Project, Computer Center University of
+ # Freiburg
+ #
+ # This program is free software distributed under the GPL version 2.
+ # See http://openslx.org/COPYING
+ #
+ # If you have any feedback please consult http://openslx.org/feedback and
+ # send your suggestions, praise, or complaints to feedback@openslx.org
+ #
+ # General information about OpenSLX can be found at http://openslx.org/
+ # ---------------------------------------------------------------------
+ # - Allow user to connect/disconnect to/from server
+ */
+
+#ifndef PVSCONNECTWINDOW_H_
+#define PVSCONNECTWINDOW_H_
+
+#include <QtGui>
+#include <QUdpSocket>
+#include <QSslSocket>
+#include "ui_connect.h"
+
+#include "../../shared/networkmessage.h"
+
+class ServerConnection;
+
+class ConnectWindow : public QDialog, private Ui_Dialog
+{
+Q_OBJECT
+
+public:
+ enum ConnectionState
+ {
+ Idle,
+ Scanning,
+ Connecting,
+ AwaitingChallenge,
+ AwaitingChallengeResponse,
+ LoggingIn,
+ InvalidIpList,
+ InvalidHash, // Hash of UDP reply invalid
+ InvalidSslHash, // Hash of challenge inside SSL connection invalid
+ InvalidCert,
+ Connected
+ };
+
+private:
+ bool _connected;
+ int _timerDiscover, _timerHide;
+ ServerConnection *_connection;
+ ConnectionState _state;
+ int _hashErrorCount, _hashSslErrorCount, _certErrorCount, _ipErrorCount;
+ int _discoveryInterval;
+
+ QByteArray _nameBytes;
+ QByteArray _salt2;
+ QUdpSocket _discoverySocket;
+ NetworkMessage _packet;
+
+ void setState(const ConnectionState state);
+ void updateState();
+
+public:
+ ConnectWindow(QWidget *parent = NULL);
+ virtual ~ConnectWindow();
+
+ void setConnected(const bool connected);
+
+protected:
+ /*
+ void enterEvent(QEvent *e);
+ void leaveEvent(QEvent *e);
+ void mousePressEvent(QMouseEvent *event);
+ void mouseReleaseEvent(QMouseEvent *event);
+ void mouseMoveEvent(QMouseEvent *event);
+ */
+ void timerEvent(QTimerEvent* event);
+ void closeEvent(QCloseEvent *e);
+
+protected slots:
+ void onOkClick();
+ void onCancelClick();
+ void onUdpReadyRead();
+ void onConnectionStateChange(ConnectWindow::ConnectionState state);
+ void onConnectionClosed(QObject* connection);
+ //void onSsl
+
+signals:
+ void disconnect();
+ void connected(ServerConnection* connection);
+
+};
+
+#endif
diff --git a/src/client/main.cpp b/src/client/main.cpp
new file mode 100644
index 0000000..cea9ae8
--- /dev/null
+++ b/src/client/main.cpp
@@ -0,0 +1,41 @@
+#include "toolbar/toolbar.h"
+#include "util/util.h"
+
+int main(int argc, char** argv)
+{
+ QApplication app(argc, argv);
+ app.setOrganizationName("openslx");
+ app.setOrganizationDomain("openslx.org");
+ app.setApplicationName("pvsclient");
+
+ qsrand((uint)QDateTime::currentMSecsSinceEpoch());
+
+ // Make sure settings directory exists
+ do {
+ USER_SETTINGS(settings);
+ QFileInfo fi(settings.fileName());
+ QDir path(fi.path());
+ qDebug() << "Settings directory is " << fi.path();
+ if (!path.exists())
+ path.mkpath(path.absolutePath());
+ // Now check if settings file exists. If not, copy system default (if available)
+ if (!fi.exists())
+ {
+ SYSTEM_SETTINGS(sys);
+ QFileInfo sysfi(sys.fileName());
+ if (sysfi.exists())
+ {
+ if (!QFile::copy(sys.fileName(), settings.fileName()))
+ qDebug() << "Copying default settings from " << sys.fileName() << " to " << settings.fileName() << " failed.";
+ }
+ }
+ } while (0);
+
+ // use system locale as language to translate gui
+ QTranslator translator;
+ translator.load(":pvsclient");
+ app.installTranslator(&translator);
+
+ Toolbar pvsclient;
+ return app.exec();
+}
diff --git a/src/client/net/serverconnection.cpp b/src/client/net/serverconnection.cpp
new file mode 100644
index 0000000..849f43b
--- /dev/null
+++ b/src/client/net/serverconnection.cpp
@@ -0,0 +1,348 @@
+#include "serverconnection.h"
+#include <QtCore>
+#include <QPixmap>
+#include <QApplication>
+#include <QDesktopWidget>
+#include <QHostInfo>
+#include <unistd.h>
+#include <cstdlib>
+//#define verbose
+#include "../vnc/vncserver.h"
+
+#include "../../shared/util.h"
+#include "../util/platform/blankscreen.h"
+
+#define CHALLENGE_LEN 20
+
+ServerConnection::ServerConnection(const QString& host, const quint16 port, const QByteArray& sessionName, const QByteArray& certHash) :
+ QObject(NULL), _jpegQuality(80), _authed(0), _sessionName(sessionName), _certHash(certHash)
+{
+ _socket = new QSslSocket();
+ _blank = new BlankScreen();
+ connect(_socket, SIGNAL(encrypted()), this, SLOT(sock_connected()));
+ connect(_socket, SIGNAL(readyRead()), this, SLOT(sock_dataArrival()));
+ connect(_socket, SIGNAL(disconnected()), this, SLOT(sock_closed()));
+ connect(_socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(sock_error(QAbstractSocket::SocketError)));
+ connect(_socket,
+ SIGNAL(sslErrors(const QList<QSslError> &)),
+ this,
+ SLOT(sslErrors(const QList<QSslError> &))
+ );
+ qDebug("Connecting to %s on port %d", host.toUtf8().data(), (int)port);
+ _socket->connectToHostEncrypted(host, port);
+ _timerId = startTimer(4000);
+ // Connect the vnc start/stop signal to this class, so we can tell the server about successful vnc server startup
+ connect(VncServer::instance(), SIGNAL(started(int, QString&, QString&)), this, SLOT(onVncServerStartStop(int, QString&, QString&)));
+}
+
+ServerConnection::~ServerConnection()
+{
+ this->disconnectFromServer();
+ _blank->deleteLater();
+ _blank = NULL;
+}
+
+void ServerConnection::sendMessage(NetworkMessage& message)
+{
+ if (_socket == NULL || _socket->state() != QAbstractSocket::ConnectedState)
+ return;
+ message.writeMessage(_socket);
+ if (!message.writeComplete())
+ {
+ qCritical() << "SendMessage to server failed!";
+ }
+}
+
+
+void ServerConnection::disconnectFromServer()
+{
+ if (_socket == NULL)
+ return;
+ qDebug("Closing connection to server");
+ VncServer::instance()->stop();
+ emit closeVnc();
+ _socket->blockSignals(true);
+ _socket->abort();
+ _socket->deleteLater();
+ _socket = NULL;
+ this->deleteLater();
+}
+
+void ServerConnection::handleMsg()
+{
+ const QString &id = _fromServer.getFieldString(_ID);
+
+ if (_authed == 0)
+ {
+ if (id == _CHALLENGE)
+ {
+ // Initial challenge request by server
+ emit stateChange(ConnectWindow::AwaitingChallengeResponse);
+ _myChallenge.resize(CHALLENGE_LEN);
+ for (int i = 0; i < CHALLENGE_LEN; ++i)
+ _myChallenge[i] = qrand() & 0xff;
+ QByteArray serverChallenge(_fromServer.getFieldBytes(_CHALLENGE));
+ _toServer.reset();
+ _toServer.setField(_ID, _CHALLENGE);
+ _toServer.setField(_HASH, genSha1(&_sessionName, &serverChallenge));
+ _toServer.setField(_CHALLENGE, _myChallenge);
+ _toServer.writeMessage(_socket);
+ qDebug("Received challenge, replying, sending own challenge step <- 1");
+ _authed = 1;
+ }
+ return;
+ }
+
+ if (_authed == 1)
+ {
+ if (id == _CHALLENGE)
+ {
+ qDebug("Received challenge reply");
+ if (_timerId != 0)
+ {
+ killTimer(_timerId);
+ _timerId = 0;
+ }
+ // Check challenge response
+ QByteArray serverhash(_fromServer.getFieldBytes(_HASH));
+ if (serverhash != genSha1(&_sessionName, &_myChallenge))
+ {
+ qDebug("invalid. STOP.");
+ emit stateChange(ConnectWindow::InvalidSslHash);
+ this->disconnectFromServer();
+ return;
+ }
+ emit stateChange(ConnectWindow::LoggingIn);
+ char *user = getlogin();
+ if (user == NULL || *user == '\0')
+ user = getenv("USER");
+ if (user == NULL || *user == '\0')
+ user = getenv("USERNAME");
+ if (user == NULL || *user == '\0')
+ user = (char*)"Hans Affe";
+ _toServer.reset();
+ _toServer.setField(_ID, _LOGIN);
+ _toServer.setField("HOST", QHostInfo::localHostName());
+ _toServer.setField("NAME", QString(user));
+ qDebug("Sending login request!");
+ if (_toServer.writeMessage(_socket))
+ {
+ _authed = 2;
+ qDebug("valid, step <- 2");
+ }
+ else
+ {
+ this->disconnectFromServer();
+ }
+ }
+ return;
+ }
+
+ if (_authed == 2)
+ {
+ if (id == _LOGIN)
+ {
+ qDebug("login accepted, step <- 3");
+ _authed = 3;
+ emit stateChange(ConnectWindow::Connected);
+ }
+ return;
+ }
+
+ // message THUMB - server requests screenshot as thumbnail
+ if (id == _THUMB)
+ {
+ int x = _fromServer.getFieldString(_X).toInt();
+ int y = _fromServer.getFieldString(_Y).toInt();
+ if (x < 32)
+ x = 32;
+ else if (x > 400)
+ x = 400;
+ if (y < 18)
+ y = 18;
+ else if (y > 300)
+ y = 300;
+ QPixmap desktop(QPixmap::grabWindow(QApplication::desktop()->winId()).scaled(
+ x, y,
+ Qt::KeepAspectRatio,
+ Qt::SmoothTransformation));
+ QByteArray bytes;
+ QBuffer jpgBuffer(&bytes);
+ jpgBuffer.open(QIODevice::WriteOnly);
+ qDebug("JPEG quality is %d", _jpegQuality);
+ if (desktop.save(&jpgBuffer, "JPG", _jpegQuality)) // writes pixmap into bytes in JPG format
+ {
+ // Try to adjust quality so we stay between 3 and 4.5 KB
+ if (_jpegQuality < 90 && bytes.size() < 3000)
+ _jpegQuality += 7;
+ else if (_jpegQuality > 40 && bytes.size() > 4500)
+ _jpegQuality -= 7;
+ }
+ else
+ { // FALLBACK
+ bytes.clear();
+ QBuffer pngBuffer(&bytes);
+ pngBuffer.open(QIODevice::WriteOnly);
+ if (!desktop.save(&pngBuffer, "PNG")) // writes pixmap into bytes in PNG format
+ {
+ qDebug("Could not convert screenshot to PNG nor JPG");
+ return; // Failed :-(
+ }
+ }
+ _toServer.reset();
+ _toServer.setField(_ID, _THUMB);
+ _toServer.setField(_IMG, bytes);
+ sendMessage(_toServer);
+ } // message VNCSERVER - start local vncserver
+ else if (id == _VNCSERVER)
+ {
+ const bool enable = (_fromServer.getFieldString("ENABLE").toInt() != 0);
+ if (enable)
+ {
+ emit closeVnc(); // In case we are watching some other client, stop doing so
+ VncServer::instance()->start();
+ }
+ else
+ {
+ VncServer::instance()->stop();
+ }
+ }
+ else if (id == _VNCCLIENT)
+ {
+ const QString host(_fromServer.getFieldString("HOST"));
+ const int port = _fromServer.getFieldString("PORT").toInt();
+ if (host.isEmpty() || port <= 0)
+ {
+ emit closeVnc();
+ }
+ else
+ {
+ emit openVnc(host, port, _fromServer.getFieldString("ROPASS"), true, true, _fromServer.getFieldString("CAPTION"), _fromServer.getFieldString("CLIENTID").toInt());
+ }
+ }
+ else if (id == _LOCK)
+ {
+ const bool enable = (_fromServer.getFieldString("ENABLE").toInt() != 0);
+ if (enable)
+ _blank->lock(_fromServer.getFieldString("MESSAGE"));
+ else
+ _blank->unlock();
+ }
+}
+
+/**
+ * Override
+ */
+
+void ServerConnection::timerEvent(QTimerEvent *event)
+{
+ if (_timerId == 0)
+ return;
+ killTimer(_timerId);
+ _timerId = 0;
+ this->disconnectFromServer();
+}
+
+/**
+ * Slots
+ */
+
+void ServerConnection::onVncServerStartStop(int port, QString& ropass, QString& rwpass)
+{
+ _toServer.reset();
+ _toServer.setField(_ID, _VNCSERVER);
+ if (port <= 0)
+ {
+ _toServer.setField("PORT", QByteArray("0"));
+ }
+ else
+ {
+ _toServer.setField("PORT", QString::number(port));
+ _toServer.setField("ROPASS", ropass);
+ _toServer.setField("RWPASS", rwpass);
+ }
+ sendMessage(_toServer);
+}
+
+void ServerConnection::onVncViewerStartStop(const bool started, const int clientId)
+{
+ _toServer.reset();
+ _toServer.setField(_ID, _VNCCLIENT);
+ if (started)
+ _toServer.setField("ENABLED", QByteArray("1"));
+ else
+ _toServer.setField("ENABLED", QByteArray("0"));
+ _toServer.setField("CLIENTID", QString::number(clientId));
+ sendMessage(_toServer);
+}
+
+void ServerConnection::sslErrors(const QList<QSslError> & errors)
+{
+ for (QList<QSslError>::const_iterator it = errors.begin(); it != errors.end(); it++)
+ {
+ QSslError err = *it;
+ qDebug("Connect SSL: %s", qPrintable(err.errorString()));
+ if (err.error() == QSslError::HostNameMismatch)
+ continue; // We don't pay attention to hostnames for validation
+ if (err.error() == QSslError::SelfSignedCertificate)
+ continue; // Also, this will always be the case; we check the fingerprint later
+ if (err.error() == QSslError::CertificateNotYetValid || err.error() == QSslError::CertificateExpired)
+ continue;
+ // Some other SSL error - do not ignore
+ return;
+ }
+ _socket->ignoreSslErrors();
+}
+
+void ServerConnection::sock_dataArrival()
+{
+ if (_socket == NULL || _socket->state() != QAbstractSocket::ConnectedState)
+ {
+ qDebug("dataArrival called in bad state");
+ return;
+ }
+
+ while (_socket->bytesAvailable())
+ {
+ bool retval;
+ retval = _fromServer.readMessage(_socket); // let the message read data from socket
+ if (!retval) // error parsing msg, disconnect client!
+ {
+ this->disconnectFromServer();
+ return;
+ }
+ if (_fromServer.readComplete()) // message is complete
+ {
+ this->handleMsg();
+ if (_socket == NULL)
+ return;
+ _fromServer.reset();
+ }
+ }
+}
+
+void ServerConnection::sock_closed()
+{
+ // should this be unreliable in some way i suggest using the signal "stateChanged()" instead
+ // and check if the state changed to unconnected.
+ qDebug("Socket was closed... oh well..");
+ this->disconnectFromServer();
+}
+
+void ServerConnection::sock_error(QAbstractSocket::SocketError errcode)
+{
+ qDebug("Connection error: %d", (int)errcode);
+ this->disconnectFromServer();
+}
+
+void ServerConnection::sock_connected()
+{
+ QByteArray cert(_socket->peerCertificate().digest(QCryptographicHash::Sha1));
+ if (_certHash != cert)
+ {
+ emit stateChange(ConnectWindow::InvalidCert);
+ this->disconnectFromServer();
+ return;
+ }
+ emit stateChange(ConnectWindow::AwaitingChallenge);
+}
diff --git a/src/client/net/serverconnection.h b/src/client/net/serverconnection.h
new file mode 100644
index 0000000..afb8204
--- /dev/null
+++ b/src/client/net/serverconnection.h
@@ -0,0 +1,62 @@
+#ifndef _PVSSERVERCONNECTION_H_
+#define _PVSSERVERCONNECTION_H_
+
+#include <QSslSocket>
+#include "../../shared/networkmessage.h"
+#include "../connectwindow/connectwindow.h"
+
+class BlankScreen;
+
+class ServerConnection : public QObject
+{
+Q_OBJECT
+
+private:
+ QSslSocket *_socket;
+ BlankScreen *_blank;
+ int _timerId;
+ int _jpegQuality;
+ int _authed;
+
+ NetworkMessage _fromServer, _toServer;
+ QByteArray _expectedFingerprint;
+ QString _passwd;
+ QByteArray _myChallenge;
+ QByteArray _sessionName;
+ QByteArray _certHash;
+
+ void handleMsg();
+
+public:
+ ServerConnection(const QString& host, const quint16 port, const QByteArray& sessionName, const QByteArray& certHash);
+ void disconnectFromServer();
+ ~ServerConnection();
+ const inline bool isConnected() const
+ {
+ return _socket != NULL && _socket->state() == QAbstractSocket::ConnectedState;
+ }
+
+ void sendMessage(NetworkMessage& message);
+
+protected:
+ void timerEvent(QTimerEvent *event);
+
+private slots:
+ void sslErrors(const QList<QSslError> & errors); // triggered for errors that occur during SSL negotiation
+ void sock_dataArrival(); // triggered if data is available for reading
+ void sock_closed(); // triggered if the socket is closed
+ void sock_error(QAbstractSocket::SocketError errcode); // triggered if an error occurs on the socket
+ void sock_connected(); // triggered if the connection is established and ready to use
+
+ void onVncServerStartStop(int port, QString& ropass, QString& rwpass); // triggered if the local vnc server was started
+
+ void onVncViewerStartStop(const bool started, const int clientId);
+
+signals:
+ void openVnc(const QString& host, int port, const QString& passwd, bool ro, bool fullscreen, const QString& caption, const int clientId);
+ void closeVnc();
+ void stateChange(ConnectWindow::ConnectionState state);
+
+};
+
+#endif
diff --git a/src/client/toolbar/toolbar.cpp b/src/client/toolbar/toolbar.cpp
new file mode 100644
index 0000000..416a68f
--- /dev/null
+++ b/src/client/toolbar/toolbar.cpp
@@ -0,0 +1,200 @@
+/*
+ * toolbar.cpp
+ *
+ * Created on: 21.01.2013
+ * Author: sr
+ */
+
+#include "toolbar.h"
+#include "../../shared/settings.h"
+#include "../net/serverconnection.h"
+#include "../vnc/vncwindow.h"
+#include "../vnc/vncserver.h"
+
+Toolbar::Toolbar(QWidget *parent) :
+ QWidget(parent), _location(POSITION_TOP_CENTER), _hideTimer(0), _connection(NULL)
+{
+ setupUi(this);
+ setWindowFlags(Qt::WindowStaysOnTopHint | Qt::X11BypassWindowManagerHint | Qt::FramelessWindowHint);
+ setAttribute(Qt::WA_AlwaysShowToolTips);
+ setAttribute(Qt::WA_QuitOnClose);
+ setVisible(true);
+ // VNC Window
+ _vnc = new VncWindow(NULL);
+ // Connect window
+ _connectWindow = new ConnectWindow(NULL);
+ connect(_connectWindow, SIGNAL(disconnect()), this, SLOT(onDoDisconnect()));
+ connect(_connectWindow, SIGNAL(connected(ServerConnection*)), this, SLOT(onConnected(ServerConnection*)));
+ //
+ setupMenu();
+ setLocation();
+ hideBar();
+}
+
+void Toolbar::setupMenu()
+{
+ _menu = new QMenu(this);
+ // setup actions
+ _acnDisconnect = new QAction(tr("&Connect"), this);
+ //_acnDisconnect->setEnabled(false);
+ _acnQuit = new QAction(tr("&Quit"), this);
+
+ // setup menu
+ _menu->addAction(_acnDisconnect);
+ _menu->addSeparator();
+ _menu->addAction(_acnQuit);
+
+ cmdMenu->setMenu(_menu);
+
+ connect(_acnQuit, SIGNAL(triggered()), this, SLOT(onQuit()));
+ connect(_acnDisconnect, SIGNAL(triggered()), _connectWindow, SLOT(show()));
+}
+
+Toolbar::~Toolbar()
+{
+ VncServer::instance()->stop();
+ _vnc->deleteLater();
+ _connectWindow->deleteLater();
+}
+
+//###########\\/\/
+
+void Toolbar::setLocation()
+{
+ const QDesktopWidget desktop;
+ const QRect primaryScreen = desktop.screenGeometry();
+ switch (_location)
+ {
+ case POSITION_TOP_LEFT:
+ move(primaryScreen.left(), primaryScreen.top());
+ break;
+ case POSITION_TOP_CENTER:
+ move((primaryScreen.width() - this->width()) / 2 + primaryScreen.left(), primaryScreen.top());
+ break;
+ case POSITION_TOP_RIGHT:
+ move(primaryScreen.right() - width(), primaryScreen.top());
+ break;
+ case POSITION_BOTTOM_LEFT:
+ move(primaryScreen.left(), primaryScreen.bottom() - height());
+ break;
+ case POSITION_BOTTOM_CENTER:
+ move((primaryScreen.width() - this->width()) / 2 + primaryScreen.left(), primaryScreen.bottom() - height());
+ break;
+ case POSITION_BOTTOM_RIGHT:
+ move(primaryScreen.right() - width(), primaryScreen.bottom() - height());
+ break;
+ default:
+ break;
+ }
+}
+
+void Toolbar::setBarVisible(bool shown)
+{
+ const QDesktopWidget desktop;
+ const QRect primaryScreen = desktop.screenGeometry();
+ if (!shown)
+ {
+ if (_location <= POSITION_TOP_RIGHT)
+ move(x(), primaryScreen.top() + 2 - height());
+ else
+ move(x(), primaryScreen.bottom() - 2);
+ }
+ else
+ {
+ if (_location <= POSITION_TOP_RIGHT)
+ move(x(), primaryScreen.top());
+ else
+ move(x(), primaryScreen.bottom() - height());
+ }
+}
+
+bool Toolbar::hideBar()
+{
+ if (_menu->isVisible()) // Don't hide window if any menu is open
+ return false;
+ setBarVisible(false);
+ return true;
+}
+
+/**
+ * Override
+ */
+
+void Toolbar::leaveEvent(QEvent* e)
+{
+ if (_hideTimer == 0)
+ _hideTimer = startTimer(100);
+ _hideDelay = 6;
+ QWidget::leaveEvent(e);
+}
+
+void Toolbar::enterEvent(QEvent* e)
+{
+ if (_hideTimer != 0)
+ {
+ killTimer(_hideTimer);
+ _hideTimer = 0;
+ }
+ setBarVisible(true);
+ QWidget::enterEvent(e);
+}
+
+void Toolbar::timerEvent(QTimerEvent* event)
+{
+ if (event->timerId() == _hideTimer)
+ {
+ if (--_hideDelay <= 0)
+ {
+ if (hideBar())
+ {
+ killTimer(_hideTimer);
+ _hideTimer = 0;
+ }
+ }
+ }
+}
+
+/**
+ * Slots
+ */
+
+void Toolbar::onDisconnected(QObject* connection)
+{
+ if (connection != _connection)
+ qDebug("onDisconnect pointer mismatch!");
+ _connectWindow->setConnected(false);
+ _connection = NULL;
+ lblStatus->setStyleSheet("color:red");
+ lblStatus->setText(tr("Offline"));
+}
+
+void Toolbar::onConnected(ServerConnection* connection)
+{
+ lblStatus->setStyleSheet("color:green");
+ lblStatus->setText(tr("Online"));
+ //
+ if (_connection != NULL)
+ {
+ disconnect(_connection, SIGNAL(destroyed(QObject*)), this, SLOT(onDisconnected(QObject*)));
+ _connection->blockSignals(true);
+ _connection->disconnectFromServer();
+ }
+ _connection = connection;
+ connect(_connection, SIGNAL(destroyed(QObject*)), this, SLOT(onDisconnected(QObject*)));
+ connect(_connection, SIGNAL(openVnc(const QString&, int, const QString&, bool, bool, const QString&, const int)),
+ _vnc, SLOT(open(const QString&, int, const QString&, bool, bool, const QString&, const int)));
+ connect(_connection, SIGNAL(closeVnc()), _vnc, SLOT(close()));
+ connect(_vnc, SIGNAL(running(const bool, const int)), _connection, SLOT(onVncViewerStartStop(const bool, const int)));
+ _connectWindow->setConnected(true);
+}
+
+void Toolbar::onDoDisconnect()
+{
+ if (_connection != NULL)
+ _connection->disconnectFromServer();
+}
+
+void Toolbar::onQuit()
+{
+ QApplication::exit(0);
+}
diff --git a/src/client/toolbar/toolbar.h b/src/client/toolbar/toolbar.h
new file mode 100644
index 0000000..0ce4d2b
--- /dev/null
+++ b/src/client/toolbar/toolbar.h
@@ -0,0 +1,78 @@
+/*
+ # Copyright (c) 2009, 2010 - OpenSLX Project, Computer Center University of
+ # Freiburg
+ #
+ # This program is free software distributed under the GPL version 2.
+ # See http://openslx.org/COPYING
+ #
+ # If you have any feedback please consult http://openslx.org/feedback and
+ # send your suggestions, praise, or complaints to feedback@openslx.org
+ #
+ # General information about OpenSLX can be found at http://openslx.org/
+ */
+
+#ifndef PVSCLIENTGUI_H_
+#define PVSCLIENTGUI_H_
+
+#include <QtGui>
+#include "ui_toolbar.h"
+
+class ServerConnection;
+class VncWindow;
+class ConnectWindow;
+class BlankScreen;
+
+class Toolbar : public QWidget, private Ui_ToolbarClass
+{
+Q_OBJECT
+
+private:
+ int _location;
+ int _hideTimer;
+ int _hideDelay;
+ QMenu *_menu;
+ QAction *_acnDisconnect;
+ QAction *_acnQuit;
+ ServerConnection *_connection;
+
+ ConnectWindow *_connectWindow;
+ VncWindow *_vnc;
+
+ void setLocation();
+ bool hideBar();
+ void setBarVisible(bool shown);
+ void setupMenu();
+
+ void leaveEvent(QEvent* e);
+ void enterEvent(QEvent* e);
+ void timerEvent(QTimerEvent* event);
+
+public:
+ Toolbar(QWidget *parent = NULL);
+ virtual ~Toolbar();
+
+ int const static POSITION_TOP_LEFT = 0;
+ int const static POSITION_TOP_CENTER = 1;
+ int const static POSITION_TOP_RIGHT = 2;
+ int const static POSITION_BOTTOM_LEFT = 3;
+ int const static POSITION_BOTTOM_CENTER = 4;
+ int const static POSITION_BOTTOM_RIGHT = 5;
+
+protected:
+ /*
+ void enterEvent(QEvent *e);
+ void leaveEvent(QEvent *e);
+ void mousePressEvent(QMouseEvent *event);
+ void mouseReleaseEvent(QMouseEvent *event);
+ void mouseMoveEvent(QMouseEvent *event);
+ */
+
+private slots:
+ void onDisconnected(QObject* connection);
+ void onConnected(ServerConnection* connection);
+ void onDoDisconnect();
+ void onQuit();
+
+};
+
+#endif /* PVSCLIENTGUI_H_ */
diff --git a/src/client/util/platform/blankscreen.h b/src/client/util/platform/blankscreen.h
new file mode 100755
index 0000000..8ed4c04
--- /dev/null
+++ b/src/client/util/platform/blankscreen.h
@@ -0,0 +1,25 @@
+#ifndef _BLANKSCREEN_H_
+#define _BLANKSCREEN_H_
+
+#include <QString>
+#include <QDialog>
+
+class BlankScreen_Sysdep;
+
+class BlankScreen : public QDialog
+{
+ Q_OBJECT
+public:
+ BlankScreen();
+ virtual ~BlankScreen();
+ void draw(bool force = false);
+ bool lock(const QString& message);
+ bool unlock();
+
+private:
+ bool _locked;
+ QString _message;
+ BlankScreen_Sysdep* _sysdep;
+};
+
+#endif
diff --git a/src/client/util/platform/blankscreen_Win32.cpp b/src/client/util/platform/blankscreen_Win32.cpp
new file mode 100755
index 0000000..2bba1cf
--- /dev/null
+++ b/src/client/util/platform/blankscreen_Win32.cpp
@@ -0,0 +1,41 @@
+
+#include "blankscreen.h"
+#include <qwidget.h>
+
+struct BlankScreen_Sysdep {
+
+ bool locked;
+ QWidget* blankwin;
+
+ QString lockMsg;
+ int blackColor, whiteColor;
+ int offX, offY;
+};
+
+BlankScreen::BlankScreen()
+{
+ _sysdep = new BlankScreen_Sysdep;
+ _sysdep->blankwin = new QWidget(0, Qt::X11BypassWindowManagerHint | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
+ _sysdep->blankwin->setWindowState(Qt::WindowFullScreen);
+ _sysdep->blankwin->show();
+}
+
+BlankScreen::~BlankScreen()
+{
+ delete _sysdep;
+}
+
+void BlankScreen::draw(bool force)
+{
+
+}
+
+bool BlankScreen::lock(const QString& message)
+{
+ return true;
+}
+
+bool BlankScreen::unlock()
+{
+ return true;
+}
diff --git a/src/client/util/platform/blankscreen_X11.cpp b/src/client/util/platform/blankscreen_X11.cpp
new file mode 100755
index 0000000..69b6d8c
--- /dev/null
+++ b/src/client/util/platform/blankscreen_X11.cpp
@@ -0,0 +1,75 @@
+#include "blankscreen.h"
+
+#include <QApplication>
+#include <QDesktopWidget>
+
+#include <X11/Xlib.h>
+#include <X11/cursorfont.h>
+
+#include <cassert>
+#include <cstring>
+
+struct BlankScreen_Sysdep
+{
+ Display *dpy;
+};
+
+BlankScreen::BlankScreen() : QDialog(NULL)
+{
+ _sysdep = new BlankScreen_Sysdep;
+ _sysdep->dpy = XOpenDisplay(NULL);
+ if (_sysdep->dpy == NULL)
+ return;
+ assert(_sysdep->dpy);
+
+ setWindowFlags(Qt::WindowStaysOnTopHint | Qt::X11BypassWindowManagerHint | Qt::FramelessWindowHint);
+ setStyleSheet("background-color:#000");
+
+ _locked = false;
+}
+
+BlankScreen::~BlankScreen()
+{
+ unlock();
+ delete _sysdep;
+}
+
+bool BlankScreen::lock(const QString& message)
+{
+ if (_locked)
+ return true;
+ if (_sysdep->dpy == NULL)
+ return false;
+
+ _message = message;
+
+ this->setGeometry(QApplication::desktop()->geometry());
+ this->showFullScreen();
+ this->activateWindow();
+ this->raise();
+
+ // grabbing of keyboard and mouse
+ XGrabKeyboard(_sysdep->dpy, DefaultRootWindow(_sysdep->dpy) , false, GrabModeAsync, GrabModeAsync, CurrentTime);
+ XGrabPointer(_sysdep->dpy, DefaultRootWindow(_sysdep->dpy) , false, 0, GrabModeAsync, GrabModeAsync, None, 0, CurrentTime);
+
+ _locked = true;
+ return true;
+}
+
+bool BlankScreen::unlock()
+{
+ this->hide();
+ if (!_locked)
+ return true;
+ if (_sysdep->dpy == NULL)
+ return false;
+
+ // ungrabbing of keyboard and mouse
+ XUngrabPointer(_sysdep->dpy, CurrentTime);
+ XUngrabKeyboard(_sysdep->dpy, CurrentTime);
+
+ XFlush(_sysdep->dpy);
+
+ _locked = false;
+ return true;
+}
diff --git a/src/client/util/util.cpp b/src/client/util/util.cpp
new file mode 100644
index 0000000..9dcbebb
--- /dev/null
+++ b/src/client/util/util.cpp
@@ -0,0 +1,25 @@
+/*
+ * Util.cpp
+ *
+ * Created on: 18.01.2013
+ * Author: sr
+ */
+
+#include "util.h"
+#include <QSettings>
+
+namespace Util
+{
+//#
+//#
+QDir settingsDir()
+{
+ USER_SETTINGS(settings);
+ QFileInfo fi(settings.fileName());
+ QDir path(fi.path());
+ return path;
+}
+//#
+//#
+}
+
diff --git a/src/client/util/util.h b/src/client/util/util.h
new file mode 100644
index 0000000..82248c0
--- /dev/null
+++ b/src/client/util/util.h
@@ -0,0 +1,23 @@
+#ifndef UTIL_H_
+#define UTIL_H_
+
+// Helper for getting a settings object in various places, so if you ever change the organization, location,
+// file format or anything, you won't have to edit in 100 places.
+// Use like this:
+// USER_SETTINGS(settings)
+// settings.value("somekey")
+#define USER_SETTINGS(name) QSettings name (QSettings::IniFormat, QSettings::UserScope, "openslx", "pvs2client")
+#define SYSTEM_SETTINGS(name) QSettings name (QSettings::IniFormat, QSettings::SystemScope, "openslx", "pvs2client")
+
+#include <QDir>
+
+namespace Util
+{
+//#
+//#
+QDir settingsDir();
+//#
+//#
+}
+
+#endif /* UTIL_H_ */
diff --git a/src/client/vnc/vncserver.cpp b/src/client/vnc/vncserver.cpp
new file mode 100644
index 0000000..2b49b8e
--- /dev/null
+++ b/src/client/vnc/vncserver.cpp
@@ -0,0 +1,191 @@
+/*
+ * vncserver.cpp
+ *
+ * Created on: 24.01.2013
+ * Author: sr
+ */
+
+#include <QProcess>
+#include "vncserver.h"
+#include "../util/util.h"
+
+/*******************************************
+ * STATIC
+ *******************************************/
+
+VncServer* VncServer::me = NULL;
+
+VncServer* VncServer::instance()
+{
+ if (me == NULL)
+ me = new VncServer();
+ return me;
+}
+
+//
+static QString makePassword(int len = 10)
+{
+ char pass[len];
+ for (int i = 0; i < len; ++i)
+ pass[i] = 43 + qrand() % 80;
+ return QString::fromUtf8(pass, len);
+}
+
+// Ugly hack to get an el-cheapo platform independent sleep
+struct Sleeper : public QThread
+{
+static void msleep(unsigned long msecs) { QThread::msleep(msecs); }
+};
+
+/*******************************************
+ * INSTANCE
+ *******************************************/
+
+VncServer::VncServer() :
+ _process(NULL), _port(0), _timerId(0)
+{
+ // TODO Auto-generated constructor stub
+}
+
+VncServer::~VncServer()
+{
+ // TODO Auto-generated destructor stub
+}
+
+void VncServer::start()
+{
+ // Keep things clean
+ if (_process != NULL)
+ {
+ disconnect(_process, SIGNAL(error(QProcess::ProcessError)), this, SLOT(onError(QProcess::ProcessError)));
+ disconnect(_process, SIGNAL(finished(int)), this, SLOT(onFinished(int)));
+ }
+ this->stop();
+ // Generate passwords
+ _rwpass = makePassword();
+ _ropass = makePassword();
+ // Create new password file
+ QDir path = Util::settingsDir();
+ QString pwfile(path.absoluteFilePath("vncpass"));
+ QFile pwhandle(pwfile);
+ if (pwhandle.exists())
+ pwhandle.remove();
+ if (!pwhandle.open(QIODevice::WriteOnly))
+ {
+ qDebug() << "Could not open " << pwfile << " for writing";
+ emit started(0, _ropass, _rwpass);
+ return;
+ }
+ pwhandle.setPermissions(QFile::ReadOwner | QFile::WriteOwner);
+ pwhandle.write(_rwpass.toUtf8().constData());
+ pwhandle.write("\n");
+ pwhandle.write(_ropass.toUtf8().constData());
+ pwhandle.write("\n");
+ pwhandle.close();
+ // Create new process
+ _process = new QProcess(this);
+ connect(_process, SIGNAL(readyReadStandardOutput()), this, SLOT(onStdOut()));
+ connect(_process, SIGNAL(readyReadStandardError()), this, SLOT(onStdErr()));
+ connect(_process, SIGNAL(error(QProcess::ProcessError)), this, SLOT(onError(QProcess::ProcessError)));
+ connect(_process, SIGNAL(finished(int)), this, SLOT(onFinished(int)));
+ _timerId = startTimer(4000);
+ QStringList args;
+ args << "-forever";
+ args << "-display" << ":0";
+ args << "-passwdfile" << (QString("rm:" + pwfile));
+ args << "-shared";
+ args << "-autoport" << QString::number(54112);
+ qDebug() << "Arguments are: " << args;
+ _process->start("x11vnc",
+ args,
+ QIODevice::ReadOnly);
+}
+
+void VncServer::stop()
+{
+ if (_timerId != 0)
+ {
+ killTimer(_timerId);
+ _timerId = 0;
+ }
+ if (_process == NULL)
+ return;
+ qDebug("Stopping old VNC server.");
+ disconnect(_process, SIGNAL(readyReadStandardOutput()), this, SLOT(onStdOut()));
+ disconnect(_process, SIGNAL(readyReadStandardError()), this, SLOT(onStdErr()));
+ QProcess *process = _process;
+ _process = NULL;
+ _port = 0;
+ process->terminate();
+ for (int i = 0; i < 10 && process->state() != QProcess::NotRunning; ++i)
+ Sleeper::msleep(10);
+ if (process->state() == QProcess::Running)
+ process->kill();
+ for (int i = 0; i < 10 && process->state() != QProcess::NotRunning; ++i)
+ Sleeper::msleep(10);
+ process->deleteLater();
+}
+
+/**
+ * Overrides
+ */
+
+void VncServer::timerEvent(QTimerEvent *event)
+{
+ // Error timeout (3s), tell server that vnc setup failed
+ this->stop();
+ emit started(0, _ropass, _rwpass);
+}
+
+/**
+ * Slots
+ */
+
+void VncServer::onStdOut()
+{
+ if (_process == NULL)
+ {
+ qDebug("VncServer::onStdOut() called in bad state.");
+ return;
+ }
+ QByteArray data(_process->readAllStandardOutput());
+ qDebug() << "x11vnc: " << data;
+ if (_port <= 0)
+ {
+ const int pos = data.indexOf("PORT=", 0);
+ if (pos != -1)
+ {
+ _port = atoi(data.constData() + pos + 5);
+ qDebug() << "Got VNC port " << _port << ", ro " << _ropass << ", rw " << _rwpass;
+ emit started(_port, _ropass, _rwpass);
+ // Kill error timer, but only if port seemed valid
+ if (_timerId != 0 && _port > 0)
+ {
+ killTimer(_timerId);
+ _timerId = 0;
+ }
+ }
+ }
+}
+
+void VncServer::onStdErr()
+{
+ if (_process == NULL)
+ {
+ qDebug("VncServer::onStdErr() called in bad state.");
+ return;
+ }
+ QByteArray data(_process->readAllStandardError());
+}
+
+void VncServer::onError(QProcess::ProcessError error)
+{
+ this->stop();
+ emit started(0, _ropass, _rwpass);
+}
+
+void VncServer::onFinished(int exitCode)
+{
+ this->stop();
+ emit started(0, _ropass, _rwpass);
+}
diff --git a/src/client/vnc/vncserver.h b/src/client/vnc/vncserver.h
new file mode 100644
index 0000000..2aae49c
--- /dev/null
+++ b/src/client/vnc/vncserver.h
@@ -0,0 +1,52 @@
+/*
+ * vncserver.h
+ *
+ * Created on: 24.01.2013
+ * Author: sr
+ */
+
+#ifndef VNCSERVER_H_
+#define VNCSERVER_H_
+
+#include <QtCore>
+
+class VncServer;
+
+class VncServer : public QObject
+{
+ Q_OBJECT
+
+private:
+ QProcess *_process;
+ QString _ropass;
+ QString _rwpass;
+ int _port;
+ int _timerId;
+
+ VncServer();
+ virtual ~VncServer();
+
+ static VncServer *me;
+
+public:
+ static VncServer *instance();
+
+ void start();
+ void stop();
+
+protected:
+ void timerEvent(QTimerEvent *event);
+
+signals:
+ // Emited when started succesfully, or if startup failed. port will be <= 0 if it failed.
+ void started(int port, QString& ropass, QString& rwpass);
+
+private slots:
+ void onStdOut();
+ void onStdErr();
+ void onFinished(int exitCode);
+ void onError(QProcess::ProcessError error);
+
+};
+
+#endif /* VNCSERVER_H_ */
diff --git a/src/client/vnc/vncthread.cpp b/src/client/vnc/vncthread.cpp
new file mode 100644
index 0000000..492f970
--- /dev/null
+++ b/src/client/vnc/vncthread.cpp
@@ -0,0 +1,314 @@
+/*
+ # Copyright (c) 2009, 2010 - OpenSLX Project, Computer Center University of
+ # Freiburg
+ #
+ # This program is free software distributed under the GPL version 2.
+ # See http://openslx.org/COPYING
+ #
+ # If you have any feedback please consult http://openslx.org/feedback and
+ # send your suggestions, praise, or complaints to feedback@openslx.org
+ #
+ # General information about OpenSLX can be found at http://openslx.org/
+ # -----------------------------------------------------------------------------
+ # vncClientThread.cpp
+ # - Connection to remove vnc server
+ # - Emits Qt signal on framebuffer updates
+ # -----------------------------------------------------------------------------
+ */
+
+#include "vncthread.h"
+#include <QPainter>
+
+#include <netinet/tcp.h>
+
+// greatest common divisor
+static int gcd(int a, int b)
+{
+ if (b == 0)
+ return a;
+ return gcd(b, a % b);
+}
+
+VncThread::VncThread(QString host, int port, QString passwd, int quality) :
+ QThread(), _frameBuffer(NULL), _painter(NULL), _hasNewLocalSize(false), _run(true)
+{
+ _srcStepX = _srcStepY = _dstStepX = _dstStepY = 0;
+ _host = host;
+ _port = port;
+ _passwd = passwd;
+ _quality = quality;
+ _client = NULL;
+ _connected = false;
+ moveToThread(this);
+}
+
+// ALWAYS delete this class from another thread using delete, not deleteLater, or you will deadlock the thread
+VncThread::~VncThread()
+{
+ qDebug("VNC worker destructor called, waiting for thread finishing...");
+ _run = false;
+ while (this->isRunning())
+ this->msleep(10);
+ qDebug("Thread ended.");
+ if (_frameBuffer)
+ delete[] _frameBuffer;
+ if (_client != NULL)
+ {
+ if (_client->sock != -1)
+ ::close(_client->sock);
+ _client->frameBuffer = NULL;
+ rfbClientCleanup(_client);
+ }
+ if (_painter != NULL)
+ delete _painter;
+}
+
+// Calc matching pixel borders for both resolutions to prevent artifacts through bilinear scaling
+void VncThread::calcScaling()
+{
+ if (_localSize.isEmpty() || _localSize.width() == 0 || _localSize.height() == 0)
+ return;
+ if (_clientSize.isEmpty() || _clientSize.width() == 0 || _clientSize.height() == 0)
+ return;
+ const int gcdX = gcd(_localSize.width(), _clientSize.width());
+ const int gcdY = gcd(_localSize.height(), _clientSize.height());
+ _srcStepX = _clientSize.width() / gcdX;
+ _srcStepY = _clientSize.height() / gcdY;
+ _dstStepX = _localSize.width() / gcdX;
+ _dstStepY = _localSize.height() / gcdY;
+ qDebug() << "Scaling updated to " << _clientSize << " -> " << _localSize;
+ emit imageUpdated(0, 0, _localSize.width(), _localSize.height());
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Public
+
+void VncThread::setTargetSize(const QSize size)
+{
+ if (_localSize == size)
+ return;
+ qDebug() << "Setting target size to " << size;
+ QMutexLocker lock(&_mutex);
+ _newLocalSize = size;
+ _hasNewLocalSize = true;
+}
+
+void VncThread::run()
+{
+ qDebug("[%s] VNC client started.", metaObject()->className());
+ qDebug("[%s] Host: '%s' Port: %i Passwd: '%s' Quality: %i", metaObject()->className(), qPrintable(_host), _port,
+ qPrintable(_passwd), _quality);
+
+ // setup network
+ _client = rfbGetClient(8, 3, 4);
+ _client->MallocFrameBuffer = &frameBufferHandler;
+ _client->canHandleNewFBSize = true;
+ free(_client->serverHost); // in rfbGetClient, serverHost is assigned strdup(""), so free that first.
+ _client->serverHost = strdup(_host.toUtf8().constData());
+ _client->desktopName = NULL;
+ _client->serverPort = _port;
+ _client->GetPassword = &passwdHandler;
+ _client->GotFrameBufferUpdate = &updateImage;
+ _client->frameBuffer = NULL;
+
+ // save this instance in vnc-struct for callbacks
+ rfbClientSetClientData(_client, 0, this);
+
+ // start client
+ if (!rfbInitClient(_client, NULL, NULL))
+ {
+ _client = NULL; // !!! <- if you don't do this you will get a segfault later when you try to clean up _client, as rfbInitClient already did so
+ this->stop();
+ return;
+ }
+
+ qDebug("[%s] Connection successful!", metaObject()->className());
+ int one = 1;
+ setsockopt(_client->sock, SOL_TCP, TCP_NODELAY, &one, sizeof(one));
+ one = 1;
+ setsockopt(_client->sock, SOL_TCP, TCP_QUICKACK, &one, sizeof(one));
+
+ // Main VNC event loop
+ emit projectionStarted();
+ while (_run)
+ {
+ _connected = true;
+ const int i = WaitForMessage(_client, 100 * 1000); // wait 100ms for message. returns -1 on error/disconnect, 0 if nothing happened, 1 if new data arrived
+ if (i < 0)
+ break;
+ if (i > 0 && !HandleRFBServerMessage(_client))
+ break;
+
+ if (_hasNewLocalSize)
+ {
+ QMutexLocker lock(&_mutex);
+ _hasNewLocalSize = false;
+ _localSize = _newLocalSize;
+ if (_painter != NULL)
+ delete _painter;
+ _imgScaled = QImage(_localSize, QImage::Format_RGB32);
+ _painter = new QPainter(&_imgScaled);
+ this->calcScaling();
+ }
+
+ /*
+ //work yourself through event queue and fire every event...
+ while (!_eventQueue.isEmpty()) {
+ SomeEvent* event = _eventQueue.dequeue();
+ event->fire(_client);
+ delete event;
+ }*/
+ }
+
+ _connected = false;
+ qDebug("[%s] VNC client stopped.", metaObject()->className());
+}
+
+const QString VncThread::getDesktopName() const
+{
+ if (_client == NULL || _client->desktopName == NULL)
+ return QString();
+ return QString(_client->desktopName);
+}
+
+void VncThread::mouseEvent(int x, int y, int buttonMask)
+{
+ //QMutexLocker lock(&mutex);
+ if (!_run)
+ return;
+
+ _eventQueue.enqueue(new PointerEvent(x, y, buttonMask));
+}
+
+void VncThread::keyEvent(int key, bool pressed)
+{
+ //QMutexLocker lock(&mutex);
+ if (!_run)
+ return;
+
+ _eventQueue.enqueue(new KeyEvent(key, pressed));
+}
+
+void VncThread::processImageUpdate(const int x, const int y, const int w, const int h)
+{
+ if (_srcStepX > 1 || _srcStepY > 1)
+ {
+ // Scaling is required as vnc server and client are using different resolutions
+ // Calc section offsets first
+ const int startX = x / _srcStepX;
+ const int startY = y / _srcStepY;
+ const int endX = (x + w - 1) / _srcStepX + 1;
+ const int endY = (y + h - 1) / _srcStepY + 1;
+ // Now pixel offsets for source
+ const int srcX = startX * _srcStepX;
+ const int srcY = startY * _srcStepY;
+ const int srcW = endX * _srcStepX - srcX;
+ const int srcH = endY * _srcStepY - srcY;
+ // Pixel offsets for destination
+ const int dstX = startX * _dstStepX;
+ const int dstY = startY * _dstStepY;
+ const int dstW = endX * _dstStepX - dstX;
+ const int dstH = endY * _dstStepY - dstY;
+ // Rescale
+ if (_painter != NULL)
+ {
+ QImage scaled(
+ _img.copy(srcX, srcY, srcW, srcH).scaled(dstW, dstH, Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
+ _painter->drawImage(dstX, dstY, scaled, 0, 0, dstW, dstH);
+ emit imageUpdated(dstX, dstY, dstW, dstH);
+ }
+ }
+ else
+ {
+ // Same resolution, nothing to do
+ emit imageUpdated(x, y, w, h);
+ }
+}
+
+// *** callback stuff ***
+
+// the vnc lib is requesting the connection password
+char* VncThread::passwdHandler(rfbClient *client)
+{
+ VncThread* t = (VncThread*)rfbClientGetClientData(client, 0);
+ return strdup(t->_passwd.toUtf8());
+}
+
+// the vnc lib is telling us the size and bit depth of the remote screen
+rfbBool VncThread::frameBufferHandler(rfbClient *client)
+{
+ VncThread *t = (VncThread*)rfbClientGetClientData(client, 0);
+ const int width = client->width, height = client->height, depth = client->format.bitsPerPixel;
+ const int size = width * height * (depth / 8);
+ qDebug("[%s] Remote desktop: %ix%ix%i", t->metaObject()->className(), width, height, depth);
+
+ QMutexLocker lock(&(t->_mutex));
+
+ if (t->_frameBuffer)
+ delete[] t->_frameBuffer;
+
+ t->_frameBuffer = new uint8_t[size];
+ client->frameBuffer = t->_frameBuffer;
+ memset(client->frameBuffer, '\0', size);
+ client->format.bitsPerPixel = 32;
+ client->format.redShift = 16;
+ client->format.greenShift = 8;
+ client->format.blueShift = 0;
+ client->format.redMax = 0xff;
+ client->format.greenMax = 0xff;
+ client->format.blueMax = 0xff;
+
+ const int quality = t->_quality;
+ switch (quality)
+ {
+ case VncThread::HIGH:
+ client->appData.useBGR233 = 0;
+ client->appData.encodingsString = "copyrect zlib hextile raw";
+ client->appData.compressLevel = 4;
+ client->appData.qualityLevel = 9;
+ client->appData.scaleSetting = 0;
+ break;
+ case VncThread::MEDIUM:
+ client->appData.useBGR233 = 0;
+ client->appData.encodingsString = "copyrect tight zrle ultra zlib hextile corre rre raw";
+ client->appData.compressLevel = 7;
+ client->appData.qualityLevel = 8;
+ client->appData.scaleSetting = 0;
+ break;
+ case VncThread::LOW:
+ default:
+ client->appData.useBGR233 = 1;
+ client->appData.encodingsString = "copyrect tight zrle ultra zlib hextile corre rre raw";
+ client->appData.compressLevel = 9;
+ client->appData.qualityLevel = 1;
+ client->appData.scaleSetting = 0;
+ break;
+ }
+ SetFormatAndEncodings(client);
+
+ t->_clientSize = QSize(width, height);
+
+ t->_img = QImage(client->frameBuffer, client->width, client->height, QImage::Format_RGB32);
+
+ t->calcScaling();
+
+ return true;
+}
+
+void VncThread::updateImage(rfbClient* client, int x, int y, int w, int h)
+{
+ VncThread* t = (VncThread*)rfbClientGetClientData(client, 0);
+ t->processImageUpdate(x, y, w, h);
+}
+
+// *** event stuff ***
+
+void PointerEvent::fire(rfbClient* cl)
+{
+ SendPointerEvent(cl, _x, _y, _buttonMask);
+}
+
+void KeyEvent::fire(rfbClient* cl)
+{
+ SendKeyEvent(cl, _key, _pressed);
+}
diff --git a/src/client/vnc/vncthread.h b/src/client/vnc/vncthread.h
new file mode 100644
index 0000000..b6679b3
--- /dev/null
+++ b/src/client/vnc/vncthread.h
@@ -0,0 +1,141 @@
+/*
+ # Copyright (c) 2009, 2010 - OpenSLX Project, Computer Center University of
+ # Freiburg
+ #
+ # This program is free software distributed under the GPL version 2.
+ # See http://openslx.org/COPYING
+ #
+ # If you have any feedback please consult http://openslx.org/feedback and
+ # send your suggestions, praise, or complaints to feedback@openslx.org
+ #
+ # General information about OpenSLX can be found at http://openslx.org/
+ */
+
+#ifndef VNCCLIENTTHREAD_H_
+#define VNCCLIENTTHREAD_H_
+
+#include <QtCore>
+#include <QImage>
+#include <QThread>
+
+class QPainter;
+
+extern "C"
+{
+#include <rfb/rfbclient.h>
+}
+
+/**
+ * - START -
+ * Event classes. Not my code. Might be useful to implement remote assistance via VNC later.
+ * Code might come from the KDE VNC client.
+ */
+class SomeEvent
+{
+public:
+ virtual ~SomeEvent(){}
+ virtual void fire(rfbClient*) = 0;
+};
+
+class KeyEvent : public SomeEvent
+{
+public:
+ KeyEvent(int key, int pressed) :
+ _key(key), _pressed(pressed)
+ {
+ }
+
+ void fire(rfbClient*);
+
+private:
+ int _key;
+ int _pressed;
+};
+
+class PointerEvent : public SomeEvent
+{
+public:
+ PointerEvent(int x, int y, int buttonMask) :
+ _x(x), _y(y), _buttonMask(buttonMask)
+ {
+ }
+
+ void fire(rfbClient*);
+
+private:
+ int _x;
+ int _y;
+ int _buttonMask;
+};
+/** - END - **/
+
+/**
+ * VncThread - communicate with VNC server, scale image if necessary.
+ *
+ * As this class is derived from QThread and overrides the run() method,
+ * it does not have an event-loop. Do NOT try to add any slots to it.
+ * It will NOT be able to receive signals. Emitting signals is fine though.
+ */
+class VncThread : public QThread
+{
+Q_OBJECT
+
+private:
+ rfbClient *_client;
+ quint8 *_frameBuffer;
+
+ QString _host;
+ int _port;
+ QString _passwd;
+ int _quality;
+ QQueue<SomeEvent*> _eventQueue;
+
+ QPainter *_painter;
+ QImage _img;
+ QImage _imgScaled;
+ QSize _clientSize;
+ QSize _localSize;
+ QMutex _mutex;
+
+ QSize _newLocalSize;
+ volatile bool _hasNewLocalSize;
+
+ int _srcStepX, _srcStepY, _dstStepX, _dstStepY;
+
+ bool _connected;
+ volatile bool _run;
+
+ void calcScaling();
+
+ // Callbacks for rfb lib. make them class members so the callbacks can access private members of the class.
+ static void updateImage(rfbClient *client, int x, int y, int w, int h);
+ static char* passwdHandler(rfbClient *client);
+ static rfbBool frameBufferHandler(rfbClient *client);
+
+public:
+ VncThread(QString host, int port, QString passwd, int quality);
+ // Do NOT delete this class directly. use VncThread::destroy() instead!
+ ~VncThread();
+
+ const QImage& getImage() const { if (_srcStepX > 1 || _srcStepY > 1) return _imgScaled; return _img; }
+ const QSize& getSourceSize() const { return _clientSize; }
+ const QString getDesktopName() const;
+ void processImageUpdate(const int x, const int y, const int w, const int h);
+ void mouseEvent(int x, int y, int buttonMask);
+ void keyEvent(int key, bool pressed);
+ const bool isConnected() const { return _connected; }
+ void stop() { _run = false; }
+ void setTargetSize(const QSize size);
+ void run();
+
+ int const static HIGH = 0;
+ int const static MEDIUM = 1;
+ int const static LOW = 2;
+
+signals:
+ void imageUpdated(const int x, const int y, const int w, const int h);
+ void projectionStarted();
+
+};
+
+#endif /* VNCCLIENTTHREAD_H_ */
diff --git a/src/client/vnc/vncwindow.cpp b/src/client/vnc/vncwindow.cpp
new file mode 100644
index 0000000..d4f6d40
--- /dev/null
+++ b/src/client/vnc/vncwindow.cpp
@@ -0,0 +1,277 @@
+/*
+ # Copyright (c) 2009, 2010 - OpenSLX Project, Computer Center University of
+ # Freiburg
+ #
+ # This program is free software distributed under the GPL version 2.
+ # See http://openslx.org/COPYING
+ #
+ # If you have any feedback please consult http://openslx.org/feedback and
+ # send your suggestions, praise, or complaints to feedback@openslx.org
+ #
+ # General information about OpenSLX can be found at http://openslx.org/
+ # -----------------------------------------------------------------------------
+ # clientVNCViewer.cpp
+ # - connetct to vnc server and show remote screen (window/full)
+ # -----------------------------------------------------------------------------
+ */
+
+#include "vncwindow.h"
+#include "vncthread.h"
+
+VncWindow::VncWindow(QWidget *parent) :
+ QDialog(parent), _vncWorker(NULL), _viewOnly(true), _buttonMask(0), _clientId(0)
+{
+ //
+}
+
+VncWindow::~VncWindow()
+{
+ close();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Public
+
+void VncWindow::open(const QString& host, int port, const QString& passwd, bool ro, bool fullscreen, const QString& caption, const int clientId)
+{
+ // start thread for vnc-updates
+ this->onThreadFinished();
+ _clientId = clientId;
+ _vncWorker = new VncThread(host, port, passwd, 1);
+ connect(_vncWorker, SIGNAL(finished()), this, SLOT(onThreadFinished()), Qt::QueuedConnection);
+ connect(_vncWorker, SIGNAL(projectionStarted()), this, SLOT(onProjectionStarted()), Qt::QueuedConnection);
+ _vncWorker->start(QThread::LowPriority);
+ //_rfbclient = _thread->getRfbClient();
+ //installEventFilter(this);
+ setMouseTracking(true); // get mouse events even when there is no mousebutton pressed
+ setFocusPolicy(Qt::WheelFocus); //needed?!?
+
+ setWindowTitle(caption);
+
+ setAttribute(Qt::WA_OpaquePaintEvent);
+
+ if (fullscreen)
+ {
+ setWindowFlags(Qt::WindowStaysOnTopHint);
+ showFullScreen();
+ activateWindow();
+ raise();
+ }
+ else
+ {
+ resize(800, 600);
+ showNormal();
+ }
+
+ this->show();
+ _vncWorker->setTargetSize(this->size());
+
+ connect(_vncWorker, SIGNAL(imageUpdated(const int, const int, const int, const int)), this,
+ SLOT(onUpdateImage(const int, const int, const int, const int)),
+ Qt::QueuedConnection);
+}
+
+void VncWindow::closeEvent(QCloseEvent *e)
+{
+ e->ignore();
+ qDebug("Closing VNC viewer window.");
+ this->setVisible(false);
+ this->onThreadFinished();
+ emit running(false, _clientId);
+}
+
+void VncWindow::onUpdateImage(const int x, const int y, const int w, const int h)
+{
+ this->repaint(x, y, w, h);
+}
+
+/**
+ * Thread finished, clean up and close window
+ */
+void VncWindow::onThreadFinished()
+{
+ if (_vncWorker)
+ {
+ disconnect(_vncWorker, SIGNAL(imageUpdated(const int, const int, const int, const int)), this,
+ SLOT(onUpdateImage(const int, const int, const int, const int)));
+ disconnect(_vncWorker, SIGNAL(finished()), this, SLOT(onThreadFinished()));
+ _vncWorker->stop();
+ delete _vncWorker;
+ _vncWorker = NULL;
+ this->close();
+ }
+}
+
+/**
+ * VNC Thread successfully connected to remote end - projection will start
+ */
+void VncWindow::onProjectionStarted()
+{
+ emit running(true, _clientId);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Protected
+
+void VncWindow::paintEvent(QPaintEvent *event)
+{
+ const QRect &r = event->rect();
+ this->draw(r.left(), r.top(), r.width(), r.height());
+ event->accept();
+}
+
+void VncWindow::resizeEvent(QResizeEvent* event)
+{
+ _vncWorker->setTargetSize(event->size());
+}
+
+void VncWindow::draw(const int x, const int y, const int w, const int h)
+{
+ if (_vncWorker == NULL)
+ return;
+ QPainter painter(this);
+ painter.drawImage(x, y, _vncWorker->getImage(), x, y, w, h);
+ //painter.drawRect(x,y,w,h); // for debugging updated area
+}
+
+//returns true if event was processed
+/*bool VncWindow::event(QEvent *event)
+ {
+ switch (event->type()) {
+ case QEvent::KeyPress:
+ case QEvent::KeyRelease:
+
+ keyEventHandler(static_cast<QKeyEvent*>(event));
+ return true;
+ break;
+ case QEvent::MouseButtonDblClick:
+ case QEvent::MouseButtonPress:
+ case QEvent::MouseButtonRelease:
+ case QEvent::MouseMove:
+ mouseEventHandler(static_cast<QMouseEvent*>(event));
+ return true;
+ break;
+ case QEvent::Wheel:
+ wheelEventHandler(static_cast<QWheelEvent*>(event));
+ return true;
+ break;
+ default:
+ return false;
+ }
+ }*/
+
+//handles mouseevents
+void VncWindow::mouseEventHandler(QMouseEvent *e)
+{
+ if (e->type() != QEvent::MouseMove)
+ {
+ if ((e->type() == QEvent::MouseButtonPress) || (e->type() == QEvent::MouseButtonDblClick))
+ {
+ if (e->button() & Qt::LeftButton)
+ _buttonMask |= 0x01;
+ if (e->button() & Qt::MidButton)
+ _buttonMask |= 0x02;
+ if (e->button() & Qt::RightButton)
+ _buttonMask |= 0x04;
+ }
+ else if (e->type() == QEvent::MouseButtonRelease)
+ {
+ if (e->button() & Qt::LeftButton)
+ _buttonMask &= 0xfe;
+ if (e->button() & Qt::MidButton)
+ _buttonMask &= 0xfd;
+ if (e->button() & Qt::RightButton)
+ _buttonMask &= 0xfb;
+ }
+ }
+ _vncWorker->mouseEvent(e->x(), e->y(), _buttonMask);
+}
+
+//handles mousewheel
+void VncWindow::wheelEventHandler(QWheelEvent *event)
+{
+ int eb = 0;
+ if (event->delta() < 0)
+ eb |= 0x10;
+ else
+ eb |= 0x8;
+
+ const int x = event->x();
+ const int y = event->y();
+
+ _vncWorker->mouseEvent(x, y, eb | _buttonMask);
+ _vncWorker->mouseEvent(x, y, _buttonMask);
+}
+
+//Handles keypress
+void VncWindow::keyEventHandler(QKeyEvent *e)
+{
+ rfbKeySym k = e->nativeVirtualKey();
+
+ // do not handle Key_Backtab separately because the Shift-modifier
+ // is already enabled
+ if (e->key() == Qt::Key_Backtab)
+ {
+ k = XK_Tab;
+ }
+
+ const bool pressed = (e->type() == QEvent::KeyPress);
+
+ // handle modifiers
+ if (k == XK_Shift_L || k == XK_Control_L || k == XK_Meta_L || k == XK_Alt_L)
+ {
+ if (pressed)
+ {
+ _modkeys[k] = true;
+ }
+ else if (_modkeys.contains(k))
+ {
+ _modkeys.remove(k);
+ }
+ else
+ {
+ unpressModifiers();
+ }
+ }
+
+ if (k)
+ {
+ _vncWorker->keyEvent(k, pressed);
+ }
+}
+
+void VncWindow::keyPressEvent(QKeyEvent* event)
+{
+ if (event->key() == Qt::Key_Escape)
+ this->close();
+}
+
+//removes modifier keys which have been pressed
+void VncWindow::unpressModifiers()
+{
+ const QList<unsigned int> keys = _modkeys.keys();
+ QList<unsigned int>::const_iterator it = keys.constBegin();
+ while (it != keys.end())
+ {
+ _vncWorker->keyEvent(*it, false);
+ it++;
+ }
+ _modkeys.clear();
+}
+
+//(QT Function) Filters events, if _viewOnly is set, true is returned and the event is ignored
+//TODO use this function when implementing viewonly switch
+bool VncWindow::eventFilter(QObject *obj, QEvent *event)
+{
+ if (_viewOnly)
+ {
+ if (event->type() == QEvent::KeyPress || event->type() == QEvent::KeyRelease
+ || event->type() == QEvent::MouseButtonDblClick || event->type() == QEvent::MouseButtonPress
+ || event->type() == QEvent::MouseButtonRelease || event->type() == QEvent::Wheel
+ || event->type() == QEvent::MouseMove)
+ return true;
+ }
+
+ return false;
+ //return RemoteView::eventFilter(obj, event);
+}
diff --git a/src/client/vnc/vncwindow.h b/src/client/vnc/vncwindow.h
new file mode 100644
index 0000000..3a73a8e
--- /dev/null
+++ b/src/client/vnc/vncwindow.h
@@ -0,0 +1,73 @@
+/*
+ # Copyright (c) 2009, 2010 - OpenSLX Project, Computer Center University of
+ # Freiburg
+ #
+ # This program is free software distributed under the GPL version 2.
+ # See http://openslx.org/COPYING
+ #
+ # If you have any feedback please consult http://openslx.org/feedback and
+ # send your suggestions, praise, or complaints to feedback@openslx.org
+ #
+ # General information about OpenSLX can be found at http://openslx.org/
+ */
+
+#ifndef CLIENTVNCVIEWER_H_
+#define CLIENTVNCVIEWER_H_
+
+#include <QtGui>
+#include <QMouseEvent>
+
+class VncThread;
+class QPainter;
+
+// Definition of key modifier mask constants
+#define KMOD_Alt_R 0x01
+#define KMOD_Alt_L 0x02
+#define KMOD_Meta_L 0x04
+#define KMOD_Control_L 0x08
+#define KMOD_Shift_L 0x10
+
+class VncWindow : public QDialog
+{
+Q_OBJECT
+
+public:
+ VncWindow(QWidget *parent = 0);
+ virtual ~VncWindow();
+
+protected slots:
+ void onUpdateImage(const int x, const int y, const int w, const int h);
+ void onThreadFinished();
+ void onProjectionStarted();
+
+ void open(const QString& host, int port, const QString& passwd, bool ro, bool fullscreen, const QString& caption, const int clientId);
+
+signals:
+ void running(const bool isRunning, const int clientId);
+
+
+protected:
+ void draw(const int x, const int y, const int w, const int h);
+ void paintEvent(QPaintEvent *event);
+ void resizeEvent(QResizeEvent* event);
+ void closeEvent(QCloseEvent *e);
+ //bool event(QEvent *event);
+ //bool eventFilter(QObject *obj, QEvent *event);
+
+private:
+ VncThread *_vncWorker;
+ bool _viewOnly;
+ int _buttonMask;
+ QMap<unsigned int, bool> _modkeys;
+ int _clientId;
+
+ bool eventFilter(QObject *obj, QEvent *event);
+ void keyPressEvent(QKeyEvent* event);
+ void keyEventHandler(QKeyEvent *e);
+ void unpressModifiers();
+ void wheelEventHandler(QWheelEvent *event);
+ void mouseEventHandler(QMouseEvent *event);
+
+};
+
+#endif /* CLIENTVNCVIEWER_H_ */
diff --git a/src/server/clicklabel/clicklabel.cpp b/src/server/clicklabel/clicklabel.cpp
new file mode 100644
index 0000000..2989542
--- /dev/null
+++ b/src/server/clicklabel/clicklabel.cpp
@@ -0,0 +1,14 @@
+#include "clicklabel.h"
+
+ClickLabel::ClickLabel(QWidget *parent) : QLabel(parent)
+{
+ QFont f(this->font());
+ f.setPixelSize(20);
+ this->setFont(f);
+ this->setMaximumHeight(22);
+}
+
+void ClickLabel::mouseReleaseEvent(QMouseEvent* e)
+{
+ emit clicked();
+}
diff --git a/src/server/clicklabel/clicklabel.h b/src/server/clicklabel/clicklabel.h
new file mode 100644
index 0000000..6a05152
--- /dev/null
+++ b/src/server/clicklabel/clicklabel.h
@@ -0,0 +1,25 @@
+#ifndef _CLICKLABEL_H_
+#define _CLICKLABEL_H_
+
+#include <QtGui>
+#include <QLabel>
+
+
+class ClickLabel : public QLabel
+{
+ Q_OBJECT
+
+public:
+ ClickLabel(QWidget *parent);
+
+protected:
+ void mouseReleaseEvent(QMouseEvent* e);
+
+
+signals:
+ void clicked();
+
+};
+
+
+#endif
diff --git a/src/server/connectionframe/connectionframe.cpp b/src/server/connectionframe/connectionframe.cpp
new file mode 100644
index 0000000..1544c76
--- /dev/null
+++ b/src/server/connectionframe/connectionframe.cpp
@@ -0,0 +1,278 @@
+/*
+# Copyright (c) 2009 - OpenSLX Project, Computer Center University of Freiburg
+#
+# This program is free software distributed under the GPL version 2.
+# See http://openslx.org/COPYING
+#
+# If you have any feedback please consult http://openslx.org/feedback and
+# send your suggestions, praise, or complaints to feedback@openslx.org
+#
+# General information about OpenSLX can be found at http://openslx.org/
+# -----------------------------------------------------------------------------
+# src/gui/connectionFrame.cpp
+# -----------------------------------------------------------------------------
+*/
+
+
+#include "connectionframe.h"
+#include "../net/client.h"
+#include <QPixmap>
+#include <QImage>
+#include <cassert>
+
+static QIcon *term = NULL, *cam = NULL, *eye = NULL;
+
+static QString backgroundStyle("background-color: %1; margin: 1px; border: 1px solid black; border-radius: 6px");
+
+ConnectionFrame::ConnectionFrame(QWidget *parent, int width, int height) :
+ QGroupBox(parent), _client(NULL), _timerId(0), _timerCounter(0), _selected(false), _isTutor(false)
+{
+
+ //defines the ui-stuff
+ // load icons first
+ if (term == NULL)
+ {
+ term = new QIcon(":terminal");
+ cam = new QIcon(":cam32");
+ eye = new QIcon(":eye");
+ }
+
+ //this->setAttribute(Qt::WA_OpaquePaintEvent);
+
+ _mainLayout = new QBoxLayout(QBoxLayout::TopToBottom, this);
+ _mainLayout->setSpacing(1);
+ _mainLayout->setMargin(3);
+ _mainLayout->setAlignment(Qt::AlignHCenter);
+
+ _iconLayout = new QBoxLayout(QBoxLayout::RightToLeft, NULL);
+ _iconLayout->setSpacing(1);
+ _iconLayout->setMargin(3);
+
+ _lblUserName = new QLabel("Test", this);
+ _lblUserName->setStyleSheet(QString::fromUtf8("background-color: white; color: black;"));
+ _lblUserName->setAlignment(Qt::AlignHCenter);
+ //_lblUsername->resize(_lblUsername->width(), _lblUsername->font().pixelSize());
+
+ _lblHostName = new QLabel("PC", this);
+ _lblHostName->setStyleSheet(QString::fromUtf8("background-color: white; color: black;"));
+ _lblHostName->setAlignment(Qt::AlignHCenter);
+
+ _icoCam = addIcon(cam);
+ _icoEye = addIcon(eye);
+
+ _iconLayout->addWidget(_icoCam);
+ _iconLayout->addWidget(_icoEye);
+ _iconLayout->addStretch();
+
+ //_layout->addWidget(_imgScreen);
+ _mainLayout->addLayout(_iconLayout);
+ _mainLayout->addStretch();
+ _mainLayout->addWidget(_lblUserName);
+ _mainLayout->addWidget(_lblHostName);
+ this->setLayout(_mainLayout);
+ this->setSize(width, height);
+ this->updateColor();
+}
+
+ConnectionFrame::~ConnectionFrame()
+{
+ //
+}
+
+QLabel* ConnectionFrame::addIcon(const QIcon* icon)
+{
+ QLabel *label = new QLabel(this);
+ label->setPixmap(icon->pixmap(24, 24, QIcon::Normal, QIcon::On));
+ label->setAttribute(Qt::WA_TranslucentBackground);
+ label->hide();
+ _icons.append(label);
+ return label;
+}
+
+void ConnectionFrame::setSize(int width, int height)
+{
+ this->resize(width, height);
+}
+
+void ConnectionFrame::assignClient(Client* client)
+{
+ assert(_client == NULL);
+ connect(client, SIGNAL(destroyed(QObject*)), this, SLOT(onClientDisconnected(QObject*)));
+ connect(client, SIGNAL(thumbUpdated(Client*, const QPixmap&)), this, SLOT(onThumbUpdated(Client*, const QPixmap&)));
+ connect(client, SIGNAL(vncServerStateChange(Client*)), this, SLOT(onVncServerStateChange(Client*)));
+ connect(client, SIGNAL(vncClientStateChange(Client*)), this, SLOT(onVncClientStateChange(Client*)));
+ _client = client;
+ _computerId = client->computerId();
+ _lblHostName->setText(client->ip());
+ _lblHostName->setToolTip(client->host());
+ _lblUserName->setText(client->name());
+ showDefaultThumb();
+ if (_timerId == 0)
+ _timerId = startTimer(1000 + qrand() % 150);
+ this->updateColor();
+}
+
+void ConnectionFrame::showDefaultThumb()
+{
+ const int width = this->width() - 6;
+ const int height = this->height() - 8 - _lblHostName->height() - _lblUserName->height();
+ _remoteScreen = term->pixmap(width, height, QIcon::Normal, QIcon::On);
+ this->repaint();
+ //_imgScreen->setPixmap(_remoteScreen);
+}
+
+void ConnectionFrame::mouseReleaseEvent(QMouseEvent* event)
+{
+ event->accept();
+ if (event->button() == Qt::LeftButton)
+ {
+ QApplication::setOverrideCursor(QCursor(Qt::OpenHandCursor));
+ if (this->pos() != _previousPosition) {
+ qDebug("Moved");
+ emit frameMoved(this);
+ }
+ else
+ {
+ qDebug("Clicked");
+ emit clicked(this);
+ }
+ }
+}
+
+void ConnectionFrame::enterEvent(QEvent* event)
+{
+ QApplication::setOverrideCursor(QCursor(Qt::OpenHandCursor));
+ event->accept();
+}
+
+void ConnectionFrame::leaveEvent(QEvent* event)
+{
+ QApplication::setOverrideCursor(QCursor(Qt::ArrowCursor));
+ event->accept();
+}
+
+void ConnectionFrame::mousePressEvent(QMouseEvent *event)
+{
+ if (event->button() == Qt::RightButton)
+ {
+ // Menu...
+ }
+ else
+ {
+ _clickPoint = event->pos();
+ _previousPosition = this->pos();
+ QApplication::setOverrideCursor(QCursor(Qt::ClosedHandCursor));
+ }
+ // On click, the window has to be on the top-level.
+ activateWindow();
+ raise();
+ update();
+ event->accept();
+}
+
+void ConnectionFrame::mouseMoveEvent(QMouseEvent *event)
+{
+ QApplication::setOverrideCursor(QCursor(Qt::ClosedHandCursor));
+ move(mapToParent(event->pos()-_clickPoint));
+ event->accept();
+}
+
+void ConnectionFrame::mouseDoubleClickEvent(QMouseEvent* event)
+{
+ emit doubleClicked(this);
+ event->accept();
+}
+
+void ConnectionFrame::paintEvent(QPaintEvent *event)
+{
+ QGroupBox::paintEvent(event);
+ if (_remoteScreen.isNull())
+ return;
+ QPainter painter(this);
+ painter.drawPixmap((this->width() - _remoteScreen.width()) / 2, 4, _remoteScreen);
+ event->accept();
+}
+
+void ConnectionFrame::timerEvent(QTimerEvent* event)
+{
+ if (_client == NULL)
+ return;
+ ++_timerCounter;
+ if (_client->isActiveVncServer() && _timerCounter % 5 != 0)
+ return;
+ const int width = this->width() - 8;
+ const int height = this->height() - 9 - _lblHostName->height() - _lblUserName->height();
+ _client->requestThumb(width, height);
+}
+
+void ConnectionFrame::setSelection(bool selected)
+{
+ if (_selected == selected)
+ return;
+ _selected = selected;
+ this->updateColor();
+}
+
+void ConnectionFrame::updateColor()
+{
+ if (_client == NULL)
+ {
+ // Unconnected Frame
+ if (_selected)
+ this->setStyleSheet(backgroundStyle.arg("rgb(140, 140, 170)"));
+ else
+ this->setStyleSheet(backgroundStyle.arg("rgb(140, 140, 140)"));
+ for (QList<QLabel*>::iterator it(_icons.begin()); it != _icons.end(); ++it)
+ (**it).hide();
+ return;
+ }
+ _icoCam->setVisible(_client->isActiveVncServer());
+ _icoEye->setVisible(_client->isActiveVncClient());
+
+ // Normal client, no special stuff active
+
+ if (_selected && _isTutor)
+ this->setStyleSheet(backgroundStyle.arg("rgb(255, 220, 180)"));
+ else if (_isTutor)
+ this->setStyleSheet(backgroundStyle.arg("rgb(255, 180, 180)"));
+ else if (_selected)
+ this->setStyleSheet(backgroundStyle.arg("rgb(180, 180, 210)"));
+ else
+ this->setStyleSheet(backgroundStyle.arg("rgb(180, 180, 180)"));
+}
+
+/**
+ * Slots
+ */
+
+void ConnectionFrame::onClientDisconnected(QObject* client)
+{
+ assert(client == _client);
+ if (_timerId != 0)
+ {
+ killTimer(_timerId);
+ _timerId = 0;
+ }
+ _client = NULL;
+ _lblUserName->setText(QString());
+ showDefaultThumb();
+ this->updateColor();
+}
+
+void ConnectionFrame::onThumbUpdated(Client* client, const QPixmap& thumb)
+{
+ assert(client == _client);
+ _remoteScreen = thumb;
+ //_imgScreen->setPixmap(_remoteScreen);
+ this->repaint();
+}
+
+void ConnectionFrame::onVncServerStateChange(Client* client)
+{
+ this->updateColor();
+}
+
+void ConnectionFrame::onVncClientStateChange(Client* client)
+{
+ this->updateColor();
+}
diff --git a/src/server/connectionframe/connectionframe.h b/src/server/connectionframe/connectionframe.h
new file mode 100644
index 0000000..2b78056
--- /dev/null
+++ b/src/server/connectionframe/connectionframe.h
@@ -0,0 +1,77 @@
+#ifndef _CONNECTIONFRAME_H_
+#define _CONNECTIONFRAME_H_
+#include <QtGui>
+
+class Client;
+
+class ConnectionFrame : public QGroupBox
+{
+
+Q_OBJECT
+
+private:
+
+ QString _computerId;
+
+ QBoxLayout *_mainLayout;
+ QBoxLayout *_iconLayout;
+ QLabel *_lblUserName;
+ QLabel *_lblHostName;
+
+ QLabel *_icoCam, *_icoEye;
+ QList<QLabel*> _icons;
+
+ QPixmap _remoteScreen;
+
+ QPoint _clickPoint;
+ QPoint _previousPosition;
+
+ Client *_client;
+
+ int _timerId, _timerCounter;
+ bool _selected;
+ bool _isTutor;
+
+ void showDefaultThumb();
+ void updateColor();
+ QLabel* addIcon(const QIcon* icon);
+
+public:
+ ConnectionFrame(QWidget* parent, int width, int height);
+ virtual ~ConnectionFrame();
+
+ const QPixmap& getFramePixmap() const { return _remoteScreen; }
+ void setSize(int width, int height);
+ void assignClient(Client *client);
+ void setSelection(bool selected);
+ const inline bool selected() const { return _selected; }
+
+ const QString& computerId() const { return _computerId; }
+ Client* client() const { return _client; }
+
+ inline const bool isTutor() const { return _isTutor; }
+ inline void setTutor(bool b) { _isTutor = b; }
+
+protected:
+ void mouseDoubleClickEvent(QMouseEvent* event);
+ void mouseReleaseEvent(QMouseEvent* e);
+ void enterEvent(QEvent* event);
+ void leaveEvent(QEvent* event);
+ void mousePressEvent(QMouseEvent* event);
+ void mouseMoveEvent(QMouseEvent* event);
+ void paintEvent(QPaintEvent *event);
+ void timerEvent(QTimerEvent* event);
+
+signals:
+ void frameMoved(ConnectionFrame* frame);
+ void doubleClicked(ConnectionFrame* frame);
+ void clicked(ConnectionFrame* frame);
+
+private slots:
+ void onClientDisconnected(QObject* client);
+ void onThumbUpdated(Client* client, const QPixmap& thumb);
+ void onVncServerStateChange(Client* client);
+ void onVncClientStateChange(Client* client);
+};
+
+#endif
diff --git a/src/server/main.cpp b/src/server/main.cpp
new file mode 100644
index 0000000..e7c709a
--- /dev/null
+++ b/src/server/main.cpp
@@ -0,0 +1,41 @@
+#include "mainwindow/mainwindow.h"
+#include "util/util.h"
+
+int main(int argc, char** argv)
+{
+ QApplication app(argc, argv);
+ app.setOrganizationName("openslx");
+ app.setOrganizationDomain("openslx.org");
+ app.setApplicationName("pvsmgr");
+
+ qsrand((uint)QDateTime::currentMSecsSinceEpoch());
+
+ // Make sure settings directory exists
+ do {
+ USER_SETTINGS(settings);
+ QFileInfo fi(settings.fileName());
+ QDir path(fi.path());
+ qDebug() << "Settings directory is " << fi.path();
+ if (!path.exists())
+ path.mkpath(path.absolutePath());
+ // Now check if settings file exists. If not, copy system default (if available)
+ if (!fi.exists())
+ {
+ SYSTEM_SETTINGS(sys);
+ QFileInfo sysfi(sys.fileName());
+ if (sysfi.exists())
+ {
+ if (!QFile::copy(sys.fileName(), settings.fileName()))
+ qDebug() << "Copying default settings from " << sys.fileName() << " to " << settings.fileName() << " failed.";
+ }
+ }
+ } while (0);
+
+ // use system locale as language to translate gui
+ QTranslator translator;
+ translator.load(":pvsmgr");
+ app.installTranslator(&translator);
+
+ MainWindow pvsmgr;
+ return app.exec();
+}
diff --git a/src/server/mainwindow/mainwindow.cpp b/src/server/mainwindow/mainwindow.cpp
new file mode 100644
index 0000000..8c57b91
--- /dev/null
+++ b/src/server/mainwindow/mainwindow.cpp
@@ -0,0 +1,633 @@
+/*
+ # Copyright (c) 2009 - OpenSLX Project, Computer Center University of Freiburg
+ #
+ # This program is free software distributed under the GPL version 2.
+ # See http://openslx.org/COPYING
+ #
+ # If you have any feedback please consult http://openslx.org/feedback and
+ # send your suggestions, praise, or complaints to feedback@openslx.org
+ #
+ # General information about OpenSLX can be found at http://openslx.org/
+ # -----------------------------------------------------------------------------
+ # mainWindow.cpp
+ This is the Main class for the pvsManager. The GUI is constructed here.
+ # -----------------------------------------------------------------------------
+ */
+// Self
+#include "mainwindow.h"
+// QT stuff
+#include <QtGui>
+#include <QFileDialog>
+// Other custom UI elements
+#include "../clicklabel/clicklabel.h"
+#include "../sessionnamewindow/sessionnamewindow.h"
+#include "../connectionframe/connectionframe.h"
+// Network
+#include "../net/listenserver.h"
+#include "../net/client.h"
+#include "../net/discoverylistener.h"
+#include "../../shared/networkmessage.h"
+// Others
+#include "../../shared/settings.h"
+#include "../util/util.h"
+#include "../util/global.h"
+// Auto-generated ui class
+#include "ui_mainwindow.h"
+
+MainWindow::MainWindow(QWidget* parent) :
+ QMainWindow(parent), ui(new Ui::MainWindow), _tbIconSize(24), _tbArea(Qt::LeftToolBarArea),
+ _buttonBlockTime(0)
+
+{
+ _sessionNameWindow = new SessionNameWindow(this);
+ ui->setupUi(this);
+
+ Global::setSessionName("1234");
+
+ //conWin = new ConnectionWindow(ui->widget);
+ //ui->VconWinLayout->addWidget(conWin);
+ //conList = new ConnectionList(ui->ClWidget);
+ //ui->ClientGLayout->addWidget(conList);
+
+ // Show only session name label, not textbox
+ _sessionNameLabel = new ClickLabel(this);
+ ui->mainLayout->addWidget(_sessionNameLabel);
+
+ ui->frmRoom->setStyleSheet("background-color:#444");
+
+ // toolbar and actions in pvsmgr
+ ui->action_Exit->setStatusTip(tr("Exit"));
+ ui->action_Lock->setStatusTip(tr("Lock or Unlock all Clients"));
+
+ // Close button in tool bar
+ connect(ui->action_Exit, SIGNAL(triggered()), this, SLOT(onButtonExit()));
+ connect(ui->action_BroadcastScreen, SIGNAL(triggered()), this, SLOT(onButtonBroadcast()));
+ connect(ui->action_Lock, SIGNAL(toggled(bool)), this, SLOT(onButtonLock(bool)));
+ // Clicking the session name label shows the edit field for it
+ connect(_sessionNameLabel, SIGNAL(clicked()), this, SLOT(onSessionNameClick()));
+ // Listen to updates to the session name through the session name window
+ connect(_sessionNameWindow, SIGNAL(updateSessionName()), this,
+ SLOT(onSessionNameUpdate()));
+
+ setAttribute(Qt::WA_QuitOnClose);
+ setUnifiedTitleAndToolBarOnMac(true);
+ this->showMaximized(); // show the Mainwindow maximized
+
+ _tilesX = 9;
+ _tilesY = 7;
+ _tileWidth = 10;
+ _tileHeight = 10;
+
+ _timerId = 0;
+ _timerTimeout = 0;
+
+ _listenServer = new ListenServer(CLIENT_PORT);
+ connect(_listenServer, SIGNAL(newClient(Client*)), this, SLOT(onClientConnected(Client*)));
+ _discoveryListener = new DiscoveryListener();
+
+ // Finally
+ this->onSessionNameUpdate();
+ _timerId = startTimer(10);
+ _timerTimeout = 8;
+}
+
+MainWindow::~MainWindow()
+{
+ _sessionNameLabel->deleteLater();
+ delete ui;
+}
+
+void MainWindow::placeFrameInFreeSlot(ConnectionFrame* frame)
+{
+ // Get occupied cell of each frame and store status in an array
+ const int elems = _tilesX * _tilesY;
+ int currentIndex = 0;
+ bool grid[elems];
+ memset(grid, 0, sizeof(bool) * elems); // set everything to false
+ for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it)
+ {
+ const QPoint &oldpos = (*it)->frameGeometry().topLeft();
+ const int tx = oldpos.x() / _tileWidth;
+ const int ty = oldpos.y() / _tileHeight;
+ const int index = tx + ty * _tilesX;
+ if (frame == *it)
+ {
+ // Current frame is the frame to place, remember its old index
+ currentIndex = index;
+ continue;
+ }
+ if (index < 0 || index >= elems)
+ {
+ // Current frame is out of bounds, place in top left corner
+ qDebug("Move A");
+ (*it)->move(0, 0);
+ grid[0] = true;
+ continue;
+ }
+ // Just mark cell as occupied in array
+ grid[index] = true;
+ }
+ // Safety
+ if (currentIndex < 0 || currentIndex >= elems)
+ currentIndex = 0;
+ // Now place in next free cell, start looking at current position of frame
+ for (int i = 0; i < elems; ++i)
+ {
+ const int index = (i + currentIndex) % elems;
+ if (grid[index])
+ continue;
+ const int x = (index % _tilesX) * _tileWidth;
+ const int y = (index / _tilesX) * _tileHeight;
+ //qDebug() << "Index=" << index << " i=" << i << " cI=" << currentIndex << " elems=" << elems << " x=" << x << " y=" << y;
+ qDebug("Move B");
+ frame->move(x, y);
+ break;
+ }
+}
+
+ConnectionFrame* MainWindow::createFrame()
+{
+ // Allocate and resize
+ ConnectionFrame *cf = new ConnectionFrame(ui->frmRoom, _tileWidth, _tileHeight);
+ _clientFrames.append(cf);
+ cf->show();
+ connect(cf, SIGNAL(frameMoved(ConnectionFrame *)), this, SLOT(onPlaceFrame(ConnectionFrame *)));
+ connect(cf, SIGNAL(clicked(ConnectionFrame *)), this, SLOT(onFrameClicked(ConnectionFrame *)));
+ return cf;
+}
+
+bool MainWindow::loadPosition(QSettings& settings, const QString& id, int& x, int& y)
+{
+ settings.beginGroup("client_position");
+ const QVariant retval(settings.value(id));
+ settings.endGroup();
+ if (retval.type() != QVariant::Point)
+ return false;
+ const QPoint point(retval.toPoint());
+ x = point.x();
+ y = point.y();
+ return true;
+}
+
+void MainWindow::savePosition(ConnectionFrame *cf)
+{
+ Client *client = cf->client();
+ if (client == NULL)
+ return;
+ QPoint pos(cf->pos().x() / _tileWidth, cf->pos().y() / _tileHeight);
+ USER_SETTINGS(settings);
+ settings.beginGroup("client_position");
+ settings.setValue(client->computerId(), pos);
+ settings.endGroup();
+}
+
+/*
+ * Overridden methods
+ */
+
+void MainWindow::closeEvent(QCloseEvent* e)
+{
+ int ret = QMessageBox::question(this, "Test", "Beenden?", 0, 1, 2);
+ if (ret == 1)
+ QApplication::exit(0);
+ else
+ e->ignore();
+}
+
+void MainWindow::changeEvent(QEvent* e)
+{
+ QMainWindow::changeEvent(e);
+}
+
+void MainWindow::resizeEvent(QResizeEvent* e)
+{
+ QMainWindow::resizeEvent(e);
+ if (_timerId == 0)
+ {
+ _timerId = startTimer(5);
+ }
+ _timerTimeout = 8;
+}
+
+void MainWindow::mouseReleaseEvent(QMouseEvent* e)
+{
+ // Try to figure out if the user clicked inside the "room" frame
+ // No idea if there is a more elegant way to do this without
+ // sub-classing that frame and overriding its mouseReleaseEvent
+ const QPoint pos(ui->frmRoom->mapFrom(this, e->pos()));
+ if (pos.x() < 0 || pos.y() < 0)
+ return;
+ const QSize frame(ui->frmRoom->size());
+ if (frame.width() > pos.x() && frame.height() > pos.y())
+ {
+ for (QList<ConnectionFrame*>::iterator it = _clientFrames.begin(); it != _clientFrames.end(); ++it)
+ {
+ (**it).setSelection(false);
+ }
+ }
+}
+
+void MainWindow::timerEvent(QTimerEvent* event)
+{
+ if (event->timerId() == _timerId)
+ {
+ _timerTimeout -= 1;
+ if (_timerTimeout == 1)
+ {
+ // Move toolbar if necessary
+ const int iconSize = this->size().width() / 30 + 14;
+ const int barSpace = ui->toolBar->actions().size() * (iconSize + 8);
+ const Qt::ToolBarArea area =
+ (barSpace < this->size().height() ? Qt::LeftToolBarArea : Qt::TopToolBarArea);
+ if (_tbIconSize != iconSize)
+ {
+ _tbIconSize = iconSize;
+ ui->toolBar->setIconSize(QSize(iconSize, iconSize));
+ }
+ if (_tbArea != area)
+ {
+ _tbArea = area;
+ this->addToolBar(area, ui->toolBar);
+ }
+ return;
+ }
+ // Kill timer when done
+ if (_timerTimeout <= 0)
+ {
+ killTimer(_timerId);
+ _timerId = 0;
+ // Resize all connection windows
+ if (ui->frmRoom->size().width() < 100 || ui->frmRoom->size().height() < 100 || _tilesX <= 0 || _tilesY <= 0)
+ return;
+ const int nw = ui->frmRoom->size().width() / _tilesX;
+ const int nh = ui->frmRoom->size().height() / _tilesY;
+ for (QList<ConnectionFrame*>::iterator it = _clientFrames.begin(); it != _clientFrames.end(); ++it)
+ {
+ const QPoint &oldpos = (*it)->frameGeometry().topLeft();
+ qDebug("Move C");
+ (*it)->move((oldpos.x() / _tileWidth) * nw, (oldpos.y() / _tileHeight) * nh);
+ (*it)->setSize(nw, nh);
+ }
+ _tileWidth = nw;
+ _tileHeight = nh;
+ }
+ }
+ else
+ {
+ // Unknown timer ID, kill
+ killTimer(event->timerId());
+ }
+}
+
+/*
+ * Slots
+ */
+
+void MainWindow::onPlaceFrame(ConnectionFrame* frame)
+{
+ if (_tilesX <= 0 || _tilesY <= 0)
+ return;
+ const QPoint &p = frame->frameGeometry().center();
+ const QSize &s = ui->frmRoom->geometry().size();
+ int x = (p.x() / _tileWidth) * _tileWidth;
+ int y = (p.y() / _tileHeight) * _tileHeight;
+ if (x < 0)
+ x = 0;
+ else if (x > s.width() - _tileWidth)
+ x = (_tilesX - 1) * _tileWidth;
+ if (y < 0)
+ y = 0;
+ else if (y > s.height() - _tileHeight)
+ y = (_tilesY - 1) * _tileHeight;
+ qDebug("Move D");
+ frame->move(x, y);
+ savePosition(frame);
+ const QPoint &newpos = frame->frameGeometry().topLeft();
+ for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it)
+ {
+ if (*it == frame)
+ continue;
+ if ((*it)->frameGeometry().topLeft() == newpos)
+ {
+ placeFrameInFreeSlot(*it);
+ }
+ }
+}
+
+void MainWindow::onFrameClicked(ConnectionFrame* frame)
+{
+ for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it)
+ {
+ if (*it == frame)
+ frame->setSelection(true);
+ else
+ (**it).setSelection(false);
+ }
+}
+
+void MainWindow::onSessionNameClick()
+{
+ _sessionNameWindow->show(Global::sessionName());
+}
+
+void MainWindow::onSessionNameUpdate()
+{
+ _sessionNameLabel->setText(tr("Session Name: %1 [click to edit]").arg(Global::sessionName()));
+}
+
+void MainWindow::onButtonSettings()
+{
+ // Move to any free tile
+ placeFrameInFreeSlot(createFrame());
+}
+
+void MainWindow::onButtonChat()
+{
+ /*
+ for (QList<ConnectionFrame*>::iterator it = _clientFrames.begin(); it != _clientFrames.end(); ++it) {
+ (*it)->setSize(100 + qrand() % 200);
+ }
+ */
+}
+
+void MainWindow::onButtonBroadcast()
+{
+ const qint64 now = QDateTime::currentMSecsSinceEpoch();
+ if (now < _buttonBlockTime)
+ return;
+ _buttonBlockTime = now + 3000;
+ Client *source = NULL; // the desired source (selected frame)
+ Client *oldSource = NULL; // if there is a client that is already broadcaster, save it here
+ for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it)
+ {
+ Client *c = (**it).client();
+ if ((**it).selected())
+ source = c;
+ if (c != NULL && c->isProjectionSource())
+ oldSource = c;
+ }
+ if (source == NULL && oldSource == NULL)
+ {
+ QMessageBox::information(this, tr("No Projection Source selected"), tr("You did not select any active client as the connection source."));
+ return;
+ }
+ if (oldSource != NULL)
+ {
+ // Is already broadcast source, disable
+ oldSource->setProjectionSource(false);
+ oldSource->stopVncServer();
+ if (source == NULL || source->id() == oldSource->id())
+ return;
+ }
+ source->setProjectionSource(true);
+ for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it)
+ {
+ Client *c = (**it).client();
+ if (c == NULL || c->id() == source->id())
+ continue;
+ //c->setDesiredProjectionSource(source->id());
+ c->setProjectionSource(false);
+ }
+ source->startVncServer();
+}
+
+void MainWindow::onButtonLock(bool checked)
+{
+ NetworkMessage msg;
+ msg.setField(_ID, _LOCK);
+ if (checked)
+ msg.setField("ENABLE", QByteArray("1"));
+ else
+ msg.setField("ENABLE", QByteArray("0"));
+ for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it)
+ {
+ Client *c = (**it).client();
+ if (c == NULL || (**it).isTutor())
+ continue; // Don't lock the tutor
+ c->sendMessage(msg);
+ }
+}
+
+void MainWindow::onButtonExit()
+{
+ this->close();
+}
+
+void MainWindow::onClientConnected(Client* client)
+{
+ qDebug("ListenServer told MainWindow about new connection");
+ connect(client, SIGNAL(authenticating(Client*, ClientLogin*)), this, SLOT(onClientAuthenticating(Client*, ClientLogin*)));
+ connect(client, SIGNAL(authenticated(Client*)), this, SLOT(onClientAuthenticated(Client*)));
+ connect(client, SIGNAL(vncClientStateChange(Client*)), this, SLOT(onVncClientStateChange(Client*)));
+}
+
+void MainWindow::onClientAuthenticating(Client* client, ClientLogin* request)
+{
+ disconnect(client, SIGNAL(authenticating(Client*, ClientLogin*)), this, SLOT(onClientAuthenticating(Client*, ClientLogin*)));
+ if (!request->accept) // Another receiver of that signal already rejected the client, so nothing to do
+ return;
+ bool inuse;
+ QString check = request->name;
+ int addnum = 1;
+ do
+ {
+ inuse = false;
+ for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it)
+ {
+ Client *c = (**it).client();
+ if (c == NULL)
+ continue;
+ if (!c->isAuthed())
+ continue;
+ if (c->ip() == request->ip)
+ {
+ request->accept = false;
+ return;
+ }
+ if (c->name() == check)
+ {
+ inuse = true;
+ check = request->name + " (" + QString::number(++addnum) + ")";
+ break;
+ }
+ }
+ } while (inuse && addnum < 100);
+ if (inuse)
+ request->accept = false;
+ else
+ request->name = check;
+}
+
+void MainWindow::onClientAuthenticated(Client* client)
+{
+ disconnect(client, SIGNAL(authenticated(Client*)), this, SLOT(onClientAuthenticated(Client*)));
+ connect(client, SIGNAL(vncServerStateChange(Client*)), this, SLOT(onVncServerStateChange(Client*)));
+ bool hasActiveTutor = false;
+ ConnectionFrame *deadTutor = NULL;
+ bool anyClient = false;
+ ConnectionFrame *existing = NULL;
+ for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it)
+ {
+ if ((*it)->computerId() == client->computerId())
+ existing = *it;
+ if ((*it)->client() != NULL)
+ anyClient = true;
+ if ((*it)->isTutor())
+ {
+ if ((*it)->client() == NULL)
+ deadTutor = (*it)->client();
+ else
+ hasActiveTutor = true;
+ }
+ }
+ if (!anyClient && deadTutor != NULL)
+ deadTutor->setTutor(false);
+ if (existing != NULL)
+ {
+ if (!anyClient && !hasActiveTutor)
+ existing->setTutor(true);
+ existing->assignClient(client);
+ return;
+ }
+ // New one, create
+ ConnectionFrame *cf = createFrame();
+ // Try to load last known position
+ int x, y;
+ bool ok;
+ USER_SETTINGS(usr);
+ ok = loadPosition(usr, client->computerId(), x, y);
+ if (!ok)
+ {
+ SYSTEM_SETTINGS(sys);
+ ok = loadPosition(sys, client->computerId(), x, y);
+ }
+ if (x >= _tilesX || y >= _tilesY)
+ ok = false;
+ if (ok)
+ {
+ if (x < 0)
+ x = 0;
+ if (y < 0)
+ y = 0;
+ qDebug("Move E");
+ cf->move(x * _tileWidth, y * _tileHeight);
+ onPlaceFrame(cf);
+ }
+ else
+ {
+ // Move to any free tile
+ placeFrameInFreeSlot(cf);
+ }
+ // Assign client instance
+ cf->assignClient(client);
+ // Make first active client tutor
+ if (!anyClient && !hasActiveTutor)
+ cf->setTutor(true);
+ // ################
+ NetworkMessage msg;
+ // If clients are currently locked, tell this new client
+ if (ui->action_Lock->isChecked())
+ {
+ msg.reset();
+ msg.setField(_ID, _LOCK);
+ msg.setField("ENABLE", QByteArray("1"));
+ client->sendMessage(msg);
+ }
+ // Same for VNC projections
+ for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it)
+ {
+ Client *c = (**it).client();
+ if (c != NULL && c != client && c->isActiveVncServer() && c->isProjectionSource())
+ {
+ msg.reset();
+ msg.setField(_ID, _VNCCLIENT);
+ msg.setField("HOST", c->ip());
+ msg.setField("PORT", QString::number(c->vncPort()));
+ msg.setField("ROPASS", c->vncRoPass());
+ msg.setField("CAPTION", c->name() + " @ " + c->host());
+ client->sendMessage(msg);
+ break;
+ }
+ }
+}
+
+void MainWindow::onVncServerStateChange(Client* client)
+{
+ if (client->vncPort() > 0)
+ {
+ // VNC Server started on some client - start projection on all clients interested in that client's screen
+ NetworkMessage msg;
+ msg.setField(_ID, _VNCCLIENT);
+ msg.setField("HOST", client->ip());
+ msg.setField("PORT", QString::number(client->vncPort()));
+ msg.setField("ROPASS", client->vncRoPass());
+ msg.setField("CAPTION", client->name() + " @ " + client->host());
+ for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it)
+ {
+ Client *c = (**it).client();
+ if (c == NULL)
+ continue; // Offline
+ if (c->id() == client->id() ||
+ (c->desiredProjectionSource() != client->id() && !client->isProjectionSource()))
+ continue; // Not interested
+ c->sendMessage(msg);
+ }
+ }
+ else
+ {
+ // VNC server stopped on some client or failed to start - reset local pending projection information
+ // If at least one other client seemed to be waiting for this client's screen, pop up a message
+ // on the console
+ bool wasInterested = client->isProjectionSource();
+ client->setProjectionSource(true);
+ for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it)
+ {
+ Client *c = (**it).client();
+ if (c == NULL)
+ continue;
+ if (c->desiredProjectionSource() == client->id())
+ {
+ wasInterested = true;
+ c->setDesiredProjectionSource(0);
+ }
+ }
+ if (wasInterested)
+ {
+ QMessageBox::information(this,
+ tr("Projection Error"),
+ tr("Could not send screen contents of %1 to other clients: VNC Startup failed.").arg(client->name())
+ );
+ }
+ }
+}
+
+void MainWindow::onVncClientStateChange(Client* client)
+{
+ // If the client started projection, ignore event. Also if
+ // the source is not known (anymore), we cannot do anything meaningful here
+ if (client->isActiveVncClient() || client->currentProjectionSource() == 0)
+ return;
+ // Client is not a vnc client anymore. Check if the VNC server it was (supposedly) connected
+ // to is still running, and kill it if there are no more clients connected to it.
+ // (client->currentProjectionSource() will still contain the id of the server it was connected to during this event)
+ // 1. check if vnc server is still running
+ // 2. check if there are any other clients "using" that server
+ bool inUse = false;
+ Client *server = NULL;
+ for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it)
+ {
+ Client *c = (**it).client();
+ if (c == NULL || c == client)
+ continue;
+ if (c->currentProjectionSource() == client->currentProjectionSource())
+ {
+ inUse = true;
+ break;
+ }
+ if (c->id() == client->currentProjectionSource())
+ server = c;
+ }
+ // 3. kill server if applicable
+ if (!inUse && server != NULL)
+ server->stopVncServer();
+}
diff --git a/src/server/mainwindow/mainwindow.h b/src/server/mainwindow/mainwindow.h
new file mode 100644
index 0000000..4f9d142
--- /dev/null
+++ b/src/server/mainwindow/mainwindow.h
@@ -0,0 +1,76 @@
+#ifndef _MAINWINDOW_H_
+#define _MAINWINDOW_H_
+
+#include <QtGui>
+#include <QMainWindow>
+
+class SessionNameWindow;
+class ConnectionFrame;
+class ListenServer;
+class DiscoveryListener;
+class Client;
+class ClientLogin;
+
+namespace Ui
+{
+ class MainWindow;
+}
+
+class MainWindow : public QMainWindow
+{
+ Q_OBJECT
+
+private:
+ Ui::MainWindow *ui;
+ SessionNameWindow *_sessionNameWindow;
+ QLabel *_sessionNameLabel;
+ QList<ConnectionFrame*> _clientFrames;
+ int _tileWidth, _tileHeight;
+ int _tilesX, _tilesY;
+ int _tbIconSize;
+ Qt::ToolBarArea _tbArea;
+ int _timerId, _timerTimeout;
+ ListenServer *_listenServer;
+ DiscoveryListener *_discoveryListener;
+ qint64 _buttonBlockTime;
+
+ void placeFrameInFreeSlot(ConnectionFrame* frame);
+ ConnectionFrame* createFrame();
+ bool loadPosition(QSettings& settings, const QString& id, int& x, int& y);
+ void savePosition(ConnectionFrame *cf);
+
+public:
+ MainWindow(QWidget *parent = 0);
+ ~MainWindow();
+
+protected:
+ void closeEvent(QCloseEvent *e);
+ void changeEvent(QEvent *e);
+ void resizeEvent(QResizeEvent *e);
+ void mouseReleaseEvent(QMouseEvent* e);
+ void timerEvent(QTimerEvent* event);
+
+
+protected slots:
+ // This
+ void onSessionNameClick();
+ void onSessionNameUpdate();
+ void onButtonSettings();
+ void onButtonChat();
+ void onButtonBroadcast();
+ void onButtonLock(bool checked);
+ void onButtonExit();
+ // connection frame
+ void onPlaceFrame(ConnectionFrame* frame);
+ void onFrameClicked(ConnectionFrame* frame);
+ // Net
+ void onClientConnected(Client* client);
+ void onClientAuthenticating(Client* client, ClientLogin* request);
+ void onClientAuthenticated(Client* client);
+ void onVncServerStateChange(Client* client);
+ void onVncClientStateChange(Client* client);
+
+};
+
+
+#endif
diff --git a/src/server/net/certmanager.cpp b/src/server/net/certmanager.cpp
new file mode 100644
index 0000000..e661a70
--- /dev/null
+++ b/src/server/net/certmanager.cpp
@@ -0,0 +1,92 @@
+/*
+ # Copyright (c) 2009 - OpenSLX Project, Computer Center University of Freiburg
+ #
+ # This program is free software distributed under the GPL version 2.
+ # See http://openslx.org/COPYING
+ #
+ # If you have any feedback please consult http://openslx.org/feedback and
+ # send your suggestions, praise, or complaints to feedback@openslx.org
+ #
+ # General information about OpenSLX can be found at http://openslx.org/
+ # -----------------------------------------------------------------------------
+ # src/util/CertManager.cpp
+ # - Manage SSL certificates
+ # - provide access by name
+ # -----------------------------------------------------------------------------
+ */
+
+#include "certmanager.h"
+#include "../util/util.h"
+#include <QMap>
+#include <QFileInfo>
+#include <QSettings>
+#include <cstdlib>
+
+namespace CertManager
+{
+static QMap<QString, QSslCertificate> _certs;
+static QMap<QString, QSslKey> _keys;
+
+static void generateFiles(QString& key, QString& cert);
+static bool loadFiles(QString& keyFile, QString& certFile, QSslKey &key, QSslCertificate &cert);
+
+bool getPrivateKeyAndCert(const QString &name, QSslKey &key, QSslCertificate &cert)
+{
+ if (_keys.contains(name))
+ {
+ key = _keys[name];
+ cert = _certs[name];
+ return true;
+ }
+ USER_SETTINGS(settings);
+ QString certFile = settings.fileName().append(".").append(name);
+ QString keyFile = certFile;
+ keyFile.append(".rsa");
+ certFile.append(".crt");
+ //
+ if (!loadFiles(keyFile, certFile, key, cert))
+ {
+ generateFiles(keyFile, certFile);
+ if (!loadFiles(keyFile, certFile, key, cert))
+ return false;
+ }
+ _certs.insert(name, cert);
+ _keys.insert(name, key);
+ return true;
+}
+
+static bool loadFiles(QString& keyFile, QString& certFile, QSslKey &key, QSslCertificate &cert)
+{
+ QFileInfo keyInfo(keyFile);
+ QFileInfo certInfo(certFile);
+ if (keyInfo.exists() && certInfo.exists())
+ { // Both files exist, see if they're valid and return
+ QFile kf(keyFile);
+ kf.open(QFile::ReadOnly);
+ key = QSslKey(&kf, QSsl::Rsa, QSsl::Pem, QSsl::PrivateKey);
+ QList<QSslCertificate> certlist = QSslCertificate::fromPath(certFile);
+ if (!key.isNull() && !certlist.empty())
+ {
+ cert = certlist.first();
+ if (!cert.isNull())
+ {
+ return true;
+ }
+ }
+ }
+ return false;
+}
+
+static void generateFiles(QString& key, QString& cert)
+{
+ char tmp[1000];
+ unlink(key.toLocal8Bit().data());
+ unlink(cert.toLocal8Bit().data());
+ snprintf(tmp, 1000,
+ "openssl req -x509 -nodes -days 3650 -newkey rsa:1024 -subj '/C=DE/ST=BaWue/L=Freiburg/CN=openslx.org' -keyout \"%s\" -out \"%s\"",
+ key.toLocal8Bit().data(), cert.toLocal8Bit().data());
+ system(tmp);
+ snprintf(tmp, 1000, "chmod 0600 \"%s\" \"%s\"", key.toLocal8Bit().data(), cert.toLocal8Bit().data());
+ system(tmp);
+}
+}
diff --git a/src/server/net/certmanager.h b/src/server/net/certmanager.h
new file mode 100644
index 0000000..c69bc23
--- /dev/null
+++ b/src/server/net/certmanager.h
@@ -0,0 +1,29 @@
+/*
+# Copyright (c) 2009 - OpenSLX Project, Computer Center University of Freiburg
+#
+# This program is free software distributed under the GPL version 2.
+# See http://openslx.org/COPYING
+#
+# If you have any feedback please consult http://openslx.org/feedback and
+# send your suggestions, praise, or complaints to feedback@openslx.org
+#
+# General information about OpenSLX can be found at http://openslx.org/
+# -----------------------------------------------------------------------------
+# src/util/CertManager.cpp
+# - Manage SSL certificates
+# - provide access by name
+# -----------------------------------------------------------------------------
+*/
+
+#ifndef CERTMANAGER_H_
+#define CERTMANAGER_H_
+
+#include <QtNetwork/QSslCertificate>
+#include <QtNetwork/QSslKey>
+
+namespace CertManager
+{
+ bool getPrivateKeyAndCert(const QString &name, QSslKey &key, QSslCertificate &cert);
+}
+
+#endif /* CERTMANAGER_H_ */
diff --git a/src/server/net/client.cpp b/src/server/net/client.cpp
new file mode 100644
index 0000000..ca91e76
--- /dev/null
+++ b/src/server/net/client.cpp
@@ -0,0 +1,288 @@
+/*
+ * client.cpp
+ *
+ * Created on: 18.01.2013
+ * Author: sr
+ */
+
+#include "client.h"
+#include "../util/global.h"
+#include "../../shared/settings.h"
+#include "../../shared/util.h"
+#include <QSslSocket>
+#include <QHostAddress>
+#include <QPixmap>
+#include <cassert>
+
+#define CHALLENGE_LEN 20
+
+ClientId Client::_clientIdCounter = 0;
+
+Client::Client(QSslSocket* socket) :
+ _socket(socket), _authed(0), _desiredProjectionSource(0), _isProjectionSource(false),
+ _currentProjectionSource(0), _vncPort(0), _activeVncClient(false)
+{
+ assert(socket != NULL);
+ _id = ++_clientIdCounter;
+ _pingTimeout = QDateTime::currentMSecsSinceEpoch() + PING_TIMEOUT_MS;
+ _ip = _socket->peerAddress().toString();
+ qDebug("*** Client %s created.", qPrintable(_ip));
+ // Connect important signals
+ connect(_socket, SIGNAL(disconnected()), this, SLOT(onClosed()));
+ connect(_socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(onError(QAbstractSocket::SocketError)));
+ connect(_socket, SIGNAL(sslErrors(const QList<QSslError> &)), this, SLOT(onSslErrors(const QList<QSslError> &)));
+ connect(_socket, SIGNAL(readyRead()), this, SLOT(onDataArrival()));
+ // Send challenge
+ _challenge.resize(CHALLENGE_LEN);
+ for (int i = 0; i < CHALLENGE_LEN; ++i)
+ _challenge[i] = qrand() & 0xff;
+ _toClient.reset();
+ _toClient.setField(_ID, _CHALLENGE);
+ _toClient.setField(_CHALLENGE, _challenge);
+ _toClient.writeMessage(_socket);
+ // give client 3 seconds to complete handshake
+ _timerIdAuthTimeout = startTimer(3000);
+}
+
+Client::~Client()
+{
+ if (_socket != NULL)
+ {
+ qDebug("**** DELETE IN DESTRUCTOR");
+ _socket->deleteLater();
+ }
+ qDebug("*** Client %s destroyed.", qPrintable(_ip));
+}
+
+void Client::timerEvent(QTimerEvent* event)
+{
+ if (event->timerId() == _timerIdAuthTimeout)
+ {
+ // Client did not send login request within 3 seconds
+ killTimer(_timerIdAuthTimeout);
+ _timerIdAuthTimeout = 0;
+ this->disconnect();
+ }
+}
+
+void Client::sendMessage(NetworkMessage& message)
+{
+ if (_socket == NULL || _socket->state() != QAbstractSocket::ConnectedState)
+ return;
+ message.writeMessage(_socket);
+ if (!message.writeComplete())
+ {
+ qCritical() << "SendMessage to client " << _name << "@" << _ip << " failed!";
+ }
+}
+
+void Client::requestThumb(const int width, const int height)
+{
+ if (_socket == NULL || _socket->state() != QAbstractSocket::ConnectedState)
+ {
+ qDebug("requestThumb called in bad state");
+ return;
+ }
+ _toClient.reset();
+ _toClient.setField(_ID, _THUMB);
+ _toClient.setField(_X, QString::number(width));
+ _toClient.setField(_Y, QString::number(height));
+ _toClient.writeMessage(_socket);
+}
+
+void Client::onDataArrival()
+{
+ _pingTimeout = QDateTime::currentMSecsSinceEpoch() + PING_TIMEOUT_MS;
+ //
+ if (_socket == NULL || _socket->state() != QAbstractSocket::ConnectedState)
+ {
+ qDebug("dataArrival called in bad state");
+ return;
+ }
+
+ //qDebug() << _socket->bytesAvailable() << " bytes to read";
+ bool ret;
+ while (_socket->bytesAvailable())
+ {
+ ret = _fromClient.readMessage(_socket); // let the message read data from socket
+ if (!ret) // error parsing msg, disconnect client!
+ {
+ this->disconnect();
+ return;
+ }
+ if (_fromClient.readComplete()) // message is complete
+ {
+ this->handleMsg();
+ if (_socket == NULL)
+ return;
+ _fromClient.reset();
+ }
+ }
+}
+
+void Client::onSslErrors(const QList<QSslError> & errors)
+{
+ this->disconnect();
+}
+
+void Client::onClosed()
+{
+ this->disconnect();
+}
+
+void Client::onError(QAbstractSocket::SocketError errcode)
+{
+ this->disconnect();
+}
+
+void Client::handleMsg()
+{
+ const QString &id = _fromClient.getFieldString(_ID);
+ if (id.isEmpty())
+ {
+ qDebug("Received message with empty ID field. ignored.");
+ return;
+ }
+ qDebug() << "Received message " << id;
+
+ if (_authed == 2)
+ {
+ // Following messages are only valid of the client is already authenticated
+ if (id == _THUMB)
+ {
+ QPixmap pixmap;
+ if (!pixmap.loadFromData(_fromClient.getFieldBytes("IMG")))
+ {
+ qDebug("Could not decode thumbnail image from client.");
+ return;
+ }
+ emit thumbUpdated(this, pixmap);
+ }
+ else if (id == _VNCSERVER)
+ {
+ // Client tells about startup of vnc server
+ const int port = _fromClient.getFieldString("PORT").toInt();
+ if (port <= 0)
+ {
+ if (_vncPort <= 0)
+ {
+ qDebug() << "Starting VNC server on client" << _name << " (" << _ip << ") failed.";
+ // TODO: Show message on manager
+ }
+ }
+ else
+ {
+ _vncRoPass = _fromClient.getFieldString("ROPASS");
+ _vncRwPass = _fromClient.getFieldString("RWPASS");
+ }
+ _vncPort = port;
+ emit vncServerStateChange(this);
+ }
+ else if (id == _VNCCLIENT)
+ {
+ // Client tells us that it started or stopped displaying a remote screen via VNC
+ _activeVncClient = (_fromClient.getFieldString("ENABLED").toInt() != 0);
+ const ClientId other = (ClientId)_fromClient.getFieldString("CLIENTID").toInt();
+
+ if (!_activeVncClient && other == 0)
+ _desiredProjectionSource = 0;
+
+ emit vncClientStateChange(this);
+
+ if (!_activeVncClient)
+ _currentProjectionSource = 0;
+ else
+ _currentProjectionSource = other;
+ }
+ return;
+ }
+
+ if (_authed == 1) // Not authed yet, only care about login requests
+ {
+ if (id == _LOGIN)
+ {
+ killTimer(_timerIdAuthTimeout);
+ _timerIdAuthTimeout = 0;
+ ClientLogin request;
+ request.accept = true;
+ request.host = _fromClient.getFieldString("HOST");
+ request.name = _fromClient.getFieldString("NAME");
+ request.ip = _socket->peerAddress().toString();
+ qDebug() << "Login request by " << request.name;
+ // emit event, see if request is accepted
+ emit authenticating(this, &request);
+ if (!request.accept)
+ {
+ qDebug("Request denied.");
+ this->disconnect(); // Nope
+ return;
+ }
+ // Accepted
+ _authed = 2;
+ qDebug("valid, step <- 2");
+ _name = request.name;
+ _host = request.host;
+ _toClient.reset();
+ _toClient.setField(_ID, _LOGIN);
+ _toClient.writeMessage(_socket);
+ emit authenticated(this);
+ }
+ return;
+ }
+
+ if (_authed == 0)
+ {
+ // Waiting for challenge reply by client
+ if (id == _CHALLENGE)
+ {
+ QByteArray hash(_fromClient.getFieldBytes(_HASH));
+ QByteArray challenge(_fromClient.getFieldBytes(_CHALLENGE));
+ if (genSha1(&Global::sessionNameArray(), &_challenge) != hash)
+ { // Challenge reply is invalid, drop client
+ _toClient.buildErrorMessage("Challenge reply invalid.");
+ _toClient.writeMessage(_socket);
+ this->deleteLater();
+ return;
+ }
+ // Now answer to challenge by client
+ _toClient.reset();
+ _toClient.setField(_ID, _CHALLENGE);
+ _toClient.setField(_HASH, genSha1(&Global::sessionNameArray(), &challenge));
+ _toClient.writeMessage(_socket);
+ _authed = 1;
+ qDebug("client's challenge reply was valid, step <- 1");
+ }
+ return;
+ }
+
+}
+
+void Client::startVncServer()
+{
+ _vncPort = 0;
+ _toClient.reset();
+ _toClient.setField(_ID, _VNCSERVER);
+ _toClient.setField("ENABLE", QByteArray("1"));
+ sendMessage(_toClient);
+}
+
+void Client::stopVncServer()
+{
+ _toClient.reset();
+ _toClient.setField(_ID, _VNCSERVER);
+ _toClient.setField("ENABLE", QByteArray("0"));
+ sendMessage(_toClient);
+}
+
+void Client::disconnect()
+{
+ if (_socket != NULL)
+ {
+ qDebug("*** Client %s disconnected.", qPrintable(_ip));
+ _socket->blockSignals(true);
+ _socket->abort();
+ _socket->deleteLater();
+ _socket = NULL;
+ this->deleteLater();
+ }
+}
diff --git a/src/server/net/client.h b/src/server/net/client.h
new file mode 100644
index 0000000..8004ebb
--- /dev/null
+++ b/src/server/net/client.h
@@ -0,0 +1,104 @@
+#ifndef CLIENT_H_
+#define CLIENT_H_
+
+#include <QtCore>
+#include <QSslError>
+#include <QAbstractSocket>
+#include "../../shared/networkmessage.h"
+
+class QSslSocket;
+
+struct ClientLogin
+{
+ bool accept;
+ QString name;
+ QString host;
+ QString ip;
+};
+
+typedef int ClientId;
+
+class Client : public QObject
+{
+ Q_OBJECT
+
+private:
+ static ClientId _clientIdCounter;
+
+ QSslSocket *_socket;
+ int _authed; // 0 = challenge sent, awaiting reply 1 = challenge ok, client challenge replied, awaiting login, 2 = ESTABLISHED
+ QString _name;
+ QString _host;
+ QString _ip;
+ QByteArray _challenge;
+ qint64 _pingTimeout;
+ NetworkMessage _toClient, _fromClient;
+ int _timerIdAuthTimeout;
+
+ ClientId _id; // this client's unique id
+
+ // If this client should be projected to from another client, the other client's id is set here. 0 otherwise.
+ // This is not currently used and it is questionable if this makes sense, as it might just be confusing if
+ // several groups students watch different other students.
+ // Also, visualizing such a situation in the GUI in a meaningful way would be hard.
+ ClientId _desiredProjectionSource;
+ // This boolean tells whether this client is currently the VNC broadcast source. This
+ // version only allows "one to all others" setups
+ bool _isProjectionSource;
+
+ ClientId _currentProjectionSource;
+
+ QString _vncRwPass, _vncRoPass;
+ int _vncPort;
+ bool _activeVncClient;
+
+ void handleMsg();
+ void disconnect();
+
+protected:
+ void timerEvent(QTimerEvent* event);
+
+public:
+ explicit Client(QSslSocket* socket);
+ ~Client();
+ void requestThumb(const int width, const int height);
+ void sendMessage(NetworkMessage& message);
+ //void acceptData();
+ const inline bool isAuthed() const { return _authed == 2; }
+ const inline QString& name() const { return _name; }
+ const inline QString& host() const { return _host; }
+ const inline QString& ip() const { return _ip; }
+ // The computer ID (used eg. for saving the frame positions) is currently the IP, but this is an extra method for easier modification later on
+ const inline QString& computerId() const { return _ip; }
+ const inline ClientId id() const { return _id; }
+
+ inline const QString& vncRwPass() const { return _vncRwPass; }
+ inline const QString& vncRoPass() const { return _vncRoPass; }
+ inline const int vncPort() const { return _vncPort; }
+ inline const bool isActiveVncClient() const { return _activeVncClient; }
+ inline const bool isActiveVncServer() const { return _vncPort > 0; }
+ inline const ClientId desiredProjectionSource() const { return _desiredProjectionSource; }
+ inline void setDesiredProjectionSource(ClientId source) { _desiredProjectionSource = source; }
+ inline const bool isProjectionSource() const { return _isProjectionSource; }
+ inline void setProjectionSource(bool enable) { _isProjectionSource = enable; }
+ inline const ClientId currentProjectionSource() const { return _currentProjectionSource; }
+ inline void setCurrentProjectionSource(ClientId source) { _currentProjectionSource = source; }
+ void startVncServer();
+ void stopVncServer();
+
+signals:
+ void authenticating(Client* client, ClientLogin* request);
+ void authenticated(Client* client);
+ void thumbUpdated(Client* client, const QPixmap& thumb);
+ void vncServerStateChange(Client* client);
+ void vncClientStateChange(Client* client);
+
+private slots:
+ void onSslErrors(const QList<QSslError> & errors); // triggered for errors that occur during SSL negotiation
+ void onDataArrival(); // triggered if data is available for reading
+ void onClosed(); // triggered if the socket is closed
+ void onError(QAbstractSocket::SocketError errcode); // triggered if an error occurs on the socket
+
+};
+
+#endif /* CLIENT_H_ */
diff --git a/src/server/net/discoverylistener.cpp b/src/server/net/discoverylistener.cpp
new file mode 100644
index 0000000..051a972
--- /dev/null
+++ b/src/server/net/discoverylistener.cpp
@@ -0,0 +1,165 @@
+/*
+ * discoverylistener.cpp
+ *
+ * Created on: 25.01.2013
+ * Author: sr
+ */
+
+#include "discoverylistener.h"
+#include "certmanager.h"
+#include "../util/global.h"
+#include "../../shared/settings.h"
+#include "../../shared/network.h"
+#include "../../shared/util.h"
+#include <QCryptographicHash>
+#include <QSslCertificate>
+#include <QSslKey>
+
+#define UDPBUFSIZ 9000
+#define SPAM_CUTOFF 50
+#define SPAM_MODERATE_INTERVAL 6787
+#define SPAM_MODERATE_AT_ONCE 100
+
+// static objects
+
+
+// +++ static ++++ hash ip address +++
+
+static quint16 hash(const QHostAddress& host)
+{
+ static quint16 seed1 = 0, seed2 = 0;
+ while (seed1 == 0) // Make sure the algorithm uses different seeds each time the program is
+ { // run to prevent hash collision attacks
+ seed1 = (quint16)(qrand() & 0xffff);
+ seed2 = (quint16)(qrand() & 0xffff);
+ }
+ quint8 data[16], len;
+ if (host.protocol() == QAbstractSocket::IPv4Protocol)
+ {
+ // IPv4
+ quint32 addr = host.toIPv4Address();
+ len = 4;
+ memcpy(data, &addr, len);
+ }
+ else if (QAbstractSocket::IPv6Protocol)
+ {
+ // IPv6
+ len = 16;
+ // Fast version (might break with future qt versions)
+ memcpy(data, host.toIPv6Address().c, len);
+ /* // --- Safe version (but better try to figure out a new fast way if above stops working ;))
+ Q_IPV6ADDR addr = host.toIPv6Address();
+ for (int i = 0; i < len; ++i)
+ data[i] = addr[i];
+ */
+ }
+ else
+ {
+ // Durr?
+ len = 2;
+ data[0] = (quint16)qrand();
+ data[1] = (quint16)qrand();
+ }
+ quint16 result = 0;
+ quint16 mod = seed1;
+ for (quint8 i = 0; i < len; ++i)
+ {
+ result = ((result << 1) + data[i]) ^ mod; // because of the shift this algo is not suitable for len(input) > 8
+ mod += seed2 + data[i];
+ }
+ return result;
+}
+
+// +++++++++++++++++++++++++++++++++++
+
+DiscoveryListener::DiscoveryListener() :
+ _socket(this), _counterResetPos(0)
+{
+ if (!_socket.bind(SERVICE_DISCOVERY_PORT))
+ qFatal("Could not bind to service discovery port %d", (int)SERVICE_DISCOVERY_PORT);
+ connect(&_socket, SIGNAL(readyRead()), this, SLOT(onReadyRead()));
+ for (int i = 0; i < SD_PACKET_TABLE_SIZE; ++i)
+ _packetCounter[i] = 0;
+ startTimer((SPAM_MODERATE_AT_ONCE * SPAM_MODERATE_INTERVAL) / SD_PACKET_TABLE_SIZE + 1);
+}
+
+DiscoveryListener::~DiscoveryListener()
+{
+ // TODO Auto-generated destructor stub
+}
+
+/**
+ * Overrides
+ */
+
+/**
+ * Decrease packet counters
+ */
+void DiscoveryListener::timerEvent(QTimerEvent* event)
+{
+ for (int i = 0; i < SPAM_MODERATE_AT_ONCE; ++i)
+ {
+ if (++_counterResetPos >= SD_PACKET_TABLE_SIZE)
+ _counterResetPos = 0;
+ if (_packetCounter[_counterResetPos] > 10)
+ _packetCounter[_counterResetPos] -= 10;
+ else if (_packetCounter[_counterResetPos] != 0)
+ _packetCounter[_counterResetPos] = 0;
+ }
+}
+
+/**
+ * Slots
+ */
+
+void DiscoveryListener::onReadyRead()
+{
+ char data[UDPBUFSIZ];
+ QHostAddress addr;
+ quint16 port;
+ while (_socket.hasPendingDatagrams())
+ {
+ const qint64 size = _socket.readDatagram(data, UDPBUFSIZ, &addr, &port);
+ if (size <= 0)
+ continue;
+ const quint16 bucket = hash(addr) % SD_PACKET_TABLE_SIZE;
+ if (_packetCounter[bucket] > SPAM_CUTOFF)
+ {
+ qDebug() << "SD: Potential (D)DoS from " << _socket.peerAddress().toString();
+ // emit some signal and pop up a big warning that someone is flooding/ddosing the PVS SD
+ // ... on the other hand, will the user understand? ;)
+ continue;
+ }
+ ++_packetCounter[bucket];
+ _packet.reset();
+ if (!_packet.readMessage(data, (quint32)size))
+ continue;
+ // Valid packet, process it:
+ const QByteArray iplist(_packet.getFieldBytes(_IPLIST));
+ const QByteArray hash(_packet.getFieldBytes(_HASH));
+ const QByteArray salt1(_packet.getFieldBytes(_SALT1));
+ const QByteArray salt2(_packet.getFieldBytes(_SALT2));
+ // For security, the salt has to be at least 16 bytes long
+ if (salt1.size() < 16 || salt2.size() < 16)
+ continue; // To make this more secure, you could remember the last X salts used, and ignore new packets using the same
+ // Check if the source IP of the packet matches any of the addresses given in the IP list
+ if (!Network::isAddressInList(QString::fromUtf8(iplist), addr.toString()))
+ continue;
+ // If so, check if the submitted hash seems valid
+ if (genSha1(&Global::sessionNameArray(), &salt1, &iplist) != hash)
+ continue; // did not match local session name
+ qDebug("Got matching discovery request...");
+ QByteArray myiplist(Network::interfaceAddressesToString().toUtf8());
+ QSslKey key;
+ QSslCertificate cert;
+ CertManager::getPrivateKeyAndCert("manager", key, cert);
+ QByteArray certhash(cert.digest(QCryptographicHash::Sha1));
+ // Reply to client
+ _packet.reset();
+ _packet.setField(_HASH, genSha1(&Global::sessionNameArray(), &salt2, &myiplist, &CLIENT_PORT_ARRAY, &certhash));
+ _packet.setField(_IPLIST, myiplist);
+ _packet.setField(_PORT, CLIENT_PORT_ARRAY);
+ _packet.setField(_CERT, certhash);
+ _packet.writeMessage(&_socket, addr, port);
+ }
+}
diff --git a/src/server/net/discoverylistener.h b/src/server/net/discoverylistener.h
new file mode 100644
index 0000000..64d4351
--- /dev/null
+++ b/src/server/net/discoverylistener.h
@@ -0,0 +1,40 @@
+/*
+ * discoverylistener.h
+ *
+ * Created on: 25.01.2013
+ * Author: sr
+ */
+
+#ifndef DISCOVERYLISTENER_H_
+#define DISCOVERYLISTENER_H_
+
+#include <QtCore>
+#include <QUdpSocket>
+#include "../../shared/networkmessage.h"
+
+#define SD_PACKET_TABLE_SIZE 20000
+
+class DiscoveryListener : public QObject
+{
+ Q_OBJECT
+
+private:
+ QUdpSocket _socket;
+ NetworkMessage _packet;
+ int _counterResetPos;
+
+ quint8 _packetCounter[SD_PACKET_TABLE_SIZE]; // count packets per source address to ignore spammers
+
+protected:
+ void timerEvent(QTimerEvent* event);
+
+public:
+ DiscoveryListener();
+ virtual ~DiscoveryListener();
+
+private slots:
+ void onReadyRead();
+
+};
+
+#endif /* DISCOVERYLISTENER_H_ */
diff --git a/src/server/net/listenserver.cpp b/src/server/net/listenserver.cpp
new file mode 100644
index 0000000..706962d
--- /dev/null
+++ b/src/server/net/listenserver.cpp
@@ -0,0 +1,40 @@
+#include "listenserver.h"
+#include "client.h"
+#include <QSslSocket>
+
+#define MAX_CLIENTS 50
+
+ListenServer::ListenServer(quint16 port)
+{
+ if (!_server.listen(QHostAddress::Any, port) || !_server.isListening())
+ qFatal("Cannot bind to TCP port %d (incoming SSL clients)", (int)port);
+ connect(&_server, SIGNAL(newConnection()), this, SLOT(newClientConnection()));
+}
+
+ListenServer::~ListenServer()
+{
+ _server.close();
+ for (int i = 0; i < _clients.size(); ++i)
+ _clients[i]->deleteLater();
+}
+
+/**
+ * Slots
+ */
+
+void ListenServer::newClientConnection()
+{
+ QSslSocket* sock;
+ while ((sock = (QSslSocket*)_server.nextPendingConnection()) != NULL)
+ {
+ if (_clients.size() >= MAX_CLIENTS)
+ {
+ sock->abort();
+ sock->deleteLater();
+ continue;
+ }
+ Client* client = new Client(sock);
+ _clients.append(client); // create new client class and add to list
+ emit newClient(client);
+ }
+}
diff --git a/src/server/net/listenserver.h b/src/server/net/listenserver.h
new file mode 100644
index 0000000..f237703
--- /dev/null
+++ b/src/server/net/listenserver.h
@@ -0,0 +1,30 @@
+#ifndef LISTENSERVER_H_
+#define LISTENSERVER_H_
+
+#include <QtCore>
+#include <QList>
+#include "sslserver.h"
+
+class Client;
+
+class ListenServer : public QObject
+{
+ Q_OBJECT
+
+private:
+ SslServer _server;
+ QList<Client*> _clients;
+
+public:
+ explicit ListenServer(quint16 port);
+ virtual ~ListenServer();
+
+private slots:
+ void newClientConnection();
+
+signals:
+ void newClient(Client* client);
+
+};
+
+#endif /* LISTENSERVER_H_ */
diff --git a/src/server/net/sslserver.cpp b/src/server/net/sslserver.cpp
new file mode 100644
index 0000000..70daea4
--- /dev/null
+++ b/src/server/net/sslserver.cpp
@@ -0,0 +1,113 @@
+/*
+ # Copyright (c) 2009 - OpenSLX Project, Computer Center University of Freiburg
+ #
+ # This program is free software distributed under the GPL version 2.
+ # See http://openslx.org/COPYING
+ #
+ # If you have any feedback please consult http://openslx.org/feedback and
+ # send your suggestions, praise, or complaints to feedback@openslx.org
+ #
+ # General information about OpenSLX can be found at http://openslx.org/
+ # -----------------------------------------------------------------------------
+ # src/net/SslServer.cpp
+ # - provide QTcpServer-like behaviour for SSL
+ # -----------------------------------------------------------------------------
+ */
+
+#include "sslserver.h"
+#include <QtNetwork/QSslCipher>
+#include <QtNetwork/QSslSocket>
+#include "certmanager.h"
+
+SslServer::SslServer()
+{
+ _tmr = startTimer(5123);
+ //QSslSocket::setDefaultCiphers(QSslSocket::supportedCiphers());
+}
+
+SslServer::~SslServer()
+{
+ killTimer((_tmr));
+}
+
+void SslServer::incomingConnection(int socketDescriptor)
+{
+ QSslSocket *serverSocket = new QSslSocket(NULL);
+ connect(serverSocket, SIGNAL(sslErrors(const QList<QSslError> &)), this, SLOT(sslErrors(const QList<QSslError> &)));
+ QSslKey key;
+ QSslCertificate cert;
+ CertManager::getPrivateKeyAndCert("manager", key, cert);
+ serverSocket->setPrivateKey(key);
+ serverSocket->setLocalCertificate(cert);
+ serverSocket->setPeerVerifyMode(QSslSocket::VerifyNone);
+ serverSocket->setProtocol(QSsl::SslV3);
+ //printf("Keylen %d\n", serverSocket->privateKey().length());
+ if (serverSocket->setSocketDescriptor(socketDescriptor))
+ {
+ // Once the connection is successfully encrypted, raise our newConnection event
+ connect(serverSocket, SIGNAL(encrypted()), this, SIGNAL(newConnection()));
+ serverSocket->startServerEncryption();
+ _pending.push_back(serverSocket);
+ }
+ else
+ {
+ serverSocket->deleteLater();
+ }
+}
+
+void SslServer::sslErrors(const QList<QSslError> & errors)
+{
+ //qDebug("FIXME: SSL ERRORS on SERVER: %s", qPrintable(errors.begin()->errorString()));
+}
+
+void SslServer::timerEvent(QTimerEvent* event)
+{
+ // Remove all sockets marked for deletion
+ while (!_delete.isEmpty())
+ {
+ QSslSocket *sock = _delete.takeFirst();
+ sock->blockSignals(true);
+ sock->deleteLater();
+ }
+ _delete = _pending;
+ _pending.clear();
+}
+
+bool SslServer::hasPendingConnections()
+{
+ for (QList<QSslSocket*>::iterator it(_pending.begin()); it != _pending.end(); it++)
+ {
+ qDebug("State: %d - Encrypted: %d", (int)(*it)->state(), (*it)->isEncrypted());
+ if ((*it)->state() == QAbstractSocket::ConnectedState && (*it)->isEncrypted())
+ return true;
+ }
+ return false;
+}
+
+QTcpSocket* SslServer::nextPendingConnection()
+{
+ for (QList<QSslSocket*>::iterator it(_pending.begin()); it != _pending.end(); it++)
+ {
+ if ((*it)->state() == QAbstractSocket::ConnectedState && (*it)->isEncrypted())
+ {
+ QSslSocket *sock = *it;
+ QObject::disconnect(sock, SIGNAL(encrypted()), this, SIGNAL(newConnection()));
+ _pending.removeAll(sock);
+ _delete.removeAll(sock);
+ return sock;
+ }
+ }
+ for (QList<QSslSocket*>::iterator it(_delete.begin()); it != _delete.end(); it++)
+ {
+ if ((*it)->state() == QAbstractSocket::ConnectedState && (*it)->isEncrypted())
+ {
+ QSslSocket *sock = *it;
+ QObject::disconnect(sock, SIGNAL(encrypted()), this, SIGNAL(newConnection()));
+ _pending.removeAll(sock);
+ _delete.removeAll(sock);
+ return sock;
+ }
+ }
+ return NULL;
+}
+
diff --git a/src/server/net/sslserver.h b/src/server/net/sslserver.h
new file mode 100644
index 0000000..400bf6a
--- /dev/null
+++ b/src/server/net/sslserver.h
@@ -0,0 +1,50 @@
+/*
+# Copyright (c) 2009 - OpenSLX Project, Computer Center University of Freiburg
+#
+# This program is free software distributed under the GPL version 2.
+# See http://openslx.org/COPYING
+#
+# If you have any feedback please consult http://openslx.org/feedback and
+# send your suggestions, praise, or complaints to feedback@openslx.org
+#
+# General information about OpenSLX can be found at http://openslx.org/
+# -----------------------------------------------------------------------------
+# src/net/SslServer.cpp
+# - provide QTcpServer-like behaviour for SSL
+# -----------------------------------------------------------------------------
+*/
+
+#ifndef SSLSERVER_H_
+#define SSLSERVER_H_
+
+#include <QtCore/QList>
+#include <QtNetwork/QTcpServer>
+#include <QtNetwork/QSslError>
+
+class QSslSocket;
+
+class SslServer : public QTcpServer
+{
+ Q_OBJECT
+
+private Q_SLOTS:
+ void sslErrors ( const QList<QSslError> & errors );
+
+public:
+ SslServer();
+ virtual ~SslServer();
+
+ bool hasPendingConnections ();
+ // This one has to return a TcpSocket as we're overwriting from the base class
+ // just cast it to QSslSocket later
+ virtual QTcpSocket* nextPendingConnection();
+
+protected:
+ void incomingConnection(int socketDescriptor);
+ void timerEvent (QTimerEvent* event);
+ QList<QSslSocket*> _pending;
+ QList<QSslSocket*> _delete;
+ int _tmr;
+};
+
+#endif /* SSLSERVER_H_ */
diff --git a/src/server/sessionnamewindow/sessionnamewindow.cpp b/src/server/sessionnamewindow/sessionnamewindow.cpp
new file mode 100644
index 0000000..1d8c699
--- /dev/null
+++ b/src/server/sessionnamewindow/sessionnamewindow.cpp
@@ -0,0 +1,68 @@
+/*
+ # Copyright (c) 2009 - OpenSLX Project, Computer Center University of Freiburg
+ #
+ # This program is free software distributed under the GPL version 2.
+ # See http://openslx.org/COPYING
+ #
+ # If you have any feedback please consult http://openslx.org/feedback and
+ # send your suggestions, praise, or complaints to feedback@openslx.org
+ #
+ # General information about OpenSLX can be found at http://openslx.org/
+ # -----------------------------------------------------------------------------
+ # mainWindow.cpp
+ This is the Main class for the pvsManager. The GUI is contructed here.
+ # -----------------------------------------------------------------------------
+ */
+
+#include <QtGui>
+#include "sessionnamewindow.h"
+#include "../util/global.h"
+
+#include "ui_sessionname.h"
+
+SessionNameWindow::SessionNameWindow(QWidget *parent) :
+ QDialog(parent), ui(new Ui::SessionName)
+
+{
+ ui->setupUi(this);
+ connect(ui->bboxOkCancel, SIGNAL(accepted()), this, SLOT(onOkClicked()));
+ connect(ui->bboxOkCancel, SIGNAL(rejected()), this, SLOT(close()));
+ connect(ui->cmdRandom, SIGNAL(clicked(bool)), this, SLOT(onGenerateRandomName()));
+}
+
+SessionNameWindow::~SessionNameWindow()
+{
+ delete ui;
+}
+
+void SessionNameWindow::show(const QString& name)
+{
+ ui->txtName->setText(name);
+ this->showNormal();
+}
+
+/*
+ * Overridden methods
+ */
+
+void SessionNameWindow::closeEvent(QCloseEvent *e)
+{
+ e->ignore();
+ this->hide();
+}
+
+/**
+ * Slots
+ */
+
+void SessionNameWindow::onOkClicked()
+{
+ Global::setSessionName(ui->txtName->text());
+ emit updateSessionName();
+ this->hide();
+}
+
+void SessionNameWindow::onGenerateRandomName()
+{
+ ui->txtName->setText(QString::number(qrand() % 9000 + 1000));
+}
diff --git a/src/server/sessionnamewindow/sessionnamewindow.h b/src/server/sessionnamewindow/sessionnamewindow.h
new file mode 100644
index 0000000..ed944c1
--- /dev/null
+++ b/src/server/sessionnamewindow/sessionnamewindow.h
@@ -0,0 +1,38 @@
+#ifndef _SESSIONNAMEWINDOW_H_
+#define _SESSIONNAMEWINDOW_H_
+
+#include <QtGui>
+
+
+namespace Ui
+{
+class SessionName;
+}
+
+class SessionNameWindow : public QDialog
+{
+ Q_OBJECT
+
+private:
+ Ui::SessionName *ui;
+
+public:
+ SessionNameWindow(QWidget *parent = 0);
+ ~SessionNameWindow();
+
+ void show(const QString& name);
+
+protected:
+ void closeEvent(QCloseEvent *e);
+
+private slots:
+ void onOkClicked();
+ void onGenerateRandomName();
+
+signals:
+ void updateSessionName();
+
+};
+
+
+#endif
diff --git a/src/server/util/global.cpp b/src/server/util/global.cpp
new file mode 100644
index 0000000..9b7b4f2
--- /dev/null
+++ b/src/server/util/global.cpp
@@ -0,0 +1,17 @@
+/*
+ * global.cpp
+ *
+ * Created on: 29.01.2013
+ * Author: sr
+ */
+
+#include "global.h"
+
+QString Global::_sessionName = QString();
+QByteArray Global::_sessionNameArray = QByteArray();
+
+void Global::setSessionName(const QString& name)
+{
+ Global::_sessionName = name;
+ Global::_sessionNameArray = name.toUtf8();
+}
diff --git a/src/server/util/global.h b/src/server/util/global.h
new file mode 100644
index 0000000..38eec6d
--- /dev/null
+++ b/src/server/util/global.h
@@ -0,0 +1,29 @@
+/*
+ * global.h
+ *
+ * Created on: 29.01.2013
+ * Author: sr
+ */
+
+#ifndef GLOBAL_H_
+#define GLOBAL_H_
+
+#include <QString>
+#include <QByteArray>
+
+class Global
+{
+private:
+ Global(){}
+ ~Global(){}
+
+ static QString _sessionName;
+ static QByteArray _sessionNameArray;
+
+public:
+ static const QString& sessionName() { return Global::_sessionName; }
+ static const QByteArray& sessionNameArray() { return Global::_sessionNameArray; }
+ static void setSessionName(const QString& name);
+};
+
+#endif /* GLOBAL_H_ */
diff --git a/src/server/util/util.cpp b/src/server/util/util.cpp
new file mode 100644
index 0000000..7ff9404
--- /dev/null
+++ b/src/server/util/util.cpp
@@ -0,0 +1,14 @@
+/*
+ * Util.cpp
+ *
+ * Created on: 18.01.2013
+ * Author: sr
+ */
+
+#include "util.h"
+
+namespace Util
+{
+
+}
+
diff --git a/src/server/util/util.h b/src/server/util/util.h
new file mode 100644
index 0000000..e2d6a62
--- /dev/null
+++ b/src/server/util/util.h
@@ -0,0 +1,17 @@
+#ifndef UTIL_H_
+#define UTIL_H_
+
+// Helper for getting a settings object in various places, so if you ever change the organization, location,
+// file format or anything, you won't have to edit in 100 places.
+// Use like this:
+// USER_SETTINGS(settings)
+// settings.value("somekey")
+#define USER_SETTINGS(name) QSettings name (QSettings::IniFormat, QSettings::UserScope, "openslx", "pvs2mgr")
+#define SYSTEM_SETTINGS(name) QSettings name (QSettings::IniFormat, QSettings::SystemScope, "openslx", "pvs2mgr")
+
+namespace Util
+{
+
+}
+
+#endif /* UTIL_H_ */
diff --git a/src/shared/network.cpp b/src/shared/network.cpp
new file mode 100644
index 0000000..6dd6a73
--- /dev/null
+++ b/src/shared/network.cpp
@@ -0,0 +1,50 @@
+/*
+ * network.cpp
+ *
+ * Created on: 28.01.2013
+ * Author: sr
+ */
+
+#include "network.h"
+#include <QNetworkInterface>
+#include <QHostAddress>
+#include <QList>
+
+namespace Network
+{
+
+
+/**
+ * Returns list of all addresses assigned to the interfaces of this machine.
+ * Every address is surrounded by '|', eg:
+ * |1.2.3.4|3.66.77.88|123:34::1|
+ */
+QString interfaceAddressesToString()
+{
+ QList<QHostAddress> list(QNetworkInterface::allAddresses());
+ return interfaceAddressesToString(list);
+}
+
+QString interfaceAddressesToString(const QList<QHostAddress>& list)
+{
+ QString ret;
+ ret.reserve(500);
+ for (QList<QHostAddress>::const_iterator it(list.begin()); it != list.end(); ++it)
+ {
+ if (*it == QHostAddress::LocalHost || *it == QHostAddress::LocalHostIPv6)
+ continue; // TODO: Filter other addresses/ranges?
+ ret.append("|");
+ ret.append(it->toString());
+ }
+ ret.append("|");
+ return ret;
+}
+
+bool isAddressInList(const QString& list, const QString& address)
+{
+ static const QString find("|%1|");
+ return list.contains(find.arg(address), Qt::CaseSensitive);
+}
+
+
+}
diff --git a/src/shared/network.h b/src/shared/network.h
new file mode 100644
index 0000000..4a763be
--- /dev/null
+++ b/src/shared/network.h
@@ -0,0 +1,25 @@
+/*
+ * network.h
+ *
+ * Created on: 28.01.2013
+ * Author: sr
+ */
+
+#ifndef NETWORK_H_
+#define NETWORK_H_
+
+#include <QString>
+#include <QHostAddress>
+
+namespace Network
+{
+
+
+QString interfaceAddressesToString();
+QString interfaceAddressesToString(const QList<QHostAddress>& list);
+bool isAddressInList(const QString& list, const QString& address);
+
+
+}
+
+#endif /* NETWORK_H_ */
diff --git a/src/shared/networkmessage.cpp b/src/shared/networkmessage.cpp
new file mode 100644
index 0000000..9a7ba9f
--- /dev/null
+++ b/src/shared/networkmessage.cpp
@@ -0,0 +1,296 @@
+/*
+ * NetworkMessage.cpp
+ *
+ * Created on: 18.01.2013
+ * Author: sr
+ */
+
+#include <QtCore>
+#include <QtNetwork>
+#include "networkmessage.h"
+
+#define HEADER_LEN 8
+#define MAX_MSG_LEN 60000
+
+#define BYTE_SWAP4(x) \
+ (((x & 0xFF000000) >> 24) | \
+ ((x & 0x00FF0000) >> 8) | \
+ ((x & 0x0000FF00) << 8) | \
+ ((x & 0x000000FF) << 24))
+
+#define BYTE_SWAP2(x) \
+ (((x & 0xFF00) >> 8) | \
+ ((x & 0x00FF) << 8))
+
+static quint16 _htons(quint16 x)
+{
+ if (QSysInfo::ByteOrder == QSysInfo::BigEndian)
+ return x;
+ return BYTE_SWAP2(x);
+}
+
+static quint16 _ntohs(quint16 x)
+{
+ if (QSysInfo::ByteOrder == QSysInfo::BigEndian)
+ return x;
+ return BYTE_SWAP2(x);
+}
+
+static quint32 _htonl(quint32 x)
+{
+ if (QSysInfo::ByteOrder == QSysInfo::BigEndian)
+ return x;
+ return BYTE_SWAP4(x);
+}
+
+static quint32 _ntohl(quint32 x)
+{
+ if (QSysInfo::ByteOrder == QSysInfo::BigEndian)
+ return x;
+ return BYTE_SWAP4(x);
+}
+
+/*
+ // ####################################################### \\ ° . °
+ \\ ####################################################### // \___/
+ */
+
+NetworkMessage::NetworkMessage() :
+ _buffer(NULL), _bufferSize(0), _bufferPos(0), _lastBufferSize(0), _mode(0)
+{
+ //
+}
+
+NetworkMessage::~NetworkMessage()
+{
+ if (_buffer)
+ delete[] _buffer;
+}
+
+inline void NetworkMessage::allocBuffer()
+{
+ if (_lastBufferSize < _bufferSize || _buffer == NULL)
+ {
+ if (_buffer)
+ delete[] _buffer;
+ _lastBufferSize = _bufferSize;
+ _buffer = new char[_lastBufferSize];
+ }
+}
+
+bool NetworkMessage::readMessage(QAbstractSocket* socket)
+{
+ // Check/Set the _mode variable, so read and write calls are not mixed
+ if (_mode != 1)
+ {
+ if (_mode != 0)
+ {
+ qDebug("NetworkMessage::readMessage(TCP) called when class was in mode %d!", _mode);
+ return false;
+ }
+ _mode = 1;
+ }
+ // buffer size == 0 means the header hasn't been received yet. do so and set things up
+ if (_bufferSize == 0)
+ {
+ if (socket->bytesAvailable() < HEADER_LEN)
+ return true;
+ char header[HEADER_LEN];
+ if (socket->read(header, HEADER_LEN) != HEADER_LEN)
+ {
+ qDebug("FIXME: Socket said 8 bytes available, but could not read 8...");
+ return false;
+ }
+ if (!this->parseHeader(header))
+ return false;
+ //qDebug() << "Expecting message of " << _bufferSize << " bytes";
+ allocBuffer();
+ }
+ if (_bufferSize > _bufferPos)
+ {
+ while (_bufferSize > _bufferPos && socket->bytesAvailable() > 0)
+ {
+ const qint64 ret = socket->read(_buffer + _bufferPos, _bufferSize - _bufferPos);
+ //qDebug() << "Read " << ret << " bytes";
+ if (ret < 0)
+ return false;
+ _bufferPos += ret;
+ //qDebug() << "Buffer has now " << _bufferPos << " of " << _bufferSize << " bytes";
+ }
+ if (_bufferSize == _bufferPos)
+ {
+ if (!this->parseMessage(_buffer))
+ return false;
+ }
+ }
+ return true;
+}
+
+bool NetworkMessage::readMessage(char* data, quint32 len)
+{
+ // Check/Set the _mode variable, so read and write calls are not mixed
+ if (_mode != 1)
+ {
+ if (_mode != 0)
+ {
+ qDebug("NetworkMessage::readMessage(UDP) called when class was in mode %d!", _mode);
+ return false;
+ }
+ _mode = 1;
+ }
+ if (len < HEADER_LEN)
+ {
+ qDebug("UDP message shorter than 8 bytes. ignored.");
+ return false;
+ }
+ if (!this->parseHeader(data))
+ return false;
+ if (len != _bufferSize + HEADER_LEN)
+ {
+ qDebug("UDP packet has wrong size. Is %d, expected %d", (int)_bufferSize, len - HEADER_LEN);
+ return false;
+ }
+ return this->parseMessage(data + HEADER_LEN);
+}
+
+bool NetworkMessage::parseHeader(char *header)
+{
+ if (header[0] != 'P' || header[1] != 'V' || header[2] != 'S' || header[3] != '2')
+ {
+ qDebug("Protocol magic wrong.");
+ return false;
+ }
+ _bufferPos = 0;
+ _bufferSize = _ntohl(*(quint32*)(header + 4));
+ if (_bufferSize > MAX_MSG_LEN)
+ {
+ qDebug("Disconnecting Client: MAX_MSG_LEN exceeded.");
+ return false;
+ }
+ if (_bufferSize < 4) // TODO: magic number. msg needs to be at least 4 bytes for 1 key/value pair of length 0 each.
+ {
+ qDebug("A Client sent an empty message.");
+ return false;
+ }
+ return true;
+}
+
+bool NetworkMessage::parseMessage(char *buffer)
+{
+ char *ptr = buffer;
+ while (_bufferSize - (ptr - buffer) >= 4)
+ {
+ const quint16 keyLen = _ntohs(*(quint16*)(ptr));
+ ptr += 2;
+ const quint16 valLen = _ntohs(*(quint16*)(ptr));
+ ptr += 2;
+ if (_bufferSize - (ptr - buffer) < keyLen + valLen)
+ {
+ qDebug() << "Warning: Error parsing message. key(" << keyLen << ")+value(" << valLen
+ << ") length > total remaining bytes (" << (_bufferSize - (ptr - buffer)) << ")";
+ return false;
+ }
+ _fields.insert(QString::fromUtf8(ptr, keyLen), QByteArray(ptr + keyLen, valLen));
+ //qDebug() << "Got " << QString::fromUtf8(ptr, keyLen) << " -> " << QString::fromUtf8(ptr + keyLen, valLen);
+ ptr += keyLen + valLen;
+ }
+ _mode = 3;
+ return true;
+}
+
+bool NetworkMessage::writeMessage(QAbstractSocket* socket)
+{
+ if (_mode != 2)
+ {
+ if (_mode == 1)
+ {
+ qDebug("NetworkMessage::writeMessage called when class was in mode %d!", _mode);
+ return false;
+ }
+ _mode = 1;
+ _bufferPos = 0;
+ }
+ // key/value pairs have not been serialized yet...
+ if (_bufferSize == 0)
+ {
+ this->serializeMessage();
+ }
+ const qint64 ret = socket->write(_buffer + _bufferPos, _bufferSize - _bufferPos);
+ if (ret == 0)
+ return true;
+ if (ret < 0)
+ return false;
+ _bufferPos += ret;
+ if (_bufferPos == _bufferSize)
+ {
+ _bufferPos = 0;
+ _mode = 4;
+ }
+ return true;
+}
+
+bool NetworkMessage::writeMessage(QUdpSocket* socket, const QHostAddress& address, quint16 port)
+{
+ if (_mode != 4)
+ {
+ if (_mode == 1)
+ {
+ qDebug("NetworkMessage::writeMessage called when class was in mode %d!", _mode);
+ return false;
+ }
+ _mode = 4;
+ _bufferPos = 0;
+ }
+ // key/value pairs have not been serialized yet...
+ if (_bufferSize == 0)
+ {
+ this->serializeMessage();
+ }
+ const qint64 ret = socket->writeDatagram(_buffer, _bufferSize, address, port);
+ if (ret != _bufferSize)
+ return false;
+ if (ret < 0)
+ return false;
+ _bufferPos = 0;
+ return true;
+}
+
+void NetworkMessage::serializeMessage()
+{
+ QByteArray buf;
+ //qDebug() << "Default size: " << buf.capacity();
+ buf.reserve(_lastBufferSize > 0 ? _lastBufferSize : 200);
+ for (QHash<QString, QByteArray>::const_iterator it = _fields.begin(); it != _fields.end(); ++it)
+ {
+ const QByteArray &ba = it.key().toUtf8();
+ const QByteArray &val = it.value();
+ quint16 keyLen = _htons((quint16)ba.size());
+ quint16 valLen = _htons((quint16)val.size());
+ //qDebug() << "Adding to msg(" << ba.size() << "/" << val.size() << "): " << ba << " -> " << val;
+ buf.append((char*)&keyLen, 2);
+ buf.append((char*)&valLen, 2);
+ buf.append(ba);
+ buf.append(val);
+ }
+ _bufferSize = buf.length() + HEADER_LEN;
+ allocBuffer();
+ memcpy(_buffer + HEADER_LEN, buf.data(), buf.size());
+ _buffer[0] = 'P';
+ _buffer[1] = 'V';
+ _buffer[2] = 'S';
+ _buffer[3] = '2';
+ const quint32 flipped = _htonl(_bufferSize - HEADER_LEN);
+ memcpy(_buffer + 4, &flipped, 4);
+}
+
+void NetworkMessage::buildErrorMessage(const QString& error)
+{
+ this->reset();
+ this->setField(_ID, _ERROR);
+ this->setField(_ERROR, error);
+}
+
+void NetworkMessage::buildErrorMessage(const char* error)
+{
+ this->buildErrorMessage(QString::fromUtf8(error));
+}
diff --git a/src/shared/networkmessage.h b/src/shared/networkmessage.h
new file mode 100644
index 0000000..5a8b2c2
--- /dev/null
+++ b/src/shared/networkmessage.h
@@ -0,0 +1,69 @@
+/*
+ * NetworkMessage.h
+ *
+ * Created on: 18.01.2013
+ * Author: sr
+ */
+
+#ifndef NETWORKMESSAGE_H_
+#define NETWORKMESSAGE_H_
+
+#include <QtCore>
+
+class QAbstractSocket;
+class QUdpSocket;
+
+// define qstrings for message ids. this prevents implicit instanciation of the same qstrings over and over again
+#define MSGTYPE(name) static const QString _ ## name ( #name )
+MSGTYPE(ID);
+MSGTYPE(IMG);
+MSGTYPE(LOGIN);
+MSGTYPE(THUMB);
+MSGTYPE(X);
+MSGTYPE(Y);
+MSGTYPE(VNCSERVER);
+MSGTYPE(VNCCLIENT);
+MSGTYPE(LOCK);
+MSGTYPE(HASH);
+MSGTYPE(SALT1);
+MSGTYPE(SALT2);
+MSGTYPE(IPLIST);
+MSGTYPE(PORT);
+MSGTYPE(CERT);
+MSGTYPE(CHALLENGE);
+MSGTYPE(ERROR);
+
+class NetworkMessage
+{
+private:
+ char *_buffer;
+ quint32 _bufferSize, _bufferPos, _lastBufferSize;
+ QHash<QString, QByteArray> _fields;
+ int _mode; // 0 = none, 1 = reading, 2 = writing, 3 = read complete, 4 = write complete
+
+ void allocBuffer();
+ bool parseHeader(char *header);
+ bool parseMessage(char *buffer);
+ void serializeMessage();
+
+public:
+ NetworkMessage();
+ virtual ~NetworkMessage();
+ bool readMessage(QAbstractSocket* socket);
+ bool readMessage(char* data, quint32 len);
+ bool writeMessage(QAbstractSocket* socket);
+ bool writeMessage(QUdpSocket* socket, const QHostAddress& address, quint16 port);
+ void reset() { _fields.clear(); _bufferSize = 0; _mode = 0; }
+ const bool readComplete() const { return _mode == 3; }
+ const bool writeComplete() const { return _mode == 4; }
+ const bool hasField(const QString& key) const { return _fields.contains(key); }
+ const QString getFieldString(const QString& key) const { return QString::fromUtf8(_fields.value(key)); }
+ const QByteArray getFieldBytes(const QString& key) const { return _fields.value(key); }
+ void setField(const QString& key, const QByteArray& value) { if (_mode == 1 || _mode == 2) qFatal("setField called in bad state."); _fields.insert(key, value); _mode = 0; }
+ void setField(const QString& key, const QString& value) { setField(key, value.toUtf8()); }
+ // Convenience
+ void buildErrorMessage(const QString& error);
+ void buildErrorMessage(const char* error);
+};
+
+#endif /* NETWORKMESSAGE_H_ */
diff --git a/src/shared/settings.h b/src/shared/settings.h
new file mode 100644
index 0000000..c1c45c1
--- /dev/null
+++ b/src/shared/settings.h
@@ -0,0 +1,12 @@
+#ifndef _SETTINGS_H_
+#define _SETTINGS_H_
+
+#define CLIENT_PORT 5194
+static const QString CLIENT_PORT_STR(QString::number(CLIENT_PORT));
+static const QByteArray CLIENT_PORT_ARRAY(QString::number(CLIENT_PORT).toUtf8());
+
+#define SERVICE_DISCOVERY_PORT 3492
+
+#define PING_TIMEOUT_MS 30000
+
+#endif
diff --git a/src/shared/util.cpp b/src/shared/util.cpp
new file mode 100644
index 0000000..d5c101e
--- /dev/null
+++ b/src/shared/util.cpp
@@ -0,0 +1,22 @@
+/*
+ * util.cpp
+ *
+ * Created on: 30.01.2013
+ * Author: sr
+ */
+
+#include "util.h"
+#include <QCryptographicHash>
+
+static QCryptographicHash sha1(QCryptographicHash::Sha1);
+
+QByteArray genSha1(const QByteArray* a, const QByteArray* b, const QByteArray* c, const QByteArray* d, const QByteArray* e)
+{
+ sha1.reset();
+ sha1.addData(*a);
+ if (b) sha1.addData(*b);
+ if (c) sha1.addData(*c);
+ if (d) sha1.addData(*d);
+ if (e) sha1.addData(*e);
+ return sha1.result();
+}
diff --git a/src/shared/util.h b/src/shared/util.h
new file mode 100644
index 0000000..c2e5145
--- /dev/null
+++ b/src/shared/util.h
@@ -0,0 +1,15 @@
+/*
+ * util.h
+ *
+ * Created on: 30.01.2013
+ * Author: sr
+ */
+
+#ifndef UTIL_H_
+#define UTIL_H_
+
+#include <QByteArray>
+
+QByteArray genSha1(const QByteArray* a, const QByteArray* b = NULL, const QByteArray* c = NULL, const QByteArray* d = NULL, const QByteArray* e = NULL);
+
+#endif /* UTIL_H_ */