diff options
author | axis <qt-info@nokia.com> | 2009-11-03 10:16:33 (GMT) |
---|---|---|
committer | axis <qt-info@nokia.com> | 2009-11-03 10:16:33 (GMT) |
commit | 51f258fb39e5bac9d3a2757afd8661e63c3d2680 (patch) | |
tree | d5788c8e530476443b5218d6ae5f94e1e064d40e | |
parent | 1ef5dddf91c666664911686ca77cb6c1b2cde828 (diff) | |
parent | 9fab0ede200960f0dbec1457757a6ba3214c3ce6 (diff) | |
download | Qt-51f258fb39e5bac9d3a2757afd8661e63c3d2680.zip Qt-51f258fb39e5bac9d3a2757afd8661e63c3d2680.tar.gz Qt-51f258fb39e5bac9d3a2757afd8661e63c3d2680.tar.bz2 |
Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt into 4.6-s60
333 files changed, 11105 insertions, 31721 deletions
diff --git a/config.tests/unix/opengles1/opengles1.pro b/config.tests/unix/opengles1/opengles1.pro index ad8dd31..1469aa9 100644 --- a/config.tests/unix/opengles1/opengles1.pro +++ b/config.tests/unix/opengles1/opengles1.pro @@ -1,9 +1,9 @@ SOURCES = opengles1.cpp -INCLUDEPATH += $$QMAKE_INCDIR_OPENGL +INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES1 -for(p, QMAKE_LIBDIR_OPENGL) { +for(p, QMAKE_LIBDIR_OPENGL_ES1) { exists($$p):LIBS += -L$$p } CONFIG -= qt -LIBS += $$QMAKE_LIBS_OPENGL_QT +LIBS += $$QMAKE_LIBS_OPENGL_ES1 diff --git a/config.tests/unix/opengles1cl/opengles1cl.pro b/config.tests/unix/opengles1cl/opengles1cl.pro index 415cdbb..c4c069e 100644 --- a/config.tests/unix/opengles1cl/opengles1cl.pro +++ b/config.tests/unix/opengles1cl/opengles1cl.pro @@ -1,9 +1,9 @@ SOURCES = opengles1cl.cpp -INCLUDEPATH += $$QMAKE_INCDIR_OPENGL +INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES1CL -for(p, QMAKE_LIBDIR_OPENGL) { +for(p, QMAKE_LIBDIR_OPENGL_ES1CL) { exists($$p):LIBS += -L$$p } CONFIG -= qt -LIBS += $$QMAKE_LIBS_OPENGL_QT +LIBS += $$QMAKE_LIBS_OPENGL_ES1CL diff --git a/config.tests/unix/opengles2/opengles2.pro b/config.tests/unix/opengles2/opengles2.pro index 0dfae42..c383fd0 100644 --- a/config.tests/unix/opengles2/opengles2.pro +++ b/config.tests/unix/opengles2/opengles2.pro @@ -1,9 +1,9 @@ SOURCES = opengles2.cpp -INCLUDEPATH += $$QMAKE_INCDIR_OPENGL +INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES2 -for(p, QMAKE_LIBDIR_OPENGL) { +for(p, QMAKE_LIBDIR_OPENGL_ES2) { exists($$p):LIBS += -L$$p } CONFIG -= qt -LIBS += $$QMAKE_LIBS_OPENGL_QT +LIBS += $$QMAKE_LIBS_OPENGL_ES2 diff --git a/demos/embedded/anomaly/src/images/edit-find.png b/demos/embedded/anomaly/src/images/edit-find.png Binary files differindex 5594785..b84b1e2 100644 --- a/demos/embedded/anomaly/src/images/edit-find.png +++ b/demos/embedded/anomaly/src/images/edit-find.png diff --git a/demos/embedded/anomaly/src/images/go-next.png b/demos/embedded/anomaly/src/images/go-next.png Binary files differindex a68e2db..ed89a36 100644 --- a/demos/embedded/anomaly/src/images/go-next.png +++ b/demos/embedded/anomaly/src/images/go-next.png diff --git a/demos/embedded/anomaly/src/images/go-previous.png b/demos/embedded/anomaly/src/images/go-previous.png Binary files differindex c37bc04..44e803d 100644 --- a/demos/embedded/anomaly/src/images/go-previous.png +++ b/demos/embedded/anomaly/src/images/go-previous.png diff --git a/demos/embedded/desktopservices/data/designer.png b/demos/embedded/desktopservices/data/designer.png Binary files differindex 0988fce..1485efa 100644 --- a/demos/embedded/desktopservices/data/designer.png +++ b/demos/embedded/desktopservices/data/designer.png diff --git a/demos/embedded/desktopservices/data/sax.mp3 b/demos/embedded/desktopservices/data/sax.mp3 Binary files differindex 0a078b1..d77c817 100644 --- a/demos/embedded/desktopservices/data/sax.mp3 +++ b/demos/embedded/desktopservices/data/sax.mp3 diff --git a/demos/embedded/desktopservices/resources/browser.png b/demos/embedded/desktopservices/resources/browser.png Binary files differindex 28561e1..9ecda6b 100644 --- a/demos/embedded/desktopservices/resources/browser.png +++ b/demos/embedded/desktopservices/resources/browser.png diff --git a/demos/embedded/desktopservices/resources/message.png b/demos/embedded/desktopservices/resources/message.png Binary files differindex e30052b..78917c7 100644 --- a/demos/embedded/desktopservices/resources/message.png +++ b/demos/embedded/desktopservices/resources/message.png diff --git a/demos/embedded/desktopservices/resources/music.png b/demos/embedded/desktopservices/resources/music.png Binary files differindex 11a57bb..cc569cb 100644 --- a/demos/embedded/desktopservices/resources/music.png +++ b/demos/embedded/desktopservices/resources/music.png diff --git a/demos/embedded/desktopservices/resources/photo.png b/demos/embedded/desktopservices/resources/photo.png Binary files differindex 5ba15c1..ac81cf3 100644 --- a/demos/embedded/desktopservices/resources/photo.png +++ b/demos/embedded/desktopservices/resources/photo.png diff --git a/demos/embedded/flightinfo/aircraft.png b/demos/embedded/flightinfo/aircraft.png Binary files differindex 0845cb4..2312bcc 100644 --- a/demos/embedded/flightinfo/aircraft.png +++ b/demos/embedded/flightinfo/aircraft.png diff --git a/demos/embedded/fluidlauncher/screenshots/context2d_s60.png b/demos/embedded/fluidlauncher/screenshots/context2d_s60.png Binary files differindex c7225c7..9c288c9 100644 --- a/demos/embedded/fluidlauncher/screenshots/context2d_s60.png +++ b/demos/embedded/fluidlauncher/screenshots/context2d_s60.png diff --git a/demos/embedded/fluidlauncher/screenshots/desktopservices_s60.png b/demos/embedded/fluidlauncher/screenshots/desktopservices_s60.png Binary files differindex a429be3..64018f4 100644 --- a/demos/embedded/fluidlauncher/screenshots/desktopservices_s60.png +++ b/demos/embedded/fluidlauncher/screenshots/desktopservices_s60.png diff --git a/demos/embedded/fluidlauncher/screenshots/digiflip.png b/demos/embedded/fluidlauncher/screenshots/digiflip.png Binary files differindex 117b61b..c31a6f8 100644 --- a/demos/embedded/fluidlauncher/screenshots/digiflip.png +++ b/demos/embedded/fluidlauncher/screenshots/digiflip.png diff --git a/demos/embedded/fluidlauncher/screenshots/flickable.png b/demos/embedded/fluidlauncher/screenshots/flickable.png Binary files differindex 7080fc1..bad14bf 100644 --- a/demos/embedded/fluidlauncher/screenshots/flickable.png +++ b/demos/embedded/fluidlauncher/screenshots/flickable.png diff --git a/demos/embedded/fluidlauncher/screenshots/flightinfo_s60.png b/demos/embedded/fluidlauncher/screenshots/flightinfo_s60.png Binary files differindex 8a304eb..8e74d77 100644 --- a/demos/embedded/fluidlauncher/screenshots/flightinfo_s60.png +++ b/demos/embedded/fluidlauncher/screenshots/flightinfo_s60.png diff --git a/demos/embedded/fluidlauncher/screenshots/lightmaps.png b/demos/embedded/fluidlauncher/screenshots/lightmaps.png Binary files differindex 7cbe2e4..18aa74d 100644 --- a/demos/embedded/fluidlauncher/screenshots/lightmaps.png +++ b/demos/embedded/fluidlauncher/screenshots/lightmaps.png diff --git a/demos/embedded/fluidlauncher/screenshots/mediaplayer.png b/demos/embedded/fluidlauncher/screenshots/mediaplayer.png Binary files differindex 2d8a637..c9fd43c 100644 --- a/demos/embedded/fluidlauncher/screenshots/mediaplayer.png +++ b/demos/embedded/fluidlauncher/screenshots/mediaplayer.png diff --git a/demos/embedded/fluidlauncher/screenshots/raycasting.png b/demos/embedded/fluidlauncher/screenshots/raycasting.png Binary files differindex d3c86e9..b6b738a 100644 --- a/demos/embedded/fluidlauncher/screenshots/raycasting.png +++ b/demos/embedded/fluidlauncher/screenshots/raycasting.png diff --git a/demos/embedded/fluidlauncher/screenshots/weatherinfo.png b/demos/embedded/fluidlauncher/screenshots/weatherinfo.png Binary files differindex b18608d..7e23891 100644 --- a/demos/embedded/fluidlauncher/screenshots/weatherinfo.png +++ b/demos/embedded/fluidlauncher/screenshots/weatherinfo.png diff --git a/demos/embedded/fluidlauncher/slides/demo_1.png b/demos/embedded/fluidlauncher/slides/demo_1.png Binary files differindex d2952e5..d53d19d 100644 --- a/demos/embedded/fluidlauncher/slides/demo_1.png +++ b/demos/embedded/fluidlauncher/slides/demo_1.png diff --git a/demos/embedded/fluidlauncher/slides/demo_2.png b/demos/embedded/fluidlauncher/slides/demo_2.png Binary files differindex 1899825..f137de0 100644 --- a/demos/embedded/fluidlauncher/slides/demo_2.png +++ b/demos/embedded/fluidlauncher/slides/demo_2.png diff --git a/demos/embedded/fluidlauncher/slides/demo_5.png b/demos/embedded/fluidlauncher/slides/demo_5.png Binary files differindex 239f08a..0bb1781 100644 --- a/demos/embedded/fluidlauncher/slides/demo_5.png +++ b/demos/embedded/fluidlauncher/slides/demo_5.png diff --git a/demos/embedded/fluidlauncher/slides/demo_6.png b/demos/embedded/fluidlauncher/slides/demo_6.png Binary files differindex 0addf37..9daba67 100644 --- a/demos/embedded/fluidlauncher/slides/demo_6.png +++ b/demos/embedded/fluidlauncher/slides/demo_6.png diff --git a/demos/embedded/raycasting/textures.png b/demos/embedded/raycasting/textures.png Binary files differindex 839488b..2eb1ba7 100644 --- a/demos/embedded/raycasting/textures.png +++ b/demos/embedded/raycasting/textures.png diff --git a/demos/embedded/weatherinfo/icons/weather-few-clouds.svg b/demos/embedded/weatherinfo/icons/weather-few-clouds.svg index 57d45e9..a53e3d6 100644 --- a/demos/embedded/weatherinfo/icons/weather-few-clouds.svg +++ b/demos/embedded/weatherinfo/icons/weather-few-clouds.svg @@ -1,337 +1,70 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="48px" - height="48px" - id="svg1306" - sodipodi:version="0.32" - inkscape:version="0.46" - sodipodi:docbase="/home/garrett/Source/tango-icon-theme/scalable/status" - sodipodi:docname="weather-few-clouds.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs1308"> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 24 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="48 : 24 : 1" - inkscape:persp3d-origin="24 : 16 : 1" - id="perspective108" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient6724" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient6722" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient6720" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient6718" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient6716" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient6714" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient6712" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient6839" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6549"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6551" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6553" /> +<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" width="48px" height="48px" id="svg1306"> + <defs id="defs1308"> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient6724" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient6722" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient6720" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient6718" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient6716" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient6714" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient6712" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient6839" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient id="linearGradient6549"> + <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient6837" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6527"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6530" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6532" /> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient6837" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient id="linearGradient6527"> + <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient6835" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6538"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6540" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6542" /> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient6835" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient id="linearGradient6538"> + <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient6833" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6513"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6515" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6517" /> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient6833" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient id="linearGradient6513"> + <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient6831" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6497"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6499" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6501" /> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient6831" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient id="linearGradient6497"> + <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient6829" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6470"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6472" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6474" /> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient6829" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient id="linearGradient6470"> + <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient6827" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - id="linearGradient4083"> - <stop - id="stop4085" - offset="0" - style="stop-color:#ffffff;stop-opacity:0;" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="0.75" - id="stop4089" /> - <stop - id="stop4087" - offset="1" - style="stop-color:#ffffff;stop-opacity:1;" /> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient6827" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient id="linearGradient4083"> + <stop id="stop4085" offset="0" stop-color="#ffffff" stop-opacity="0"/> + <stop offset="0.75" id="stop4089" stop-color="#ffffff" stop-opacity="0"/> + <stop id="stop4087" offset="1" stop-color="#ffffff" stop-opacity="1"/> </linearGradient> - <linearGradient - id="linearGradient4032"> - <stop - id="stop4034" - offset="0" - style="stop-color:#fff7c2;stop-opacity:0.63829786" /> - <stop - style="stop-color:#fcaf3e;stop-opacity:0.18348624;" - offset="0.59394139" - id="stop4036" /> - <stop - id="stop4038" - offset="0.83850551" - style="stop-color:#fcaf3e;stop-opacity:0.50458717;" /> - <stop - id="stop4040" - offset="1" - style="stop-color:#fcaf3e;stop-opacity:1;" /> + <linearGradient id="linearGradient4032"> + <stop id="stop4034" offset="0" stop-color="#fff7c2" stop-opacity="0.63829786"/> + <stop offset="0.59394139" id="stop4036" stop-color="#fcaf3e" stop-opacity="0.18348624"/> + <stop id="stop4038" offset="0.83850551" stop-color="#fcaf3e" stop-opacity="0.50458717"/> + <stop id="stop4040" offset="1" stop-color="#fcaf3e" stop-opacity="1"/> </linearGradient> - <linearGradient - id="linearGradient4026"> - <stop - id="stop4028" - offset="0" - style="stop-color:#fff9c6;stop-opacity:1" /> - <stop - style="stop-color:#fff28c;stop-opacity:1;" - offset="0.54166669" - id="stop4042" /> - <stop - id="stop4030" - offset="1" - style="stop-color:#ffea85;stop-opacity:1;" /> + <linearGradient id="linearGradient4026"> + <stop id="stop4028" offset="0" stop-color="#fff9c6" stop-opacity="1"/> + <stop offset="0.54166669" id="stop4042" stop-color="#fff28c" stop-opacity="1"/> + <stop id="stop4030" offset="1" stop-color="#ffea85" stop-opacity="1"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4026" - id="linearGradient3168" - gradientUnits="userSpaceOnUse" - x1="-28.968945" - y1="-25.326815" - x2="-37.19698" - y2="-9.5590506" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4032" - id="radialGradient4020" - cx="-33.519073" - cy="-22.113297" - fx="-33.519073" - fy="-22.113297" - r="9.5" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.487739,1.292402,-1.10267,0.497242,-41.77393,32.41492)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4083" - id="radialGradient4081" - cx="23.99999" - cy="23.381506" - fx="23.99999" - fy="23.381506" - r="19.141981" - gradientTransform="matrix(1.006701,2.235326e-16,-2.23715e-16,1.007522,-0.160816,0.426981)" - gradientUnits="userSpaceOnUse" /> + <linearGradient xlink:href="#linearGradient4026" id="linearGradient3168" gradientUnits="userSpaceOnUse" x1="-28.968945" y1="-25.326815" x2="-37.19698" y2="-9.5590506"/> + <radialGradient xlink:href="#linearGradient4032" id="radialGradient4020" cx="-33.519073" cy="-22.113297" fx="-33.519073" fy="-22.113297" r="9.5" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.487739,1.292402,-1.10267,0.497242,-41.77393,32.41492)"/> + <radialGradient xlink:href="#linearGradient4083" id="radialGradient4081" cx="23.99999" cy="23.381506" fx="23.99999" fy="23.381506" r="19.141981" gradientTransform="matrix(1.006701,2.235326e-16,-2.23715e-16,1.007522,-0.160816,0.426981)" gradientUnits="userSpaceOnUse"/> </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="10.54135" - inkscape:cx="8.0181254" - inkscape:cy="24.950603" - inkscape:current-layer="layer1" - showgrid="true" - inkscape:grid-bbox="true" - inkscape:document-units="px" - inkscape:window-width="859" - inkscape:window-height="818" - inkscape:window-x="0" - inkscape:window-y="30" - inkscape:showpageshadow="false" /> - <metadata - id="metadata1311"> + + <metadata id="metadata1311"> <rdf:RDF> - <cc:Work - rdf:about=""> + <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:title>weather-clear</dc:title> <dc:date>January 2006</dc:date> <dc:creator> @@ -352,386 +85,88 @@ <rdf:li>notification</rdf:li> </rdf:Bag> </dc:subject> - <cc:license - rdf:resource="http://creativecommons.org/licenses/publicdomain/" /> + <cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/> <dc:contributor> <cc:Agent> <dc:title>Garrett LeSage</dc:title> </cc:Agent> </dc:contributor> </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/publicdomain/"> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Reproduction" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Distribution" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> + <cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/"> + <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/> + <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/> + <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/> </cc:License> </rdf:RDF> </metadata> - <g - id="layer1" - inkscape:label="Layer 1" - inkscape:groupmode="layer"> - <g - id="g6783" - transform="translate(-263.99,459.9855)"> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path6785" - d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " - style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path6787" - d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " - style="opacity:1.0000000;fill:url(#linearGradient6827);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <g - id="g6789"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6791" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient6829);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6793" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" /> + <g id="layer1"> + <g transform="translate(-263.99,459.9855)"> + <path d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " fill="#c4c5c2" fill-opacity="1.0000000" stroke="#888a85" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " opacity="1.0000000" fill="url(#linearGradient6827)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" opacity="1.0000000" fill="url(#linearGradient6829)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <rect - y="-438.00000" - x="271.00000" - height="9.0000000" - width="20.000000" - id="rect6795" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path6797" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <g - id="g6799"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6801" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient6831);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6803" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" /> + <rect y="-438.00000" x="271.00000" height="9.0000000" width="20.000000" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6831)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g6805"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6807" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient6833);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6809" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" /> + <g> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6833)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(-1.000000,0.000000)" - id="g6811"> - <path - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " - id="path6813" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient6835);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " - id="path6815" /> + <g transform="translate(-1.000000,0.000000)"> + <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " opacity="1.0000000" fill="url(#linearGradient6835)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path6817" - style="opacity:1.0000000;fill:url(#linearGradient6837);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - sodipodi:nodetypes="ccss" - id="path6819" - d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " - style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" /> - <g - transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)" - id="g6821"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6823" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient6839);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6825" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" /> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient6837)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " fill="#888a85" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <g transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6839)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> - <g - id="g3936"> - <g - style="opacity:0.7" - id="g4091"> - <path - style="fill:#fce94f;fill-opacity:1;stroke:#fcaf3e;stroke-width:0.73732895;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 24 2.5 L 21.625 9.1875 C 22.399034 9.0641318 23.191406 9 24 9 C 24.808594 9 25.600966 9.0641317 26.375 9.1875 L 24 2.5 z M 8.8125 8.78125 L 11.84375 15.21875 C 12.779034 13.928569 13.928569 12.779034 15.21875 11.84375 L 8.8125 8.78125 z M 39.21875 8.78125 L 32.78125 11.84375 C 34.071431 12.779034 35.220966 13.928569 36.15625 15.21875 L 39.21875 8.78125 z M 9.1875 21.59375 L 2.5 23.96875 L 9.1875 26.34375 C 9.0673373 25.57952 9 24.797813 9 24 C 9 23.180625 9.0608858 22.377571 9.1875 21.59375 z M 38.8125 21.625 C 38.935868 22.399034 39 23.191406 39 24 C 39 24.808594 38.935868 25.600966 38.8125 26.375 L 45.5 24 L 38.8125 21.625 z M 11.84375 32.78125 L 8.8125 39.1875 L 15.21875 36.15625 C 13.928569 35.220966 12.779034 34.071431 11.84375 32.78125 z M 36.15625 32.78125 C 35.229789 34.05926 34.087617 35.194799 32.8125 36.125 L 39.21875 39.1875 L 36.15625 32.78125 z M 21.625 38.8125 L 24 45.5 L 26.375 38.8125 C 25.600966 38.935868 24.808594 39 24 39 C 23.191406 39 22.399034 38.935868 21.625 38.8125 z " - id="path7492" /> - <path - style="fill:none;fill-opacity:1;stroke:url(#radialGradient4081);stroke-width:0.84646249;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 24 5.25 L 22.65625 9.0625 C 23.098888 9.0231486 23.547187 9 24 9 C 24.452813 9 24.901112 9.0231486 25.34375 9.0625 L 24 5.25 z M 10.78125 10.75 L 12.5 14.375 C 13.071538 13.694089 13.724004 13.038745 14.40625 12.46875 L 10.78125 10.75 z M 37.25 10.75 L 33.625 12.46875 C 34.304675 13.038189 34.961811 13.695325 35.53125 14.375 L 37.25 10.75 z M 9.0625 22.625 L 5.28125 23.96875 L 9.0625 25.3125 C 9.024981 24.880146 9 24.442031 9 24 C 9 23.536406 9.0212735 23.077908 9.0625 22.625 z M 38.9375 22.65625 C 38.976851 23.098888 39 23.547187 39 24 C 39 24.452813 38.976851 24.901112 38.9375 25.34375 L 42.71875 24 L 38.9375 22.65625 z M 35.53125 33.59375 C 34.958293 34.27954 34.309985 34.957363 33.625 35.53125 L 37.25 37.25 L 35.53125 33.59375 z M 12.5 33.625 L 10.78125 37.21875 L 14.375 35.5 C 13.702932 34.935884 13.064116 34.297068 12.5 33.625 z M 22.65625 38.9375 L 24 42.71875 L 25.34375 38.9375 C 24.901112 38.976851 24.452813 39 24 39 C 23.547187 39 23.098888 38.976851 22.65625 38.9375 z " - id="path7494" /> + <g> + <g opacity="0.7"> + <path d="M 24 2.5 L 21.625 9.1875 C 22.399034 9.0641318 23.191406 9 24 9 C 24.808594 9 25.600966 9.0641317 26.375 9.1875 L 24 2.5 z M 8.8125 8.78125 L 11.84375 15.21875 C 12.779034 13.928569 13.928569 12.779034 15.21875 11.84375 L 8.8125 8.78125 z M 39.21875 8.78125 L 32.78125 11.84375 C 34.071431 12.779034 35.220966 13.928569 36.15625 15.21875 L 39.21875 8.78125 z M 9.1875 21.59375 L 2.5 23.96875 L 9.1875 26.34375 C 9.0673373 25.57952 9 24.797813 9 24 C 9 23.180625 9.0608858 22.377571 9.1875 21.59375 z M 38.8125 21.625 C 38.935868 22.399034 39 23.191406 39 24 C 39 24.808594 38.935868 25.600966 38.8125 26.375 L 45.5 24 L 38.8125 21.625 z M 11.84375 32.78125 L 8.8125 39.1875 L 15.21875 36.15625 C 13.928569 35.220966 12.779034 34.071431 11.84375 32.78125 z M 36.15625 32.78125 C 35.229789 34.05926 34.087617 35.194799 32.8125 36.125 L 39.21875 39.1875 L 36.15625 32.78125 z M 21.625 38.8125 L 24 45.5 L 26.375 38.8125 C 25.600966 38.935868 24.808594 39 24 39 C 23.191406 39 22.399034 38.935868 21.625 38.8125 z " fill="#fce94f" fill-opacity="1" stroke="#fcaf3e" stroke-width="0.73732895" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> + <path d="M 24 5.25 L 22.65625 9.0625 C 23.098888 9.0231486 23.547187 9 24 9 C 24.452813 9 24.901112 9.0231486 25.34375 9.0625 L 24 5.25 z M 10.78125 10.75 L 12.5 14.375 C 13.071538 13.694089 13.724004 13.038745 14.40625 12.46875 L 10.78125 10.75 z M 37.25 10.75 L 33.625 12.46875 C 34.304675 13.038189 34.961811 13.695325 35.53125 14.375 L 37.25 10.75 z M 9.0625 22.625 L 5.28125 23.96875 L 9.0625 25.3125 C 9.024981 24.880146 9 24.442031 9 24 C 9 23.536406 9.0212735 23.077908 9.0625 22.625 z M 38.9375 22.65625 C 38.976851 23.098888 39 23.547187 39 24 C 39 24.452813 38.976851 24.901112 38.9375 25.34375 L 42.71875 24 L 38.9375 22.65625 z M 35.53125 33.59375 C 34.958293 34.27954 34.309985 34.957363 33.625 35.53125 L 37.25 37.25 L 35.53125 33.59375 z M 12.5 33.625 L 10.78125 37.21875 L 14.375 35.5 C 13.702932 34.935884 13.064116 34.297068 12.5 33.625 z M 22.65625 38.9375 L 24 42.71875 L 25.34375 38.9375 C 24.901112 38.976851 24.452813 39 24 39 C 23.547187 39 23.098888 38.976851 22.65625 38.9375 z " fill="none" fill-opacity="1" stroke="url(#radialGradient4081)" stroke-width="0.84646249" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> </g> - <g - id="g4046"> - <g - id="g3931"> - <path - inkscape:r_cy="true" - inkscape:r_cx="true" - transform="matrix(0.778062,-1.061285,1.061287,0.778062,67.47952,3.641324)" - d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" - sodipodi:ry="9.5" - sodipodi:rx="9.5" - sodipodi:cy="-17.5" - sodipodi:cx="-32" - id="path7498" - style="fill:#ffee54;fill-opacity:1;stroke:#fcaf3e;stroke-width:0.75991178;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - sodipodi:type="arc" /> - <path - inkscape:r_cy="true" - inkscape:r_cx="true" - transform="matrix(1.244257,-0.167707,0.216642,1.251844,67.61648,40.527)" - d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" - sodipodi:ry="9.5" - sodipodi:rx="9.5" - sodipodi:cy="-17.5" - sodipodi:cx="-32" - id="path7500" - style="fill:url(#radialGradient4020);fill-opacity:1;stroke:none;stroke-width:1.01737845;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - sodipodi:type="arc" /> - <path - inkscape:r_cy="true" - inkscape:r_cx="true" - transform="matrix(0.715791,-0.976349,0.97635,0.715792,64.00044,5.269544)" - d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" - sodipodi:ry="9.5" - sodipodi:rx="9.5" - sodipodi:cy="-17.5" - sodipodi:cx="-32" - id="path7502" - style="fill:none;fill-opacity:1;stroke:url(#linearGradient3168);stroke-width:0.82601947;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - sodipodi:type="arc" /> + <g> + <g> + <path transform="matrix(0.778062,-1.061285,1.061287,0.778062,67.47952,3.641324)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" fill="#ffee54" fill-opacity="1" stroke="#fcaf3e" stroke-width="0.75991178" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> + <path transform="matrix(1.244257,-0.167707,0.216642,1.251844,67.61648,40.527)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" fill="url(#radialGradient4020)" fill-opacity="1" stroke="none" stroke-width="1.01737845" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> + <path transform="matrix(0.715791,-0.976349,0.97635,0.715792,64.00044,5.269544)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" fill="none" fill-opacity="1" stroke="url(#linearGradient3168)" stroke-width="0.82601947" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> </g> </g> </g> - <g - id="g6668" - transform="translate(-248.99,467.9855)"> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path6670" - d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " - style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path6672" - d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " - style="opacity:1.0000000;fill:url(#linearGradient6712);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <g - id="g6674"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6676" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient6714);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6678" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" /> + <g transform="translate(-248.99,467.9855)"> + <path d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " fill="#c4c5c2" fill-opacity="1.0000000" stroke="#888a85" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " opacity="1.0000000" fill="url(#linearGradient6712)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" opacity="1.0000000" fill="url(#linearGradient6714)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <rect - y="-438.00000" - x="271.00000" - height="9.0000000" - width="20.000000" - id="rect6680" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path6682" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <g - id="g6684"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6686" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient6716);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6688" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" /> + <rect y="-438.00000" x="271.00000" height="9.0000000" width="20.000000" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6716)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g6690"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6692" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient6718);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6694" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" /> + <g> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6718)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(-1.000000,0.000000)" - id="g6696"> - <path - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " - id="path6698" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient6720);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " - id="path6700" /> + <g transform="translate(-1.000000,0.000000)"> + <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " opacity="1.0000000" fill="url(#linearGradient6720)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path6702" - style="opacity:1.0000000;fill:url(#linearGradient6722);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - sodipodi:nodetypes="ccss" - id="path6704" - d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " - style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" /> - <g - transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)" - id="g6706"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6708" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient6724);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6710" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" /> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient6722)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " fill="#888a85" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <g transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6724)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> </g> diff --git a/demos/embedded/weatherinfo/icons/weather-fog.svg b/demos/embedded/weatherinfo/icons/weather-fog.svg index a9a4ca8..56a2444 100644 --- a/demos/embedded/weatherinfo/icons/weather-fog.svg +++ b/demos/embedded/weatherinfo/icons/weather-fog.svg @@ -1,1585 +1,114 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="48" - height="48" - id="svg2670" - sodipodi:version="0.32" - inkscape:version="0.46" - version="1.0" - sodipodi:docname="weather-fog.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs2672"> - <linearGradient - inkscape:collect="always" - id="linearGradient6549"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6551" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6553" /> +<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" width="48" height="48" id="svg2670" version="1.0"> + <defs id="defs2672"> + <linearGradient id="linearGradient6549"> + <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6527"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6530" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6532" /> + <linearGradient id="linearGradient6527"> + <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6538"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6540" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6542" /> + <linearGradient id="linearGradient6538"> + <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6513"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6515" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6517" /> + <linearGradient id="linearGradient6513"> + <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6497"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6499" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6501" /> + <linearGradient id="linearGradient6497"> + <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6470"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6472" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6474" /> + <linearGradient id="linearGradient6470"> + <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient7834"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop7836" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop7838" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient8397"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8400" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8402" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient8315"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8317" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8319" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient8381"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8383" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8385" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient8331"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8333" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8335" /> - </linearGradient> - <linearGradient - id="linearGradient8302"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8304" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8306" /> - </linearGradient> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 526.18109 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="744.09448 : 526.18109 : 1" - inkscape:persp3d-origin="372.04724 : 350.78739 : 1" - id="perspective2678" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8302" - id="linearGradient4844" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(69.00259,102)" - x1="228.50261" - y1="-392.30591" - x2="278.91510" - y2="-375.37952" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8331" - id="linearGradient4846" - gradientUnits="userSpaceOnUse" - x1="240.07379" - y1="-393.40720" - x2="245.82706" - y2="-388.55029" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8381" - id="linearGradient4848" - gradientUnits="userSpaceOnUse" - x1="246.74042" - y1="-391.31381" - x2="252.69785" - y2="-385.35165" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8315" - id="linearGradient4850" - gradientUnits="userSpaceOnUse" - x1="230.87598" - y1="-390.43951" - x2="235.25652" - y2="-386.95901" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8397" - id="linearGradient4852" - gradientUnits="userSpaceOnUse" - x1="238.00478" - y1="-388.47476" - x2="245.65462" - y2="-382.64539" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient7834" - id="linearGradient4854" - gradientUnits="userSpaceOnUse" - x1="-156.29044" - y1="-100.53421" - x2="-153.09810" - y2="-96.544556" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient4856" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient4858" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient4860" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient4862" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient4864" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient4866" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient4868" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient4870" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient4872" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient4874" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient4876" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient4878" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient4880" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient4882" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8302" - id="linearGradient5018" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(69.00259,102)" - x1="228.50261" - y1="-392.30591" - x2="278.91510" - y2="-375.37952" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8331" - id="linearGradient5020" - gradientUnits="userSpaceOnUse" - x1="240.07379" - y1="-393.40720" - x2="245.82706" - y2="-388.55029" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8381" - id="linearGradient5022" - gradientUnits="userSpaceOnUse" - x1="246.74042" - y1="-391.31381" - x2="252.69785" - y2="-385.35165" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8315" - id="linearGradient5024" - gradientUnits="userSpaceOnUse" - x1="230.87598" - y1="-390.43951" - x2="235.25652" - y2="-386.95901" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8397" - id="linearGradient5026" - gradientUnits="userSpaceOnUse" - x1="238.00478" - y1="-388.47476" - x2="245.65462" - y2="-382.64539" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient7834" - id="linearGradient5028" - gradientUnits="userSpaceOnUse" - x1="-156.29044" - y1="-100.53421" - x2="-153.09810" - y2="-96.544556" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5030" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient5032" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient5034" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5036" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient5038" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient5040" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5042" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5044" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient5046" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient5048" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5050" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient5052" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient5054" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5056" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8302" - id="linearGradient5119" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-245.83994,432.62036)" - x1="228.50261" - y1="-392.30591" - x2="278.91510" - y2="-375.37952" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5122" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient5124" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient5126" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5128" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient5130" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient5132" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5134" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5156" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" - gradientTransform="translate(-276.83994,492.62036)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5159" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient5161" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient5163" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5165" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient5167" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient5169" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5171" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5193" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" - gradientTransform="translate(-291.84253,488.62036)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5221" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-291.84253,488.62036)" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8302" - id="linearGradient5298" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(69.00259,102)" - x1="228.50261" - y1="-392.30591" - x2="278.91510" - y2="-375.37952" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8331" - id="linearGradient5300" - gradientUnits="userSpaceOnUse" - x1="240.07379" - y1="-393.40720" - x2="245.82706" - y2="-388.55029" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8381" - id="linearGradient5302" - gradientUnits="userSpaceOnUse" - x1="246.74042" - y1="-391.31381" - x2="252.69785" - y2="-385.35165" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8315" - id="linearGradient5304" - gradientUnits="userSpaceOnUse" - x1="230.87598" - y1="-390.43951" - x2="235.25652" - y2="-386.95901" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8397" - id="linearGradient5306" - gradientUnits="userSpaceOnUse" - x1="238.00478" - y1="-388.47476" - x2="245.65462" - y2="-382.64539" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient7834" - id="linearGradient5308" - gradientUnits="userSpaceOnUse" - x1="-156.29044" - y1="-100.53421" - x2="-153.09810" - y2="-96.544556" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5310" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient5312" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient5314" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5316" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient5318" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient5320" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5322" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5324" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient5326" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient5328" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5330" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient5332" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient5334" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5336" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8302" - id="linearGradient5399" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-217.99871,406.5)" - x1="228.50261" - y1="-392.30591" - x2="278.91510" - y2="-375.37952" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8302" - id="linearGradient5432" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-245.83994,432.62036)" - x1="228.50261" - y1="-392.30591" - x2="278.91510" - y2="-375.37952" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5434" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-276.83994,492.62036)" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5436" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-291.84253,488.62036)" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8302" - id="linearGradient5515" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-217.99871,406.5)" - x1="228.50261" - y1="-392.30591" - x2="278.91510" - y2="-375.37952" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8331" - id="linearGradient5517" - gradientUnits="userSpaceOnUse" - x1="240.07379" - y1="-393.40720" - x2="245.82706" - y2="-388.55029" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8381" - id="linearGradient5519" - gradientUnits="userSpaceOnUse" - x1="246.74042" - y1="-391.31381" - x2="252.69785" - y2="-385.35165" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8315" - id="linearGradient5521" - gradientUnits="userSpaceOnUse" - x1="230.87598" - y1="-390.43951" - x2="235.25652" - y2="-386.95901" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8397" - id="linearGradient5523" - gradientUnits="userSpaceOnUse" - x1="238.00478" - y1="-388.47476" - x2="245.65462" - y2="-382.64539" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient7834" - id="linearGradient5525" - gradientUnits="userSpaceOnUse" - x1="-156.29044" - y1="-100.53421" - x2="-153.09810" - y2="-96.544556" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5527" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient5529" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient5531" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5533" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient5535" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient5537" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5539" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5541" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient5543" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient5545" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5547" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient5549" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient5551" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5553" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5689" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient5691" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient5693" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5695" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient5697" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient5699" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5701" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient5703" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient5705" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient5707" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5709" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient5711" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient5713" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient5715" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient5689" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient5691" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient5693" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient5695" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient5697" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient5699" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient5701" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient5703" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient5705" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient5707" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient5709" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient5711" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient5713" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient5715" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - gridtolerance="10000" - guidetolerance="10" - objecttolerance="10" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="16.270833" - inkscape:cx="12.725406" - inkscape:cy="24" - inkscape:document-units="px" - inkscape:current-layer="layer1" - showgrid="false" - showguides="true" - inkscape:guide-bbox="true" - inkscape:window-width="1272" - inkscape:window-height="965" - inkscape:window-x="0" - inkscape:window-y="0" /> - <metadata - id="metadata2675"> + + <metadata id="metadata2675"> <rdf:RDF> - <cc:Work - rdf:about=""> + <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> </cc:Work> </rdf:RDF> </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1"> - <g - id="g5641" - transform="translate(5e-6,-4)"> - <g - style="opacity:0.45" - transform="translate(-248.99871,466.5)" - id="g7794"> - <path - style="fill:#c4c5c2;fill-opacity:1;stroke:#888a85;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 280.5,-445.5 C 278.22917,-445.5 276.39009,-443.94972 275.78125,-441.875 C 275.08802,-442.23883 274.33674,-442.5 273.5,-442.5 C 270.74,-442.5 268.49999,-440.26001 268.5,-437.5 C 268.5,-436.92107 268.66252,-436.3923 268.84375,-435.875 C 267.47028,-435.10426 266.5,-433.686 266.5,-432 C 266.5,-429.516 268.516,-427.49999 271,-427.5 C 271.17713,-427.5 289.82287,-427.5 290,-427.5 C 292.48399,-427.5 294.5,-429.516 294.5,-432 C 294.5,-433.686 293.52972,-435.10426 292.15625,-435.875 C 292.33749,-436.39229 292.5,-436.92108 292.5,-437.5 C 292.5,-440.26 290.26,-442.49999 287.5,-442.5 C 286.66326,-442.5 285.91198,-442.23883 285.21875,-441.875 C 284.60991,-443.94972 282.77083,-445.5 280.5,-445.5 z" - id="path7796" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - style="opacity:1;fill:url(#linearGradient5689);fill-opacity:1;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 280.5,-445 C 278.31028,-445 276.7764,-443.66423 276.10445,-441.15648 C 275.43599,-441.5001 274.55686,-441.98983 273.75,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.1124,-434.89433 267,-433.73178 267,-432.24973 C 267,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294,-429.90368 294,-432.24973 C 294,-433.8421 292.8876,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.051 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.6082,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445 280.5,-445 z" - id="path7798" - sodipodi:nodetypes="ccsscsssscsscc" /> - <g - id="g7800"> - <path - transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7802" - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7804" - style="opacity:1;fill:url(#linearGradient5691);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> + <g id="layer1"> + <g transform="translate(5e-6,-4)"> + <g transform="translate(-248.99871,466.5)" opacity="0.45"> + <path d="M 280.5,-445.5 C 278.22917,-445.5 276.39009,-443.94972 275.78125,-441.875 C 275.08802,-442.23883 274.33674,-442.5 273.5,-442.5 C 270.74,-442.5 268.49999,-440.26001 268.5,-437.5 C 268.5,-436.92107 268.66252,-436.3923 268.84375,-435.875 C 267.47028,-435.10426 266.5,-433.686 266.5,-432 C 266.5,-429.516 268.516,-427.49999 271,-427.5 C 271.17713,-427.5 289.82287,-427.5 290,-427.5 C 292.48399,-427.5 294.5,-429.516 294.5,-432 C 294.5,-433.686 293.52972,-435.10426 292.15625,-435.875 C 292.33749,-436.39229 292.5,-436.92108 292.5,-437.5 C 292.5,-440.26 290.26,-442.49999 287.5,-442.5 C 286.66326,-442.5 285.91198,-442.23883 285.21875,-441.875 C 284.60991,-443.94972 282.77083,-445.5 280.5,-445.5 z" fill="#c4c5c2" fill-opacity="1" stroke="#888a85" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 280.5,-445 C 278.31028,-445 276.7764,-443.66423 276.10445,-441.15648 C 275.43599,-441.5001 274.55686,-441.98983 273.75,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.1124,-434.89433 267,-433.73178 267,-432.24973 C 267,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294,-429.90368 294,-432.24973 C 294,-433.8421 292.8876,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.051 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.6082,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445 280.5,-445 z" opacity="1" fill="url(#linearGradient5689)" fill-opacity="1" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <g> + <path transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="url(#linearGradient5691)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <rect - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect7806" - width="20" - height="9" - x="271" - y="-438" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path7808" - sodipodi:cx="288.375" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125" - sodipodi:ry="3.3125" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - transform="matrix(0.90566,0,0,0.90566,9.830195,-35.68869)" /> - <g - id="g7810"> - <path - transform="matrix(1.056604,0,0,1.056604,-17.19811,24.86321)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7812" - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0,0,1.056604,-17.19818,24.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7814" - style="opacity:1;fill:url(#linearGradient5693);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> + <rect width="20" height="9" x="271" y="-438" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" transform="matrix(0.90566,0,0,0.90566,9.830195,-35.68869)" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <g> + <path transform="matrix(1.056604,0,0,1.056604,-17.19811,24.86321)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path transform="matrix(1.056604,0,0,1.056604,-17.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="url(#linearGradient5693)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <g - id="g7816"> - <path - transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7818" - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7820" - style="opacity:1;fill:url(#linearGradient5695);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> + <g> + <path transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="url(#linearGradient5695)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <g - id="g7822" - transform="translate(-1,0)"> - <path - id="path7824" - d="M 280.46875,-440.96875 C 276.88937,-440.96875 274,-438.04812 274,-434.46875 C 274,-432.09807 275.34943,-430.13096 277.25,-429 L 283.71875,-429 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.5 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z" - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - id="path7826" - d="M 280.5,-441 C 276.912,-441 274,-438.08799 274,-434.5 C 274,-432.1236 275.34485,-430.13368 277.25,-429 L 283.75,-429 C 285.65515,-430.13368 287,-432.1236 287,-434.5 C 287,-438.088 284.088,-440.99999 280.5,-441 z" - style="opacity:1;fill:url(#linearGradient5697);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <g transform="translate(-1,0)"> + <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274,-438.04812 274,-434.46875 C 274,-432.09807 275.34943,-430.13096 277.25,-429 L 283.71875,-429 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.5 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 280.5,-441 C 276.912,-441 274,-438.08799 274,-434.5 C 274,-432.1236 275.34485,-430.13368 277.25,-429 L 283.75,-429 C 285.65515,-430.13368 287,-432.1236 287,-434.5 C 287,-438.088 284.088,-440.99999 280.5,-441 z" opacity="1" fill="url(#linearGradient5697)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <path - sodipodi:type="arc" - style="opacity:1;fill:url(#linearGradient5699);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path7828" - sodipodi:cx="288.375" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125" - sodipodi:ry="3.3125" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - transform="matrix(0.90566,0,0,0.90566,9.830296,-35.68884)" /> - <path - style="fill:#888a85;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 292.9564,-437.33396 C 292.95487,-434.6494 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.9564,-437.33396 292.9564,-437.33396 z" - id="path7830" - sodipodi:nodetypes="ccss" /> - <g - id="g7832" - transform="matrix(1.142857,0,0,1.142857,-28.57139,67.00008)"> - <path - transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7834" - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7836" - style="opacity:1;fill:url(#linearGradient5701);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> + <path d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" transform="matrix(0.90566,0,0,0.90566,9.830296,-35.68884)" opacity="1" fill="url(#linearGradient5699)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 292.9564,-437.33396 C 292.95487,-434.6494 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.9564,-437.33396 292.9564,-437.33396 z" fill="#888a85" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/> + <g transform="matrix(1.142857,0,0,1.142857,-28.57139,67.00008)"> + <path transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="url(#linearGradient5701)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> </g> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path4934" - d="M 31.501294,21.49982 C 29.311574,21.49982 27.777694,22.83559 27.105744,25.34334 C 26.437284,24.99972 25.558154,24.50999 24.751294,24.50999 C 22.034784,24.50999 19.996154,26.44881 19.996164,29.05553 C 19.996164,29.6023 20.263374,30.38897 20.438124,30.87754 C 19.113694,31.60549 18.001294,32.76804 18.001294,34.25009 C 18.001294,36.59614 19.547464,38.50018 22.340574,38.50018 C 22.511384,38.50018 40.491214,38.50018 40.662014,38.50018 C 43.433024,38.50018 45.001294,36.59614 45.001294,34.25009 C 45.001294,32.65772 43.888894,31.5834 42.564464,30.85545 C 42.739224,30.36689 43.028534,29.60229 43.028534,29.05553 C 43.028534,26.44882 40.912724,24.4879 38.251304,24.48789 C 37.444434,24.48789 36.609494,24.97763 35.941034,25.32125 C 35.292184,22.89971 33.691024,21.49982 31.501294,21.49982 z" - style="opacity:0.45;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <g - style="opacity:0.45" - transform="translate(-264.0013,462.5)" - id="g7852"> - <path - style="fill:#c4c5c2;fill-opacity:1;stroke:#888a85;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 280.5,-445.5 C 278.22917,-445.5 276.39009,-443.94972 275.78125,-441.875 C 275.08802,-442.23883 274.33674,-442.5 273.5,-442.5 C 270.74,-442.5 268.49999,-440.26001 268.5,-437.5 C 268.5,-436.92107 268.66252,-436.3923 268.84375,-435.875 C 267.47028,-435.10426 266.5,-433.686 266.5,-432 C 266.5,-429.516 268.516,-427.49999 271,-427.5 C 271.17713,-427.5 289.82287,-427.5 290,-427.5 C 292.48399,-427.5 294.5,-429.516 294.5,-432 C 294.5,-433.686 293.52972,-435.10426 292.15625,-435.875 C 292.33749,-436.39229 292.5,-436.92108 292.5,-437.5 C 292.5,-440.26 290.26,-442.49999 287.5,-442.5 C 286.66326,-442.5 285.91198,-442.23883 285.21875,-441.875 C 284.60991,-443.94972 282.77083,-445.5 280.5,-445.5 z" - id="path7854" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - style="opacity:1;fill:url(#linearGradient5703);fill-opacity:1;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 280.5,-445 C 278.31028,-445 276.7764,-443.66423 276.10445,-441.15648 C 275.43599,-441.5001 274.55686,-441.98983 273.75,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.1124,-434.89433 267,-433.73178 267,-432.24973 C 267,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294,-429.90368 294,-432.24973 C 294,-433.8421 292.8876,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.051 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.6082,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445 280.5,-445 z" - id="path7856" - sodipodi:nodetypes="ccsscsssscsscc" /> - <g - id="g7858"> - <path - transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7860" - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7862" - style="opacity:1;fill:url(#linearGradient5705);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> + <path d="M 31.501294,21.49982 C 29.311574,21.49982 27.777694,22.83559 27.105744,25.34334 C 26.437284,24.99972 25.558154,24.50999 24.751294,24.50999 C 22.034784,24.50999 19.996154,26.44881 19.996164,29.05553 C 19.996164,29.6023 20.263374,30.38897 20.438124,30.87754 C 19.113694,31.60549 18.001294,32.76804 18.001294,34.25009 C 18.001294,36.59614 19.547464,38.50018 22.340574,38.50018 C 22.511384,38.50018 40.491214,38.50018 40.662014,38.50018 C 43.433024,38.50018 45.001294,36.59614 45.001294,34.25009 C 45.001294,32.65772 43.888894,31.5834 42.564464,30.85545 C 42.739224,30.36689 43.028534,29.60229 43.028534,29.05553 C 43.028534,26.44882 40.912724,24.4879 38.251304,24.48789 C 37.444434,24.48789 36.609494,24.97763 35.941034,25.32125 C 35.292184,22.89971 33.691024,21.49982 31.501294,21.49982 z" opacity="0.45" fill="#ffffff" fill-opacity="1" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <g transform="translate(-264.0013,462.5)" opacity="0.45"> + <path d="M 280.5,-445.5 C 278.22917,-445.5 276.39009,-443.94972 275.78125,-441.875 C 275.08802,-442.23883 274.33674,-442.5 273.5,-442.5 C 270.74,-442.5 268.49999,-440.26001 268.5,-437.5 C 268.5,-436.92107 268.66252,-436.3923 268.84375,-435.875 C 267.47028,-435.10426 266.5,-433.686 266.5,-432 C 266.5,-429.516 268.516,-427.49999 271,-427.5 C 271.17713,-427.5 289.82287,-427.5 290,-427.5 C 292.48399,-427.5 294.5,-429.516 294.5,-432 C 294.5,-433.686 293.52972,-435.10426 292.15625,-435.875 C 292.33749,-436.39229 292.5,-436.92108 292.5,-437.5 C 292.5,-440.26 290.26,-442.49999 287.5,-442.5 C 286.66326,-442.5 285.91198,-442.23883 285.21875,-441.875 C 284.60991,-443.94972 282.77083,-445.5 280.5,-445.5 z" fill="#c4c5c2" fill-opacity="1" stroke="#888a85" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 280.5,-445 C 278.31028,-445 276.7764,-443.66423 276.10445,-441.15648 C 275.43599,-441.5001 274.55686,-441.98983 273.75,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.1124,-434.89433 267,-433.73178 267,-432.24973 C 267,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294,-429.90368 294,-432.24973 C 294,-433.8421 292.8876,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.051 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.6082,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445 280.5,-445 z" opacity="1" fill="url(#linearGradient5703)" fill-opacity="1" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <g> + <path transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path transform="matrix(1.056604,0,0,1.056604,-24.19818,21.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="url(#linearGradient5705)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <rect - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect7864" - width="20" - height="9" - x="271" - y="-438" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path7866" - sodipodi:cx="288.375" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125" - sodipodi:ry="3.3125" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - transform="matrix(0.90566,0,0,0.90566,9.830195,-35.68869)" /> - <g - id="g7868"> - <path - transform="matrix(1.056604,0,0,1.056604,-17.19811,24.86321)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7870" - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0,0,1.056604,-17.19818,24.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7872" - style="opacity:1;fill:url(#linearGradient5707);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> + <rect width="20" height="9" x="271" y="-438" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" transform="matrix(0.90566,0,0,0.90566,9.830195,-35.68869)" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <g> + <path transform="matrix(1.056604,0,0,1.056604,-17.19811,24.86321)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path transform="matrix(1.056604,0,0,1.056604,-17.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="url(#linearGradient5707)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <g - id="g7874"> - <path - transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7876" - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7878" - style="opacity:1;fill:url(#linearGradient5709);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> + <g> + <path transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="url(#linearGradient5709)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <g - id="g7880" - transform="translate(-1,0)"> - <path - id="path7882" - d="M 280.46875,-440.96875 C 276.88937,-440.96875 274,-438.04812 274,-434.46875 C 274,-432.09807 275.34943,-430.13096 277.25,-429 L 283.71875,-429 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.5 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z" - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - id="path7884" - d="M 280.5,-441 C 276.912,-441 274,-438.08799 274,-434.5 C 274,-432.1236 275.34485,-430.13368 277.25,-429 L 283.75,-429 C 285.65515,-430.13368 287,-432.1236 287,-434.5 C 287,-438.088 284.088,-440.99999 280.5,-441 z" - style="opacity:1;fill:url(#linearGradient5711);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <g transform="translate(-1,0)"> + <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274,-438.04812 274,-434.46875 C 274,-432.09807 275.34943,-430.13096 277.25,-429 L 283.71875,-429 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.5 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 280.5,-441 C 276.912,-441 274,-438.08799 274,-434.5 C 274,-432.1236 275.34485,-430.13368 277.25,-429 L 283.75,-429 C 285.65515,-430.13368 287,-432.1236 287,-434.5 C 287,-438.088 284.088,-440.99999 280.5,-441 z" opacity="1" fill="url(#linearGradient5711)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <path - sodipodi:type="arc" - style="opacity:1;fill:url(#linearGradient5713);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path7886" - sodipodi:cx="288.375" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125" - sodipodi:ry="3.3125" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - transform="matrix(0.90566,0,0,0.90566,9.830296,-35.68884)" /> - <path - style="fill:#888a85;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 292.9564,-437.33396 C 292.95487,-434.6494 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.9564,-437.33396 292.9564,-437.33396 z" - id="path7888" - sodipodi:nodetypes="ccss" /> - <g - id="g7890" - transform="matrix(1.142857,0,0,1.142857,-28.57139,67.00008)"> - <path - transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7892" - style="opacity:1;fill:#c4c5c2;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" - d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" - sodipodi:ry="3.3125" - sodipodi:rx="3.3125" - sodipodi:cy="-437.59375" - sodipodi:cx="288.375" - id="path7896" - style="opacity:1;fill:url(#linearGradient5715);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> + <path d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" transform="matrix(0.90566,0,0,0.90566,9.830296,-35.68884)" opacity="1" fill="url(#linearGradient5713)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 292.9564,-437.33396 C 292.95487,-434.6494 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.9564,-437.33396 292.9564,-437.33396 z" fill="#888a85" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/> + <g transform="matrix(1.142857,0,0,1.142857,-28.57139,67.00008)"> + <path transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="#c4c5c2" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path transform="matrix(1.056604,0,0,1.056604,-31.19818,24.86331)" d="M 291.6875,-437.59375 A 3.3125,3.3125 0 1 1 285.0625,-437.59375 A 3.3125,3.3125 0 1 1 291.6875,-437.59375 z" opacity="1" fill="url(#linearGradient5715)" fill-opacity="1" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> </g> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path4978" - d="M 16.498705,17.499819 C 14.308985,17.499819 12.775105,18.835589 12.103155,21.343339 C 11.434695,20.999719 10.555565,20.509989 9.748705,20.509989 C 7.032195,20.509989 4.993565,22.448809 4.993575,25.055529 C 4.993575,25.602299 5.260785,26.388969 5.435535,26.877539 C 4.111105,27.605489 2.998705,28.768039 2.998705,30.250089 C 2.998705,32.596139 4.544875,34.500179 7.337985,34.500179 C 7.508795,34.500179 25.488624,34.500179 25.659424,34.500179 C 28.430434,34.500179 29.998704,32.596139 29.998704,30.250089 C 29.998704,28.657719 28.886304,27.583399 27.561874,26.855449 C 27.736634,26.366889 28.025944,25.602289 28.025944,25.055529 C 28.025944,22.448819 25.910134,20.487899 23.248714,20.487889 C 22.441844,20.487889 21.606904,20.977629 20.938444,21.321249 C 20.289594,18.899709 18.688434,17.499819 16.498705,17.499819 z" - style="opacity:0.45;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path d="M 16.498705,17.499819 C 14.308985,17.499819 12.775105,18.835589 12.103155,21.343339 C 11.434695,20.999719 10.555565,20.509989 9.748705,20.509989 C 7.032195,20.509989 4.993565,22.448809 4.993575,25.055529 C 4.993575,25.602299 5.260785,26.388969 5.435535,26.877539 C 4.111105,27.605489 2.998705,28.768039 2.998705,30.250089 C 2.998705,32.596139 4.544875,34.500179 7.337985,34.500179 C 7.508795,34.500179 25.488624,34.500179 25.659424,34.500179 C 28.430434,34.500179 29.998704,32.596139 29.998704,30.250089 C 29.998704,28.657719 28.886304,27.583399 27.561874,26.855449 C 27.736634,26.366889 28.025944,25.602289 28.025944,25.055529 C 28.025944,22.448819 25.910134,20.487899 23.248714,20.487889 C 22.441844,20.487889 21.606904,20.977629 20.938444,21.321249 C 20.289594,18.899709 18.688434,17.499819 16.498705,17.499819 z" opacity="0.45" fill="#ffffff" fill-opacity="1" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> </g> </svg> diff --git a/demos/embedded/weatherinfo/icons/weather-haze.svg b/demos/embedded/weatherinfo/icons/weather-haze.svg index f2d6671..b31811f 100644 --- a/demos/embedded/weatherinfo/icons/weather-haze.svg +++ b/demos/embedded/weatherinfo/icons/weather-haze.svg @@ -1,1121 +1,162 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="48" - height="48" - id="svg14353" - sodipodi:version="0.32" - inkscape:version="0.46" - version="1.0" - sodipodi:docname="weather-haze.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - gridtolerance="10000" - guidetolerance="10" - objecttolerance="10" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1" - inkscape:cx="-122" - inkscape:cy="24" - inkscape:document-units="px" - inkscape:current-layer="layer1" - showgrid="false" - inkscape:showpageshadow="false" - showborder="false" - showguides="true" - inkscape:guide-bbox="true" - inkscape:window-width="982" - inkscape:window-height="965" - inkscape:window-x="1281" - inkscape:window-y="29" - borderlayer="false" /> - <defs - id="defs14355"> - <linearGradient - inkscape:collect="always" - id="linearGradient8371"> - <stop - style="stop-color:#e8d277;stop-opacity:1;" - offset="0" - id="stop8373" /> - <stop - style="stop-color:#e8d277;stop-opacity:0;" - offset="1" - id="stop8375" /> +<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" width="48" height="48" id="svg14353" version="1.0"> + + <defs id="defs14355"> + <linearGradient id="linearGradient8371"> + <stop offset="0" id="stop8373" stop-color="#e8d277" stop-opacity="1"/> + <stop offset="1" id="stop8375" stop-color="#e8d277" stop-opacity="0"/> </linearGradient> - <linearGradient - id="linearGradient9810"> - <stop - style="stop-color:#ddc76e;stop-opacity:1;" - offset="0" - id="stop9812" /> - <stop - style="stop-color:#e6d965;stop-opacity:0;" - offset="1" - id="stop9814" /> + <linearGradient id="linearGradient9362"> + <stop id="stop9364" offset="0" stop-color="#392100" stop-opacity="1"/> + <stop id="stop9366" offset="1" stop-color="#392100" stop-opacity="0"/> </linearGradient> - <linearGradient - id="linearGradient9636"> - <stop - style="stop-color:#fce94f;stop-opacity:1;" - offset="0" - id="stop9638" /> - <stop - style="stop-color:#fce94f;stop-opacity:0;" - offset="1" - id="stop9640" /> + <linearGradient id="linearGradient7010"> + <stop offset="0" id="stop7012" stop-color="#aec2d7" stop-opacity="1"/> + <stop id="stop9915" offset="1" stop-color="#81a0c1" stop-opacity="1"/> </linearGradient> - <linearGradient - id="linearGradient9362"> - <stop - id="stop9364" - offset="0" - style="stop-color:#392100;stop-opacity:1;" /> - <stop - id="stop9366" - offset="1" - style="stop-color:#392100;stop-opacity:0;" /> + <linearGradient id="linearGradient6825"> + <stop offset="0" id="stop6827" stop-color="#3a2400" stop-opacity="1"/> + <stop id="stop6833" offset="0.28565985" stop-color="#8c5600" stop-opacity="1"/> + <stop offset="1" id="stop6829" stop-color="#a36400" stop-opacity="1"/> </linearGradient> - <linearGradient - id="linearGradient7010"> - <stop - style="stop-color:#aec2d7;stop-opacity:1;" - offset="0" - id="stop7012" /> - <stop - id="stop9915" - offset="1" - style="stop-color:#81a0c1;stop-opacity:1;" /> + <linearGradient id="linearGradient6772"> + <stop offset="0" id="stop6774" stop-color="#888a85" stop-opacity="1"/> + <stop offset="1" id="stop6776" stop-color="#eeeeec" stop-opacity="1"/> </linearGradient> - <linearGradient - id="linearGradient6825"> - <stop - style="stop-color:#3a2400;stop-opacity:1;" - offset="0" - id="stop6827" /> - <stop - id="stop6833" - offset="0.28565985" - style="stop-color:#8c5600;stop-opacity:1;" /> - <stop - style="stop-color:#a36400;stop-opacity:1;" - offset="1" - id="stop6829" /> + <linearGradient id="linearGradient6764"> + <stop offset="0" id="stop6766" stop-color="#eeeeec" stop-opacity="1"/> + <stop offset="1" id="stop6768" stop-color="#eeeeec" stop-opacity="0"/> </linearGradient> - <linearGradient - id="linearGradient6772"> - <stop - style="stop-color:#888a85;stop-opacity:1;" - offset="0" - id="stop6774" /> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="1" - id="stop6776" /> + <linearGradient id="linearGradient6746"> + <stop offset="0" id="stop6748" stop-color="#eeeeec" stop-opacity="1"/> + <stop offset="1" id="stop6750" stop-color="#eeeeec" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6764"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop6766" /> - <stop - style="stop-color:#eeeeec;stop-opacity:0;" - offset="1" - id="stop6768" /> + <linearGradient id="linearGradient6728"> + <stop offset="0" id="stop6730" stop-color="#babdb6" stop-opacity="1"/> + <stop offset="1" id="stop6732" stop-color="#babdb6" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6746"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop6748" /> - <stop - style="stop-color:#eeeeec;stop-opacity:0;" - offset="1" - id="stop6750" /> + <linearGradient id="linearGradient6685"> + <stop offset="0" id="stop6687" stop-color="#000000" stop-opacity="1"/> + <stop offset="1" id="stop6689" stop-color="#000000" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6728"> - <stop - style="stop-color:#babdb6;stop-opacity:1;" - offset="0" - id="stop6730" /> - <stop - style="stop-color:#babdb6;stop-opacity:0;" - offset="1" - id="stop6732" /> + <linearGradient id="linearGradient6631"> + <stop offset="0" id="stop6633" stop-color="#555753" stop-opacity="1"/> + <stop id="stop6639" offset="0.0343047" stop-color="#eeeeec" stop-opacity="0.49803922"/> + <stop offset="0.06714281" id="stop6641" stop-color="#555753" stop-opacity="1"/> + <stop id="stop6643" offset="0.08441304" stop-color="#eeeeec" stop-opacity="0.49803922"/> + <stop offset="0.13726114" id="stop6645" stop-color="#555753" stop-opacity="1"/> + <stop id="stop6647" offset="0.15779018" stop-color="#eeeeec" stop-opacity="0.49803922"/> + <stop offset="0.21104114" id="stop6649" stop-color="#555753" stop-opacity="1"/> + <stop id="stop6651" offset="0.23053712" stop-color="#eeeeec" stop-opacity="0.49803922"/> + <stop offset="0.27452311" id="stop6653" stop-color="#555753" stop-opacity="1"/> + <stop id="stop6655" offset="0.29490501" stop-color="#eeeeec" stop-opacity="0.49803922"/> + <stop offset="0.34954464" id="stop6657" stop-color="#555753" stop-opacity="1"/> + <stop id="stop6659" offset="0.36960241" stop-color="#eeeeec" stop-opacity="0.49803922"/> + <stop offset="0.4220143" id="stop6675" stop-color="#555753" stop-opacity="1"/> + <stop id="stop6677" offset="0.44345734" stop-color="#eeeeec" stop-opacity="0.49803922"/> + <stop offset="0.50078195" id="stop6679" stop-color="#555753" stop-opacity="1"/> + <stop id="stop6681" offset="0.52629334" stop-color="#eeeeec" stop-opacity="0.49803922"/> + <stop offset="0.57410157" id="stop6683" stop-color="#555753" stop-opacity="1"/> + <stop id="stop6693" offset="0.5898369" stop-color="#eeeeec" stop-opacity="0.49803922"/> + <stop offset="0.64333093" id="stop6695" stop-color="#555753" stop-opacity="1"/> + <stop id="stop6697" offset="0.66151941" stop-color="#eeeeec" stop-opacity="0.49803922"/> + <stop offset="0.70865703" id="stop6699" stop-color="#555753" stop-opacity="1"/> + <stop id="stop6701" offset="0.72415513" stop-color="#eeeeec" stop-opacity="0.49803922"/> + <stop offset="1" id="stop6661" stop-color="#555753" stop-opacity="1"/> </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6685"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop6687" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop6689" /> - </linearGradient> - <linearGradient - id="linearGradient6631"> - <stop - style="stop-color:#555753;stop-opacity:1;" - offset="0" - id="stop6633" /> - <stop - id="stop6639" - offset="0.0343047" - style="stop-color:#eeeeec;stop-opacity:0.49803922;" /> - <stop - style="stop-color:#555753;stop-opacity:1;" - offset="0.06714281" - id="stop6641" /> - <stop - id="stop6643" - offset="0.08441304" - style="stop-color:#eeeeec;stop-opacity:0.49803922;" /> - <stop - style="stop-color:#555753;stop-opacity:1;" - offset="0.13726114" - id="stop6645" /> - <stop - id="stop6647" - offset="0.15779018" - style="stop-color:#eeeeec;stop-opacity:0.49803922;" /> - <stop - style="stop-color:#555753;stop-opacity:1;" - offset="0.21104114" - id="stop6649" /> - <stop - id="stop6651" - offset="0.23053712" - style="stop-color:#eeeeec;stop-opacity:0.49803922;" /> - <stop - style="stop-color:#555753;stop-opacity:1;" - offset="0.27452311" - id="stop6653" /> - <stop - id="stop6655" - offset="0.29490501" - style="stop-color:#eeeeec;stop-opacity:0.49803922;" /> - <stop - style="stop-color:#555753;stop-opacity:1;" - offset="0.34954464" - id="stop6657" /> - <stop - id="stop6659" - offset="0.36960241" - style="stop-color:#eeeeec;stop-opacity:0.49803922;" /> - <stop - style="stop-color:#555753;stop-opacity:1;" - offset="0.4220143" - id="stop6675" /> - <stop - id="stop6677" - offset="0.44345734" - style="stop-color:#eeeeec;stop-opacity:0.49803922;" /> - <stop - style="stop-color:#555753;stop-opacity:1;" - offset="0.50078195" - id="stop6679" /> - <stop - id="stop6681" - offset="0.52629334" - style="stop-color:#eeeeec;stop-opacity:0.49803922;" /> - <stop - style="stop-color:#555753;stop-opacity:1;" - offset="0.57410157" - id="stop6683" /> - <stop - id="stop6693" - offset="0.5898369" - style="stop-color:#eeeeec;stop-opacity:0.49803922;" /> - <stop - style="stop-color:#555753;stop-opacity:1;" - offset="0.64333093" - id="stop6695" /> - <stop - id="stop6697" - offset="0.66151941" - style="stop-color:#eeeeec;stop-opacity:0.49803922;" /> - <stop - style="stop-color:#555753;stop-opacity:1;" - offset="0.70865703" - id="stop6699" /> - <stop - id="stop6701" - offset="0.72415513" - style="stop-color:#eeeeec;stop-opacity:0.49803922;" /> - <stop - style="stop-color:#555753;stop-opacity:1;" - offset="1" - id="stop6661" /> - </linearGradient> - <linearGradient - id="linearGradient15161"> - <stop - style="stop-color:#c3b49d;stop-opacity:0.3539823;" - offset="0" - id="stop15163" /> - <stop - id="stop9310" - offset="1" - style="stop-color:#dcd070;stop-opacity:1;" /> - </linearGradient> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 526.18109 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="744.09448 : 526.18109 : 1" - inkscape:persp3d-origin="372.04724 : 350.78739 : 1" - id="perspective14361" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient15161" - id="linearGradient15167" - x1="21.285088" - y1="33.110512" - x2="21.285088" - y2="-0.0017124993" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.9479167,0,0,0.9479167,1.2500007,1.2500003)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient15161" - id="linearGradient15250" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.9479167,0,0,0.9479167,1.2500007,1.2500003)" - x1="21.285088" - y1="33.110512" - x2="21.285088" - y2="-0.0017124993" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6631" - id="linearGradient6637" - x1="-0.52151477" - y1="29.500589" - x2="18.516363" - y2="14.809909" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6685" - id="radialGradient6691" - cx="122" - cy="401.95938" - fx="122" - fy="401.95938" - r="6.7283827" - gradientTransform="matrix(-0.5944965,-3.8328271e-7,4.1781509e-7,-0.6480585,194.52841,528.49324)" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6728" - id="linearGradient6734" - x1="15.072129" - y1="21.263441" - x2="17.008948" - y2="21.263441" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6728" - id="linearGradient6742" - x1="15.133464" - y1="32.587334" - x2="17.008692" - y2="32.587334" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6746" - id="linearGradient6752" - x1="15.526249" - y1="2.097311" - x2="15.526249" - y2="14.758003" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6764" - id="linearGradient6770" - x1="11.884123" - y1="10.724713" - x2="6.123559" - y2="29.316263" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6772" - id="linearGradient6778" - x1="7.8838124" - y1="18.558826" - x2="7.8838124" - y2="34.97258" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6825" - id="linearGradient6831" - x1="37.997959" - y1="18.245197" - x2="37.997959" - y2="39.658928" - gradientUnits="userSpaceOnUse" /> - <pattern - patternUnits="userSpaceOnUse" - width="45.991676" - height="45.991676" - patternTransform="translate(-0.532328,52.691734)" - id="pattern7396"> - <rect - y="0" - x="0" - height="45.991676" - width="45.991676" - id="rect15159" - style="fill:url(#linearGradient7399);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - </pattern> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient15161" - id="linearGradient7399" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.9479167,0,0,0.9479167,0.2458325,0.2458356)" - x1="21.285088" - y1="33.110512" - x2="21.285088" - y2="-0.0017124993" /> - <filter - id="filter8124" - inkscape:label="filter1" - width="11.589999999999989" /> - <filter - id="filter8126" - inkscape:label="filter2" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9362" - id="linearGradient9360" - x1="8.5806656" - y1="20.995518" - x2="8.5806656" - y2="23.085056" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9362" - id="linearGradient9370" - gradientUnits="userSpaceOnUse" - x1="8.5806656" - y1="20.995518" - x2="8.5806656" - y2="23.085056" - gradientTransform="translate(25.006402,2.9778958e-7)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9362" - id="linearGradient9374" - gradientUnits="userSpaceOnUse" - x1="8.5806656" - y1="20.995518" - x2="8.5806656" - y2="23.085056" - gradientTransform="translate(35.006405,2.9778958e-7)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient9981" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,4.6999999,18,-122.2)" - x1="96" - y1="36" - x2="96" - y2="30" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient9983" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.6289807,90.020139,-27.933112)" - x1="6.0670195" - y1="46" - x2="6.0670195" - y2="20.59375" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient9985" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.6289807,93.329052,-27.775305)" - x1="14.197642" - y1="46" - x2="14.197642" - y2="20.593699" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient9987" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.6289807,96.870945,-27.775305)" - x1="23.1" - y1="46" - x2="23.1" - y2="20.592798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient9989" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.6289807,99.712841,-27.775305)" - x1="32.200001" - y1="46" - x2="32.200001" - y2="20.59375" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient7010" - id="radialGradient6968" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.2893727,-0.2474294,0.6139915,0.7180729,9.91225,5.2335615)" - cx="17.055056" - cy="3.5953908" - fx="17.055056" - fy="3.5953908" - r="24" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient6977" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,4.6999999,-72,-123.2)" - x1="96" - y1="35.333096" - x2="96" - y2="30" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient6979" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.6289807,2.0139e-2,-28.933112)" - x1="6.0670195" - y1="46" - x2="6.0670195" - y2="20.59375" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient6981" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.6289807,3.329052,-28.775305)" - x1="14.197642" - y1="46" - x2="14.197642" - y2="20.593699" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient6983" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.6289807,6.870945,-28.775305)" - x1="23.1" - y1="46" - x2="23.1" - y2="20.592798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient6985" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.6289807,9.712841,-28.775305)" - x1="32.200001" - y1="46" - x2="32.200001" - y2="20.59375" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6825" - id="linearGradient7066" - gradientUnits="userSpaceOnUse" - x1="37.997959" - y1="18.245197" - x2="37.997959" - y2="39.658928" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6772" - id="linearGradient7068" - gradientUnits="userSpaceOnUse" - x1="7.8838124" - y1="18.558826" - x2="7.8838124" - y2="34.97258" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6728" - id="linearGradient7070" - gradientUnits="userSpaceOnUse" - x1="15.133464" - y1="32.587334" - x2="17.008692" - y2="32.587334" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6631" - id="linearGradient7072" - gradientUnits="userSpaceOnUse" - x1="-0.52151477" - y1="29.500589" - x2="18.516363" - y2="14.809909" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6685" - id="radialGradient7074" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5944965,-3.8328271e-7,4.1781509e-7,-0.6480585,194.52841,528.49324)" - cx="122" - cy="401.95938" - fx="122" - fy="401.95938" - r="6.7283827" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6728" - id="linearGradient7076" - gradientUnits="userSpaceOnUse" - x1="15.072129" - y1="21.263441" - x2="17.008948" - y2="21.263441" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6746" - id="linearGradient7078" - gradientUnits="userSpaceOnUse" - x1="15.526249" - y1="2.097311" - x2="15.526249" - y2="14.758003" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6764" - id="linearGradient7080" - gradientUnits="userSpaceOnUse" - x1="11.884123" - y1="10.724713" - x2="6.123559" - y2="29.316263" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9362" - id="linearGradient7082" - gradientUnits="userSpaceOnUse" - x1="8.5806656" - y1="20.995518" - x2="8.5806656" - y2="23.085056" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9362" - id="linearGradient7084" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(25.006402,2.9778958e-7)" - x1="8.5806656" - y1="20.995518" - x2="8.5806656" - y2="23.085056" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9362" - id="linearGradient7086" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(35.006405,2.9778958e-7)" - x1="8.5806656" - y1="20.995518" - x2="8.5806656" - y2="23.085056" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6825" - id="linearGradient7132" - gradientUnits="userSpaceOnUse" - x1="37.997959" - y1="18.245197" - x2="37.997959" - y2="39.658928" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6772" - id="linearGradient7134" - gradientUnits="userSpaceOnUse" - x1="7.8838124" - y1="18.558826" - x2="7.8838124" - y2="34.97258" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6728" - id="linearGradient7136" - gradientUnits="userSpaceOnUse" - x1="15.133464" - y1="32.587334" - x2="17.008692" - y2="32.587334" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6631" - id="linearGradient7138" - gradientUnits="userSpaceOnUse" - x1="-0.52151477" - y1="29.500589" - x2="18.516363" - y2="14.809909" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6685" - id="radialGradient7140" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.5944965,-3.8328271e-7,4.1781509e-7,-0.6480585,194.52841,528.49324)" - cx="122" - cy="401.95938" - fx="122" - fy="401.95938" - r="6.7283827" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6728" - id="linearGradient7142" - gradientUnits="userSpaceOnUse" - x1="15.072129" - y1="21.263441" - x2="17.008948" - y2="21.263441" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6746" - id="linearGradient7144" - gradientUnits="userSpaceOnUse" - x1="15.526249" - y1="2.097311" - x2="15.526249" - y2="14.758003" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6764" - id="linearGradient7146" - gradientUnits="userSpaceOnUse" - x1="11.884123" - y1="10.724713" - x2="6.123559" - y2="29.316263" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9362" - id="linearGradient7148" - gradientUnits="userSpaceOnUse" - x1="8.5806656" - y1="20.995518" - x2="8.5806656" - y2="23.085056" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9362" - id="linearGradient7150" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(25.006402,2.9778958e-7)" - x1="8.5806656" - y1="20.995518" - x2="8.5806656" - y2="23.085056" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9362" - id="linearGradient7152" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(35.006405,2.9778958e-7)" - x1="8.5806656" - y1="20.995518" - x2="8.5806656" - y2="23.085056" /> - <filter - inkscape:collect="always" - id="filter7663" - x="-0.1147047" - width="1.2294094" - y="-0.12580788" - height="1.2516158"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="2.2006423" - id="feGaussianBlur7665" /> + <radialGradient xlink:href="#linearGradient7010" id="radialGradient6968" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.2893727,-0.2474294,0.6139915,0.7180729,9.91225,5.2335615)" cx="17.055056" cy="3.5953908" fx="17.055056" fy="3.5953908" r="24"/> + <linearGradient xlink:href="#linearGradient6825" id="linearGradient7066" gradientUnits="userSpaceOnUse" x1="37.997959" y1="18.245197" x2="37.997959" y2="39.658928"/> + <linearGradient xlink:href="#linearGradient6772" id="linearGradient7068" gradientUnits="userSpaceOnUse" x1="7.8838124" y1="18.558826" x2="7.8838124" y2="34.97258"/> + <linearGradient xlink:href="#linearGradient6728" id="linearGradient7070" gradientUnits="userSpaceOnUse" x1="15.133464" y1="32.587334" x2="17.008692" y2="32.587334"/> + <linearGradient xlink:href="#linearGradient6631" id="linearGradient7072" gradientUnits="userSpaceOnUse" x1="-0.52151477" y1="29.500589" x2="18.516363" y2="14.809909"/> + <radialGradient xlink:href="#linearGradient6685" id="radialGradient7074" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-0.5944965,-3.8328271e-7,4.1781509e-7,-0.6480585,194.52841,528.49324)" cx="122" cy="401.95938" fx="122" fy="401.95938" r="6.7283827"/> + <linearGradient xlink:href="#linearGradient6728" id="linearGradient7076" gradientUnits="userSpaceOnUse" x1="15.072129" y1="21.263441" x2="17.008948" y2="21.263441"/> + <linearGradient xlink:href="#linearGradient6746" id="linearGradient7078" gradientUnits="userSpaceOnUse" x1="15.526249" y1="2.097311" x2="15.526249" y2="14.758003"/> + <linearGradient xlink:href="#linearGradient6764" id="linearGradient7080" gradientUnits="userSpaceOnUse" x1="11.884123" y1="10.724713" x2="6.123559" y2="29.316263"/> + <linearGradient xlink:href="#linearGradient9362" id="linearGradient7082" gradientUnits="userSpaceOnUse" x1="8.5806656" y1="20.995518" x2="8.5806656" y2="23.085056"/> + <linearGradient xlink:href="#linearGradient9362" id="linearGradient7084" gradientUnits="userSpaceOnUse" gradientTransform="translate(25.006402,2.9778958e-7)" x1="8.5806656" y1="20.995518" x2="8.5806656" y2="23.085056"/> + <linearGradient xlink:href="#linearGradient9362" id="linearGradient7086" gradientUnits="userSpaceOnUse" gradientTransform="translate(35.006405,2.9778958e-7)" x1="8.5806656" y1="20.995518" x2="8.5806656" y2="23.085056"/> + <linearGradient xlink:href="#linearGradient6825" id="linearGradient7132" gradientUnits="userSpaceOnUse" x1="37.997959" y1="18.245197" x2="37.997959" y2="39.658928"/> + <linearGradient xlink:href="#linearGradient6772" id="linearGradient7134" gradientUnits="userSpaceOnUse" x1="7.8838124" y1="18.558826" x2="7.8838124" y2="34.97258"/> + <linearGradient xlink:href="#linearGradient6728" id="linearGradient7136" gradientUnits="userSpaceOnUse" x1="15.133464" y1="32.587334" x2="17.008692" y2="32.587334"/> + <linearGradient xlink:href="#linearGradient6631" id="linearGradient7138" gradientUnits="userSpaceOnUse" x1="-0.52151477" y1="29.500589" x2="18.516363" y2="14.809909"/> + <radialGradient xlink:href="#linearGradient6685" id="radialGradient7140" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-0.5944965,-3.8328271e-7,4.1781509e-7,-0.6480585,194.52841,528.49324)" cx="122" cy="401.95938" fx="122" fy="401.95938" r="6.7283827"/> + <linearGradient xlink:href="#linearGradient6728" id="linearGradient7142" gradientUnits="userSpaceOnUse" x1="15.072129" y1="21.263441" x2="17.008948" y2="21.263441"/> + <linearGradient xlink:href="#linearGradient6746" id="linearGradient7144" gradientUnits="userSpaceOnUse" x1="15.526249" y1="2.097311" x2="15.526249" y2="14.758003"/> + <linearGradient xlink:href="#linearGradient6764" id="linearGradient7146" gradientUnits="userSpaceOnUse" x1="11.884123" y1="10.724713" x2="6.123559" y2="29.316263"/> + <linearGradient xlink:href="#linearGradient9362" id="linearGradient7148" gradientUnits="userSpaceOnUse" x1="8.5806656" y1="20.995518" x2="8.5806656" y2="23.085056"/> + <linearGradient xlink:href="#linearGradient9362" id="linearGradient7150" gradientUnits="userSpaceOnUse" gradientTransform="translate(25.006402,2.9778958e-7)" x1="8.5806656" y1="20.995518" x2="8.5806656" y2="23.085056"/> + <linearGradient xlink:href="#linearGradient9362" id="linearGradient7152" gradientUnits="userSpaceOnUse" gradientTransform="translate(35.006405,2.9778958e-7)" x1="8.5806656" y1="20.995518" x2="8.5806656" y2="23.085056"/> + <filter id="filter7663" x="-0.1147047" width="1.2294094" y="-0.12580788" height="1.2516158"> + <feGaussianBlur stdDeviation="2.2006423" id="feGaussianBlur7665"/> </filter> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient7668" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.6289807,9.712841,-28.775305)" - x1="32.200001" - y1="46" - x2="32.200001" - y2="20.59375" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient7671" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.6289807,6.870945,-28.775305)" - x1="23.1" - y1="46" - x2="23.1" - y2="32.256355" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient7674" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.6289807,3.329052,-28.775305)" - x1="14.197642" - y1="46" - x2="14.197642" - y2="20.593699" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient9810" - id="linearGradient7677" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.6289807,2.0139e-2,-28.933112)" - x1="6.0670195" - y1="46" - x2="6.0670195" - y2="33.256096" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8371" - id="linearGradient8377" - x1="24" - y1="45.998173" - x2="24" - y2="2.0644991" - gradientUnits="userSpaceOnUse" /> + <linearGradient xlink:href="#linearGradient8371" id="linearGradient8377" x1="24" y1="45.998173" x2="24" y2="2.0644991" gradientUnits="userSpaceOnUse"/> </defs> - <metadata - id="metadata14358"> + <metadata id="metadata14358"> <rdf:RDF> - <cc:Work - rdf:about=""> + <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> </cc:Work> </rdf:RDF> </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1"> - <rect - style="fill:url(#radialGradient6968);fill-opacity:1;fill-rule:evenodd;stroke:#132c50;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect14363" - width="47" - height="47" - x="0.5" - y="0.5" /> - <g - id="g7018" - transform="translate(-1.6037056e-2,3.090275e-2)"> - <path - sodipodi:nodetypes="cccccccccccccccccc" - id="path7020" - d="M 1.5112736,46.463508 L 46.518528,46.463508 L 46.518528,20.097311 L 42.49936,11.994593 L 37.997439,20.097311 L 33.503201,11.994593 L 29.51269,20.097311 L 29.51269,40.518226 L 17.513556,40.518226 L 17.513556,15.979513 L 18.991385,15.979513 L 15.625234,5.482499 L 11.994559,15.979622 L 13.487574,15.979622 L 13.487574,22.494238 L 8.5736236,16.493825 L 1.5112736,16.493825 L 1.5112736,46.463508 z" - style="fill:#888a85;fill-rule:evenodd;stroke:#888a85;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cccccccc" - id="path7022" - d="M 46.499202,19.996278 L 46.499164,39.496968 L 29.497928,39.514749 L 29.496716,20.073218 L 33.471729,13.30179 L 37.969149,19.742327 L 42.464705,13.30179 L 46.499202,19.996278 z" - style="fill:url(#linearGradient7066);fill-opacity:1;fill-rule:evenodd;stroke:#331f00;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccc" - id="path7024" - d="M 30.4991,19.359794 L 30.495194,38.512814 L 45.998784,38.497189" - style="opacity:0.25;fill:none;fill-rule:evenodd;stroke:#eeeeec;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <rect - y="14.973112" - x="13.484319" - height="24.544136" - width="4.027225" - id="rect7026" - style="fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <rect - y="25.958162" - x="1.5003295" - height="13.560402" - width="14.000328" - id="rect7028" - style="fill:url(#linearGradient7068);fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccc" - id="path7030" - d="M 16.000204,26.158288 L 17.008692,26.165076 L 17.006997,39.016383 L 16.000204,39.016383 L 16.000204,26.158288 z" - style="fill:url(#linearGradient7070);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccc" - id="path7032" - d="M 1.5018555,16.471187 L 1.5018555,26.192359 L 16.519497,26.192359 L 8.5470601,16.471187 L 1.5018555,16.471187 z" - style="fill:#7f4f01;fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccccccc" - id="path7034" - d="M 46.494238,19.981528 L 42.46863,15.428034 L 37.978753,20.107557 L 33.495519,15.782001 L 28.445309,22.028089 L 33.475653,11.989135 L 37.973073,19.908885 L 42.468629,12.0045 L 46.494238,19.981528 z" - style="fill:#d3d7cf;fill-rule:evenodd;stroke:#d3d7cf;stroke-width:1.10000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccc" - id="path7036" - d="M 1.9983315,16.96932 L 1.9983315,25.690091 L 15.466816,25.690091 L 8.3170492,16.96932 L 1.9983315,16.96932 z" - style="opacity:0.5;fill:url(#linearGradient7072);fill-opacity:1;fill-rule:evenodd;stroke:url(#radialGradient7074);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cccc" - id="path7038" - d="M 15.632485,5.4903604 L 12.001677,15.991016 L 19.003769,15.992368 L 15.632485,5.4903604 z" - style="fill:#532323;fill-opacity:1;fill-rule:evenodd;stroke:#2a1111;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccscc" - id="path7040" - d="M 13.983416,22.32144 L 13.983416,16.492941 L 17.007669,16.492941 L 17.007669,21.219904 L 17.008948,26.033783 C 17.008949,26.039055 16.935124,25.911261 16.894583,25.856332 L 13.983416,22.32144 z" - style="fill:url(#linearGradient7076);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cccc" - id="path7042" - d="M 15.595391,8.6350832 L 13.413573,14.980794 L 17.638924,14.980794 L 15.595391,8.6350832 z" - style="opacity:0.5;fill:none;fill-rule:evenodd;stroke:url(#linearGradient7078);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cccc" - id="path7044" - d="M 1.9974392,25.190652 L 14.412292,25.190652 L 8.0819463,17.470171 L 2.0013455,17.470171" - style="opacity:0.5;fill:none;fill-rule:evenodd;stroke:url(#linearGradient7080);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <g - style="fill:#fce94f" - id="g7046"> - <rect - style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect7048" - width="2" - height="2" - x="30.999861" - y="22.002562" /> - <rect - style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect7050" - width="2" - height="2" - x="34.001801" - y="22.000923" /> - <rect - style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect7052" - width="2" - height="2" - x="40.997707" - y="22.000923" /> - <rect - style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect7054" - width="2" - height="2" - x="9.0004454" - y="22.002562" /> - <rect - style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect7056" - width="2" - height="2" - x="6.0018048" - y="22.002562" /> + <g id="layer1"> + <rect width="47" height="47" x="0.5" y="0.5" fill="url(#radialGradient6968)" fill-opacity="1" fill-rule="evenodd" stroke="#132c50" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <g transform="translate(-1.6037056e-2,3.090275e-2)"> + <path d="M 1.5112736,46.463508 L 46.518528,46.463508 L 46.518528,20.097311 L 42.49936,11.994593 L 37.997439,20.097311 L 33.503201,11.994593 L 29.51269,20.097311 L 29.51269,40.518226 L 17.513556,40.518226 L 17.513556,15.979513 L 18.991385,15.979513 L 15.625234,5.482499 L 11.994559,15.979622 L 13.487574,15.979622 L 13.487574,22.494238 L 8.5736236,16.493825 L 1.5112736,16.493825 L 1.5112736,46.463508 z" fill="#888a85" fill-rule="evenodd" stroke="#888a85" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/> + <path d="M 46.499202,19.996278 L 46.499164,39.496968 L 29.497928,39.514749 L 29.496716,20.073218 L 33.471729,13.30179 L 37.969149,19.742327 L 42.464705,13.30179 L 46.499202,19.996278 z" fill="url(#linearGradient7066)" fill-opacity="1" fill-rule="evenodd" stroke="#331f00" stroke-width="1px" stroke-linecap="round" stroke-linejoin="miter" stroke-opacity="1"/> + <path d="M 30.4991,19.359794 L 30.495194,38.512814 L 45.998784,38.497189" opacity="0.25" fill="none" fill-rule="evenodd" stroke="#eeeeec" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/> + <rect y="14.973112" x="13.484319" height="24.544136" width="4.027225" fill="#eeeeec" fill-opacity="1" fill-rule="evenodd" stroke="#2e3436" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <rect y="25.958162" x="1.5003295" height="13.560402" width="14.000328" fill="url(#linearGradient7068)" fill-opacity="1" fill-rule="evenodd" stroke="#2e3436" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 16.000204,26.158288 L 17.008692,26.165076 L 17.006997,39.016383 L 16.000204,39.016383 L 16.000204,26.158288 z" fill="url(#linearGradient7070)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 1.5018555,16.471187 L 1.5018555,26.192359 L 16.519497,26.192359 L 8.5470601,16.471187 L 1.5018555,16.471187 z" fill="#7f4f01" fill-opacity="1" fill-rule="evenodd" stroke="#392100" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/> + <path d="M 46.494238,19.981528 L 42.46863,15.428034 L 37.978753,20.107557 L 33.495519,15.782001 L 28.445309,22.028089 L 33.475653,11.989135 L 37.973073,19.908885 L 42.468629,12.0045 L 46.494238,19.981528 z" fill="#d3d7cf" fill-rule="evenodd" stroke="#d3d7cf" stroke-width="1.10000002" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> + <path d="M 1.9983315,16.96932 L 1.9983315,25.690091 L 15.466816,25.690091 L 8.3170492,16.96932 L 1.9983315,16.96932 z" opacity="0.5" fill="url(#linearGradient7072)" fill-opacity="1" fill-rule="evenodd" stroke="url(#radialGradient7074)" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/> + <path d="M 15.632485,5.4903604 L 12.001677,15.991016 L 19.003769,15.992368 L 15.632485,5.4903604 z" fill="#532323" fill-opacity="1" fill-rule="evenodd" stroke="#2a1111" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/> + <path d="M 13.983416,22.32144 L 13.983416,16.492941 L 17.007669,16.492941 L 17.007669,21.219904 L 17.008948,26.033783 C 17.008949,26.039055 16.935124,25.911261 16.894583,25.856332 L 13.983416,22.32144 z" fill="url(#linearGradient7076)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 15.595391,8.6350832 L 13.413573,14.980794 L 17.638924,14.980794 L 15.595391,8.6350832 z" opacity="0.5" fill="none" fill-rule="evenodd" stroke="url(#linearGradient7078)" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/> + <path d="M 1.9974392,25.190652 L 14.412292,25.190652 L 8.0819463,17.470171 L 2.0013455,17.470171" opacity="0.5" fill="none" fill-rule="evenodd" stroke="url(#linearGradient7080)" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/> + <g fill="#fce94f"> + <rect width="2" height="2" x="30.999861" y="22.002562" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <rect width="2" height="2" x="34.001801" y="22.000923" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <rect width="2" height="2" x="40.997707" y="22.000923" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <rect width="2" height="2" x="9.0004454" y="22.002562" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <rect width="2" height="2" x="6.0018048" y="22.002562" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <g - id="g7058"> - <path - style="fill:url(#linearGradient7082);fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" - d="M 4.4711906,23.06274 L 5.7618436,21.495518 L 11.216391,21.495518 L 12.507043,23.06274" - id="path7060" - sodipodi:nodetypes="cccc" /> - <path - style="fill:url(#linearGradient7084);fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" - d="M 29.477593,23.06274 L 30.768246,21.495518 L 36.222793,21.495518 L 37.513445,23.06274" - id="path7062" - sodipodi:nodetypes="cccc" /> - <path - style="fill:url(#linearGradient7086);fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" - d="M 39.477596,23.06274 L 40.768249,21.495518 L 43.203584,21.495518 L 44.822027,23.06274" - id="path7064" - sodipodi:nodetypes="cccc" /> + <g> + <path d="M 4.4711906,23.06274 L 5.7618436,21.495518 L 11.216391,21.495518 L 12.507043,23.06274" fill="url(#linearGradient7082)" fill-opacity="1" fill-rule="evenodd" stroke="#392100" stroke-width="1px" stroke-linecap="round" stroke-linejoin="miter" stroke-opacity="1"/> + <path d="M 29.477593,23.06274 L 30.768246,21.495518 L 36.222793,21.495518 L 37.513445,23.06274" fill="url(#linearGradient7084)" fill-opacity="1" fill-rule="evenodd" stroke="#392100" stroke-width="1px" stroke-linecap="round" stroke-linejoin="miter" stroke-opacity="1"/> + <path d="M 39.477596,23.06274 L 40.768249,21.495518 L 43.203584,21.495518 L 44.822027,23.06274" fill="url(#linearGradient7086)" fill-opacity="1" fill-rule="evenodd" stroke="#392100" stroke-width="1px" stroke-linecap="round" stroke-linejoin="miter" stroke-opacity="1"/> </g> </g> - <g - id="g6993" - transform="translate(-7.6824584e-3,3.0729835e-2)" - style="filter:url(#filter7663);opacity:0.6"> - <path - sodipodi:nodetypes="cccccccccccccccccc" - id="path15135" - d="M 1.4995548,46.463508 L 46.518528,46.463508 L 46.518528,20.097311 L 42.49936,11.994593 L 37.997439,20.097311 L 33.503201,11.994593 L 29.51269,20.097311 L 29.51269,40.518226 L 17.513556,40.518226 L 17.513556,15.979513 L 18.991385,15.979513 L 15.625234,5.482499 L 11.994559,15.979622 L 13.487574,15.979622 L 13.487574,22.494238 L 8.5736236,16.493825 L 1.4995548,16.493825 L 1.4995548,46.463508 z" - style="fill:#888a85;fill-rule:evenodd;stroke:#888a85;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cccccccc" - id="path6819" - d="M 46.499202,19.996278 L 46.499164,39.496968 L 29.497928,39.514749 L 29.496716,20.073218 L 33.471729,13.30179 L 37.969149,19.742327 L 42.464705,13.30179 L 46.499202,19.996278 z" - style="fill:url(#linearGradient7132);fill-opacity:1;fill-rule:evenodd;stroke:#331f00;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccc" - id="path6843" - d="M 30.4991,19.359794 L 30.495194,38.512814 L 45.998784,38.497189" - style="opacity:0.25000000000000000;fill:none;fill-rule:evenodd;stroke:#eeeeec;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <rect - y="14.973112" - x="13.484319" - height="24.544136" - width="4.027225" - id="rect6714" - style="fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <rect - y="25.958162" - x="1.5003295" - height="13.560402" - width="14.000328" - id="rect6611" - style="fill:url(#linearGradient7134);fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccc" - id="path6718" - d="M 16.000204,26.158288 L 17.008692,26.165076 L 17.006997,39.016383 L 16.000204,39.016383 L 16.000204,26.158288 z" - style="fill:url(#linearGradient7136);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccc" - id="path6607" - d="M 1.5018555,16.471187 L 1.5018555,26.192359 L 16.519497,26.192359 L 8.5470601,16.471187 L 1.5018555,16.471187 z" - style="fill:#7f4f01;fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccccccc" - id="path6817" - d="M 46.494238,19.981528 L 42.46863,15.428034 L 37.978753,20.107557 L 33.495519,15.782001 L 28.445309,22.028089 L 33.475653,11.989135 L 37.973073,19.908885 L 42.468629,12.0045 L 46.494238,19.981528 z" - style="fill:#d3d7cf;fill-rule:evenodd;stroke:#d3d7cf;stroke-width:1.10000002000000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccc" - id="path6629" - d="M 1.9983315,16.96932 L 1.9983315,25.690091 L 15.466816,25.690091 L 8.3170492,16.96932 L 1.9983315,16.96932 z" - style="opacity:0.50000000000000000;fill:url(#linearGradient7138);fill-opacity:1;fill-rule:evenodd;stroke:url(#radialGradient7140);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cccc" - id="path6712" - d="M 15.632485,5.4903604 L 12.001677,15.991016 L 19.003769,15.992368 L 15.632485,5.4903604 z" - style="fill:#532323;fill-opacity:1;fill-rule:evenodd;stroke:#2a1111;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccscc" - id="path6716" - d="M 13.983416,22.32144 L 13.983416,16.492941 L 17.007669,16.492941 L 17.007669,21.219904 L 17.008948,26.033783 C 17.008949,26.039055 16.935124,25.911261 16.894583,25.856332 L 13.983416,22.32144 z" - style="fill:url(#linearGradient7142);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cccc" - id="path6744" - d="M 15.595391,8.6350832 L 13.413573,14.980794 L 17.638924,14.980794 L 15.595391,8.6350832 z" - style="opacity:0.50000000000000000;fill:none;fill-rule:evenodd;stroke:url(#linearGradient7144);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cccc" - id="path6754" - d="M 1.9974392,25.190652 L 14.412292,25.190652 L 8.0819463,17.470171 L 2.0013455,17.470171" - style="opacity:0.50000000000000000;fill:none;fill-rule:evenodd;stroke:url(#linearGradient7146);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <g - style="fill:#fce94f" - id="g6598"> - <rect - style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect15193" - width="2" - height="2" - x="30.999861" - y="22.002562" /> - <rect - style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect15201" - width="2" - height="2" - x="34.001801" - y="22.000923" /> - <rect - style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect15213" - width="2" - height="2" - x="40.997707" - y="22.000923" /> - <rect - style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect15231" - width="2" - height="2" - x="9.0004454" - y="22.002562" /> - <rect - style="fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect15235" - width="2" - height="2" - x="6.0018048" - y="22.002562" /> + <g transform="translate(-7.6824584e-3,3.0729835e-2)" filter="url(#filter7663)" opacity="0.6"> + <path d="M 1.4995548,46.463508 L 46.518528,46.463508 L 46.518528,20.097311 L 42.49936,11.994593 L 37.997439,20.097311 L 33.503201,11.994593 L 29.51269,20.097311 L 29.51269,40.518226 L 17.513556,40.518226 L 17.513556,15.979513 L 18.991385,15.979513 L 15.625234,5.482499 L 11.994559,15.979622 L 13.487574,15.979622 L 13.487574,22.494238 L 8.5736236,16.493825 L 1.4995548,16.493825 L 1.4995548,46.463508 z" fill="#888a85" fill-rule="evenodd" stroke="#888a85" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/> + <path d="M 46.499202,19.996278 L 46.499164,39.496968 L 29.497928,39.514749 L 29.496716,20.073218 L 33.471729,13.30179 L 37.969149,19.742327 L 42.464705,13.30179 L 46.499202,19.996278 z" fill="url(#linearGradient7132)" fill-opacity="1" fill-rule="evenodd" stroke="#331f00" stroke-width="1px" stroke-linecap="round" stroke-linejoin="miter" stroke-opacity="1"/> + <path d="M 30.4991,19.359794 L 30.495194,38.512814 L 45.998784,38.497189" opacity="0.25000000000000000" fill="none" fill-rule="evenodd" stroke="#eeeeec" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/> + <rect y="14.973112" x="13.484319" height="24.544136" width="4.027225" fill="#eeeeec" fill-opacity="1" fill-rule="evenodd" stroke="#2e3436" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <rect y="25.958162" x="1.5003295" height="13.560402" width="14.000328" fill="url(#linearGradient7134)" fill-opacity="1" fill-rule="evenodd" stroke="#2e3436" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 16.000204,26.158288 L 17.008692,26.165076 L 17.006997,39.016383 L 16.000204,39.016383 L 16.000204,26.158288 z" fill="url(#linearGradient7136)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 1.5018555,16.471187 L 1.5018555,26.192359 L 16.519497,26.192359 L 8.5470601,16.471187 L 1.5018555,16.471187 z" fill="#7f4f01" fill-opacity="1" fill-rule="evenodd" stroke="#392100" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/> + <path d="M 46.494238,19.981528 L 42.46863,15.428034 L 37.978753,20.107557 L 33.495519,15.782001 L 28.445309,22.028089 L 33.475653,11.989135 L 37.973073,19.908885 L 42.468629,12.0045 L 46.494238,19.981528 z" fill="#d3d7cf" fill-rule="evenodd" stroke="#d3d7cf" stroke-width="1.10000002000000000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> + <path d="M 1.9983315,16.96932 L 1.9983315,25.690091 L 15.466816,25.690091 L 8.3170492,16.96932 L 1.9983315,16.96932 z" opacity="0.50000000000000000" fill="url(#linearGradient7138)" fill-opacity="1" fill-rule="evenodd" stroke="url(#radialGradient7140)" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/> + <path d="M 15.632485,5.4903604 L 12.001677,15.991016 L 19.003769,15.992368 L 15.632485,5.4903604 z" fill="#532323" fill-opacity="1" fill-rule="evenodd" stroke="#2a1111" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/> + <path d="M 13.983416,22.32144 L 13.983416,16.492941 L 17.007669,16.492941 L 17.007669,21.219904 L 17.008948,26.033783 C 17.008949,26.039055 16.935124,25.911261 16.894583,25.856332 L 13.983416,22.32144 z" fill="url(#linearGradient7142)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 15.595391,8.6350832 L 13.413573,14.980794 L 17.638924,14.980794 L 15.595391,8.6350832 z" opacity="0.50000000000000000" fill="none" fill-rule="evenodd" stroke="url(#linearGradient7144)" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/> + <path d="M 1.9974392,25.190652 L 14.412292,25.190652 L 8.0819463,17.470171 L 2.0013455,17.470171" opacity="0.50000000000000000" fill="none" fill-rule="evenodd" stroke="url(#linearGradient7146)" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/> + <g fill="#fce94f"> + <rect width="2" height="2" x="30.999861" y="22.002562" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <rect width="2" height="2" x="34.001801" y="22.000923" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <rect width="2" height="2" x="40.997707" y="22.000923" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <rect width="2" height="2" x="9.0004454" y="22.002562" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <rect width="2" height="2" x="6.0018048" y="22.002562" fill="#fce94f" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <g - id="g6422"> - <path - style="fill:url(#linearGradient7148);fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" - d="M 4.4711906,23.06274 L 5.7618436,21.495518 L 11.216391,21.495518 L 12.507043,23.06274" - id="path9350" - sodipodi:nodetypes="cccc" /> - <path - style="fill:url(#linearGradient7150);fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" - d="M 29.477593,23.06274 L 30.768246,21.495518 L 36.222793,21.495518 L 37.513445,23.06274" - id="path9368" - sodipodi:nodetypes="cccc" /> - <path - style="fill:url(#linearGradient7152);fill-opacity:1;fill-rule:evenodd;stroke:#392100;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" - d="M 39.477596,23.06274 L 40.768249,21.495518 L 43.203584,21.495518 L 44.822027,23.06274" - id="path9372" - sodipodi:nodetypes="cccc" /> + <g> + <path d="M 4.4711906,23.06274 L 5.7618436,21.495518 L 11.216391,21.495518 L 12.507043,23.06274" fill="url(#linearGradient7148)" fill-opacity="1" fill-rule="evenodd" stroke="#392100" stroke-width="1px" stroke-linecap="round" stroke-linejoin="miter" stroke-opacity="1"/> + <path d="M 29.477593,23.06274 L 30.768246,21.495518 L 36.222793,21.495518 L 37.513445,23.06274" fill="url(#linearGradient7150)" fill-opacity="1" fill-rule="evenodd" stroke="#392100" stroke-width="1px" stroke-linecap="round" stroke-linejoin="miter" stroke-opacity="1"/> + <path d="M 39.477596,23.06274 L 40.768249,21.495518 L 43.203584,21.495518 L 44.822027,23.06274" fill="url(#linearGradient7152)" fill-opacity="1" fill-rule="evenodd" stroke="#392100" stroke-width="1px" stroke-linecap="round" stroke-linejoin="miter" stroke-opacity="1"/> </g> </g> - <rect - style="opacity:0.5;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#eeeeec;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect15237" - width="45" - height="45" - x="1.5" - y="1.5" /> - <rect - style="opacity:0.5;fill:url(#linearGradient8377);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect9717" - width="44" - height="43.933674" - x="2" - y="2.0644991" /> + <rect width="45" height="45" x="1.5" y="1.5" opacity="0.5" fill="none" fill-opacity="1" fill-rule="evenodd" stroke="#eeeeec" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <rect width="44" height="43.933674" x="2" y="2.0644991" opacity="0.5" fill="url(#linearGradient8377)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> </svg> diff --git a/demos/embedded/weatherinfo/icons/weather-icy.svg b/demos/embedded/weatherinfo/icons/weather-icy.svg index fe42860..2c45b33 100644 --- a/demos/embedded/weatherinfo/icons/weather-icy.svg +++ b/demos/embedded/weatherinfo/icons/weather-icy.svg @@ -1,255 +1,51 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="48" - height="48" - id="svg6619" - sodipodi:version="0.32" - inkscape:version="0.46" - version="1.0" - sodipodi:docname="weather-icy.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs6621"> - <linearGradient - inkscape:collect="always" - id="linearGradient7440"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop7442" /> - <stop - style="stop-color:#eeeeec;stop-opacity:0;" - offset="1" - id="stop7444" /> +<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" width="48" height="48" id="svg6619" version="1.0"> + <defs id="defs6621"> + <linearGradient id="linearGradient7440"> + <stop offset="0" id="stop7442" stop-color="#eeeeec" stop-opacity="1"/> + <stop offset="1" id="stop7444" stop-color="#eeeeec" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient7430"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop7432" /> - <stop - style="stop-color:#eeeeec;stop-opacity:0;" - offset="1" - id="stop7434" /> + <linearGradient id="linearGradient7430"> + <stop offset="0" id="stop7432" stop-color="#eeeeec" stop-opacity="1"/> + <stop offset="1" id="stop7434" stop-color="#eeeeec" stop-opacity="0"/> </linearGradient> - <linearGradient - id="linearGradient7392"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop7394" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop7396" /> + <linearGradient id="linearGradient7392"> + <stop offset="0" id="stop7394" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop7396" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient7380"> - <stop - style="stop-color:#cedeef;stop-opacity:1;" - offset="0" - id="stop7382" /> - <stop - style="stop-color:#cedeef;stop-opacity:0;" - offset="1" - id="stop7384" /> + <linearGradient id="linearGradient7380"> + <stop offset="0" id="stop7382" stop-color="#cedeef" stop-opacity="1"/> + <stop offset="1" id="stop7384" stop-color="#cedeef" stop-opacity="0"/> </linearGradient> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 526.18109 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="744.09448 : 526.18109 : 1" - inkscape:persp3d-origin="372.04724 : 350.78739 : 1" - id="perspective6627" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient7380" - id="linearGradient7386" - x1="18.165867" - y1="9.2548895" - x2="20.711481" - y2="21.572344" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient7392" - id="radialGradient7398" - cx="17.700384" - cy="13.797695" - fx="17.700384" - fy="13.797695" - r="1.4135723" - gradientTransform="matrix(1,0,0,1.0652174,6.1248392e-7,-0.8998502)" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient7392" - id="radialGradient7402" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.0652174,6.1248392e-7,-0.8998502)" - cx="17.700384" - cy="13.797695" - fx="17.700384" - fy="13.797695" - r="1.4135723" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient7430" - id="radialGradient7438" - cx="10.693982" - cy="16.471191" - fx="10.693982" - fy="16.471191" - r="0.553137" - gradientTransform="matrix(2.1647007,0,0,0.8888889,-12.455288,1.8301322)" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient7440" - id="radialGradient7448" - cx="10.693982" - cy="16.471191" - fx="10.693982" - fy="16.471191" - r="0.553137" - gradientTransform="matrix(2.2783611,0,0,0.8888889,-13.670771,1.8301322)" - gradientUnits="userSpaceOnUse" /> + <linearGradient xlink:href="#linearGradient7380" id="linearGradient7386" x1="18.165867" y1="9.2548895" x2="20.711481" y2="21.572344" gradientUnits="userSpaceOnUse"/> + <radialGradient xlink:href="#linearGradient7392" id="radialGradient7398" cx="17.700384" cy="13.797695" fx="17.700384" fy="13.797695" r="1.4135723" gradientTransform="matrix(1,0,0,1.0652174,6.1248392e-7,-0.8998502)" gradientUnits="userSpaceOnUse"/> + <radialGradient xlink:href="#linearGradient7392" id="radialGradient7402" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,0,0,1.0652174,6.1248392e-7,-0.8998502)" cx="17.700384" cy="13.797695" fx="17.700384" fy="13.797695" r="1.4135723"/> + <radialGradient xlink:href="#linearGradient7430" id="radialGradient7438" cx="10.693982" cy="16.471191" fx="10.693982" fy="16.471191" r="0.553137" gradientTransform="matrix(2.1647007,0,0,0.8888889,-12.455288,1.8301322)" gradientUnits="userSpaceOnUse"/> + <radialGradient xlink:href="#linearGradient7440" id="radialGradient7448" cx="10.693982" cy="16.471191" fx="10.693982" fy="16.471191" r="0.553137" gradientTransform="matrix(2.2783611,0,0,0.8888889,-13.670771,1.8301322)" gradientUnits="userSpaceOnUse"/> </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - gridtolerance="10000" - guidetolerance="10" - objecttolerance="10" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1" - inkscape:cx="31.408407" - inkscape:cy="30.326192" - inkscape:document-units="px" - inkscape:current-layer="layer1" - showgrid="false" - showguides="true" - inkscape:guide-bbox="true" - inkscape:window-width="982" - inkscape:window-height="965" - inkscape:window-x="1280" - inkscape:window-y="28" /> - <metadata - id="metadata6624"> + + <metadata id="metadata6624"> <rdf:RDF> - <cc:Work - rdf:about=""> + <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> </cc:Work> </rdf:RDF> </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1"> - <g - id="g7906"> - <path - id="path7342" - d="M 24 10.375 C 11.701921 10.375 1.71875 12.767211 1.71875 15.71875 C 1.71875 17.498261 5.3609075 19.059125 10.9375 20.03125 L 14.3125 46.90625 L 17.9375 26.1875 L 21.3125 41.90625 L 25.5625 23.71875 L 28.03125 37.6875 L 32.3125 22.9375 L 34.84375 33.0625 L 38.375 19.8125 C 43.199321 18.83144 46.28125 17.354051 46.28125 15.71875 C 46.28125 12.767211 36.298079 10.375 24 10.375 z " - style="fill:#729fcf;fill-rule:evenodd;stroke:#204a87;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cssssscssssscscssssszsssssc" - id="path7150" - d="M 24.013525,20.535861 C 29.915498,20.535861 35.256377,19.860148 39.169775,19.061611 C 41.126474,18.662343 42.702812,18.185066 43.857275,17.628422 C 45.011738,17.071777 45.794775,16.382816 45.794775,15.758562 C 45.794775,15.111496 45.011739,14.383887 43.857275,13.827243 C 42.702811,13.270598 41.126474,12.706404 39.169775,12.307136 C 35.256377,11.508599 29.915498,10.878502 24.013525,10.878502 C 18.111552,10.878502 12.739423,11.552057 8.826025,12.350594 C 6.8693258,12.749862 5.2929887,13.270598 4.138525,13.827243 C 2.9840613,14.383887 2.201025,14.939123 2.201025,15.758562 C 2.201025,16.578001 2.9840613,17.071777 4.138525,17.628422 C 5.2929887,18.185066 6.8693258,18.662343 8.826025,19.061611 M 8.826025,19.061611 C 12.739423,19.860148 18.111552,20.535861 24.013525,20.535861 M 24.013525,11.738416 C 29.832893,11.738416 35.083852,12.397075 38.857275,13.16705 C 40.743987,13.552037 42.268014,14.087721 43.263525,14.567724 C 44.259036,15.047727 44.669775,15.382119 44.669775,15.758562 C 44.669775,16.135005 44.259035,16.407937 43.263525,16.88794 C 42.268015,17.367943 40.743986,17.840596 38.857275,18.225584 C 35.083852,18.995559 29.832893,19.652061 24.013525,19.652061 C 18.194157,19.652061 12.911948,18.995559 9.138525,18.225584 C 7.2518134,17.840596 5.7277856,17.367943 4.732275,16.88794 C 3.7367644,16.407937 3.326025,16.135005 3.326025,15.758562 C 3.326025,15.382119 3.7367644,15.047727 4.732275,14.567724 C 5.7277856,14.087721 7.2518134,13.595495 9.138525,13.210508 C 12.911948,12.440533 18.194157,11.738416 24.013525,11.738416 z" - style="opacity:0.5;fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.14379668;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccc" - id="path7140" - d="M 20.220231,11.00128 L 29.138835,20.368103 L 24.21511,20.523801 L 15.180538,11.370038 L 20.220231,11.00128 z" - style="fill:#cedeef;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" /> - <path - sodipodi:nodetypes="cccccccccccc" - id="path7355" - d="M 11.915494,19.751601 L 14.481435,40.163892 L 16.883534,26.331262 C 17.063009,24.706837 18.883373,24.906404 18.990928,26.307141 L 21.349551,37.344431 L 24.506026,23.859196 C 24.638961,22.408831 26.471791,22.275606 26.60475,23.905247 L 28.263765,33.272727 L 31.29544,22.83487 C 31.632247,21.540581 33.13534,21.733731 33.309125,22.813719 L 34.878361,29.055058 L 37.413573,19.544174" - style="fill:none;fill-rule:evenodd;stroke:#eeeeec;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:7;stroke-dasharray:none;opacity:0.5" /> - <path - sodipodi:nodetypes="ccccc" - id="path7358" - d="M 24.796795,10.87836 L 33.030717,20.024802 L 31.057055,20.187957 L 22.768625,10.889409 L 24.796795,10.87836 z" - style="fill:#cedeef;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccc" - id="path7364" - d="M 28.334973,10.980368 L 36.114053,19.582843 L 35.115621,19.734949 L 27.305235,10.925125 L 28.334973,10.980368 z" - style="fill:#cedeef;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccccccc" - id="path7372" - d="M 24.276568,13.090909 C 16.315524,13.346336 6.9039601,14.217661 2.7042254,16.717029 C 1.2906531,14.934699 3.0729833,13.828425 9.2804097,12.230474 C 14.942786,11.172151 20.784867,10.869471 24.346019,10.869471 C 29.101893,10.979193 33.366216,11.259555 39.81653,12.450903 C 39.81653,12.450903 46.858243,14.197968 45.56759,16.287597 C 41.461334,13.814622 33.948682,12.944657 24.276568,13.090909 z" - style="fill:url(#linearGradient7386);fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" /> - <path - transform="matrix(2.1222827,0,0,1.9923469,-21.167011,-16.108233)" - d="M 19.113956,13.797695 A 1.4135723,1.5057619 0 1 1 16.286812,13.797695 A 1.4135723,1.5057619 0 1 1 19.113956,13.797695 z" - sodipodi:ry="1.5057619" - sodipodi:rx="1.4135723" - sodipodi:cy="13.797695" - sodipodi:cx="17.700384" - id="path7390" - style="opacity:1;fill:url(#radialGradient7398);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:7;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(1.8078704,0,0,1.0169271,-3.0298763,-5.1757356)" - d="M 11.247119,16.471191 A 0.553137,0.49167734 0 1 1 10.140845,16.471191 A 0.553137,0.49167734 0 1 1 11.247119,16.471191 z" - sodipodi:ry="0.49167734" - sodipodi:rx="0.553137" - sodipodi:cy="16.471191" - sodipodi:cx="10.693982" - id="path7416" - style="opacity:1;fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:7;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(4.4701088,0,0,4.6249999,-65.908816,-42.825863)" - d="M 19.113956,13.797695 A 1.4135723,1.5057619 0 1 1 16.286812,13.797695 A 1.4135723,1.5057619 0 1 1 19.113956,13.797695 z" - sodipodi:ry="1.5057619" - sodipodi:rx="1.4135723" - sodipodi:cy="13.797695" - sodipodi:cx="17.700384" - id="path7400" - style="opacity:1;fill:url(#radialGradient7402);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:7;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(4.5196759,0,0,1.0169271,-35.029811,3.0059967)" - d="M 11.247119,16.471191 A 0.553137,0.49167734 0 1 1 10.140845,16.471191 A 0.553137,0.49167734 0 1 1 11.247119,16.471191 z" - sodipodi:ry="0.49167734" - sodipodi:rx="0.553137" - sodipodi:cy="16.471191" - sodipodi:cx="10.693982" - id="path7418" - style="opacity:1;fill:url(#radialGradient7438);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:7;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(0,4.5196759,-2.0338541,0,46.913063,-27.253478)" - d="M 11.247119,16.471191 A 0.553137,0.49167734 0 1 1 10.140845,16.471191 A 0.553137,0.49167734 0 1 1 11.247119,16.471191 z" - sodipodi:ry="0.49167734" - sodipodi:rx="0.553137" - sodipodi:cy="16.471191" - sodipodi:cx="10.693982" - id="path7420" - style="opacity:1;fill:url(#radialGradient7448);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:7;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> + <g id="layer1"> + <g> + <path d="M 24 10.375 C 11.701921 10.375 1.71875 12.767211 1.71875 15.71875 C 1.71875 17.498261 5.3609075 19.059125 10.9375 20.03125 L 14.3125 46.90625 L 17.9375 26.1875 L 21.3125 41.90625 L 25.5625 23.71875 L 28.03125 37.6875 L 32.3125 22.9375 L 34.84375 33.0625 L 38.375 19.8125 C 43.199321 18.83144 46.28125 17.354051 46.28125 15.71875 C 46.28125 12.767211 36.298079 10.375 24 10.375 z " fill="#729fcf" fill-rule="evenodd" stroke="#204a87" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="round" stroke-opacity="1"/> + <path d="M 24.013525,20.535861 C 29.915498,20.535861 35.256377,19.860148 39.169775,19.061611 C 41.126474,18.662343 42.702812,18.185066 43.857275,17.628422 C 45.011738,17.071777 45.794775,16.382816 45.794775,15.758562 C 45.794775,15.111496 45.011739,14.383887 43.857275,13.827243 C 42.702811,13.270598 41.126474,12.706404 39.169775,12.307136 C 35.256377,11.508599 29.915498,10.878502 24.013525,10.878502 C 18.111552,10.878502 12.739423,11.552057 8.826025,12.350594 C 6.8693258,12.749862 5.2929887,13.270598 4.138525,13.827243 C 2.9840613,14.383887 2.201025,14.939123 2.201025,15.758562 C 2.201025,16.578001 2.9840613,17.071777 4.138525,17.628422 C 5.2929887,18.185066 6.8693258,18.662343 8.826025,19.061611 M 8.826025,19.061611 C 12.739423,19.860148 18.111552,20.535861 24.013525,20.535861 M 24.013525,11.738416 C 29.832893,11.738416 35.083852,12.397075 38.857275,13.16705 C 40.743987,13.552037 42.268014,14.087721 43.263525,14.567724 C 44.259036,15.047727 44.669775,15.382119 44.669775,15.758562 C 44.669775,16.135005 44.259035,16.407937 43.263525,16.88794 C 42.268015,17.367943 40.743986,17.840596 38.857275,18.225584 C 35.083852,18.995559 29.832893,19.652061 24.013525,19.652061 C 18.194157,19.652061 12.911948,18.995559 9.138525,18.225584 C 7.2518134,17.840596 5.7277856,17.367943 4.732275,16.88794 C 3.7367644,16.407937 3.326025,16.135005 3.326025,15.758562 C 3.326025,15.382119 3.7367644,15.047727 4.732275,14.567724 C 5.7277856,14.087721 7.2518134,13.595495 9.138525,13.210508 C 12.911948,12.440533 18.194157,11.738416 24.013525,11.738416 z" opacity="0.5" fill="#eeeeec" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1.14379668" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 20.220231,11.00128 L 29.138835,20.368103 L 24.21511,20.523801 L 15.180538,11.370038 L 20.220231,11.00128 z" fill="#cedeef" fill-rule="evenodd" stroke="none" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1" fill-opacity="1"/> + <path d="M 11.915494,19.751601 L 14.481435,40.163892 L 16.883534,26.331262 C 17.063009,24.706837 18.883373,24.906404 18.990928,26.307141 L 21.349551,37.344431 L 24.506026,23.859196 C 24.638961,22.408831 26.471791,22.275606 26.60475,23.905247 L 28.263765,33.272727 L 31.29544,22.83487 C 31.632247,21.540581 33.13534,21.733731 33.309125,22.813719 L 34.878361,29.055058 L 37.413573,19.544174" fill="none" fill-rule="evenodd" stroke="#eeeeec" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1" stroke-miterlimit="7" stroke-dasharray="none" opacity="0.5"/> + <path d="M 24.796795,10.87836 L 33.030717,20.024802 L 31.057055,20.187957 L 22.768625,10.889409 L 24.796795,10.87836 z" fill="#cedeef" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/> + <path d="M 28.334973,10.980368 L 36.114053,19.582843 L 35.115621,19.734949 L 27.305235,10.925125 L 28.334973,10.980368 z" fill="#cedeef" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1"/> + <path d="M 24.276568,13.090909 C 16.315524,13.346336 6.9039601,14.217661 2.7042254,16.717029 C 1.2906531,14.934699 3.0729833,13.828425 9.2804097,12.230474 C 14.942786,11.172151 20.784867,10.869471 24.346019,10.869471 C 29.101893,10.979193 33.366216,11.259555 39.81653,12.450903 C 39.81653,12.450903 46.858243,14.197968 45.56759,16.287597 C 41.461334,13.814622 33.948682,12.944657 24.276568,13.090909 z" fill="url(#linearGradient7386)" fill-rule="evenodd" stroke="none" stroke-width="1px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1" fill-opacity="1"/> + <path transform="matrix(2.1222827,0,0,1.9923469,-21.167011,-16.108233)" d="M 19.113956,13.797695 A 1.4135723,1.5057619 0 1 1 16.286812,13.797695 A 1.4135723,1.5057619 0 1 1 19.113956,13.797695 z" opacity="1" fill="url(#radialGradient7398)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="square" stroke-linejoin="round" stroke-miterlimit="7" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path transform="matrix(1.8078704,0,0,1.0169271,-3.0298763,-5.1757356)" d="M 11.247119,16.471191 A 0.553137,0.49167734 0 1 1 10.140845,16.471191 A 0.553137,0.49167734 0 1 1 11.247119,16.471191 z" opacity="1" fill="#eeeeec" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="square" stroke-linejoin="round" stroke-miterlimit="7" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path transform="matrix(4.4701088,0,0,4.6249999,-65.908816,-42.825863)" d="M 19.113956,13.797695 A 1.4135723,1.5057619 0 1 1 16.286812,13.797695 A 1.4135723,1.5057619 0 1 1 19.113956,13.797695 z" opacity="1" fill="url(#radialGradient7402)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="square" stroke-linejoin="round" stroke-miterlimit="7" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path transform="matrix(4.5196759,0,0,1.0169271,-35.029811,3.0059967)" d="M 11.247119,16.471191 A 0.553137,0.49167734 0 1 1 10.140845,16.471191 A 0.553137,0.49167734 0 1 1 11.247119,16.471191 z" opacity="1" fill="url(#radialGradient7438)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="square" stroke-linejoin="round" stroke-miterlimit="7" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path transform="matrix(0,4.5196759,-2.0338541,0,46.913063,-27.253478)" d="M 11.247119,16.471191 A 0.553137,0.49167734 0 1 1 10.140845,16.471191 A 0.553137,0.49167734 0 1 1 11.247119,16.471191 z" opacity="1" fill="url(#radialGradient7448)" fill-opacity="1" fill-rule="evenodd" stroke="none" stroke-width="1" stroke-linecap="square" stroke-linejoin="round" stroke-miterlimit="7" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> </g> </svg> diff --git a/demos/embedded/weatherinfo/icons/weather-overcast.svg b/demos/embedded/weatherinfo/icons/weather-overcast.svg index 35fb4a4..cf77214 100644 --- a/demos/embedded/weatherinfo/icons/weather-overcast.svg +++ b/demos/embedded/weatherinfo/icons/weather-overcast.svg @@ -1,2554 +1,81 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="48px" - height="48px" - id="svg1306" - sodipodi:version="0.32" - inkscape:version="0.46" - sodipodi:docbase="/home/rcollier/Work/Novell/Tango/weather" - sodipodi:docname="weather-overcast.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs1308"> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 24 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="48 : 24 : 1" - inkscape:persp3d-origin="24 : 16 : 1" - id="perspective361" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient10670" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient10668" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient10666" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient10664" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient10662" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient10660" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient10658" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient10656" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6549"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6551" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6553" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient10654" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6527"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6530" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6532" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient10652" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6538"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6540" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6542" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient10650" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6513"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6515" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6517" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient10648" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6497"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6499" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6501" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient10646" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6470"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6472" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6474" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient10644" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - id="linearGradient7834"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop7836" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop7838" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient7834" - id="linearGradient10642" - gradientUnits="userSpaceOnUse" - x1="-156.29044" - y1="-100.53421" - x2="-153.09810" - y2="-96.544556" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8397"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8400" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8402" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8397" - id="linearGradient10640" - gradientUnits="userSpaceOnUse" - x1="238.00478" - y1="-388.47476" - x2="245.65462" - y2="-382.64539" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8315"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8317" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8319" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8315" - id="linearGradient10638" - gradientUnits="userSpaceOnUse" - x1="230.87598" - y1="-390.43951" - x2="235.25652" - y2="-386.95901" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8381"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8383" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8385" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8381" - id="linearGradient10636" - gradientUnits="userSpaceOnUse" - x1="246.74042" - y1="-391.31381" - x2="252.69785" - y2="-385.35165" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8331"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8333" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8335" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8331" - id="linearGradient10634" - gradientUnits="userSpaceOnUse" - x1="240.07379" - y1="-393.40720" - x2="245.82706" - y2="-388.55029" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8302"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8304" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8306" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8302" - id="linearGradient10632" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(69.00259,102.0000)" - x1="228.50261" - y1="-392.30591" - x2="278.91510" - y2="-375.37952" /> - <linearGradient - inkscape:collect="always" - id="linearGradient3019"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop3021" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop3023" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2298" - id="linearGradient2861" - gradientUnits="userSpaceOnUse" - x1="-27.006643" - y1="-37.550461" - x2="-34.700153" - y2="-4.4493785" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient2859" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3478" - id="linearGradient2857" - gradientUnits="userSpaceOnUse" - x1="11.149398" - y1="-43.997444" - x2="4.9625983" - y2="-8.3080902" /> - <linearGradient - inkscape:collect="always" - id="linearGradient4488"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop4490" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop4492" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient3478"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop3480" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop3482" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2298"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2300" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2302" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient3347"> - <stop - style="stop-color:#edd400;stop-opacity:1;" - offset="0" - id="stop3349" /> - <stop - style="stop-color:#edd400;stop-opacity:0;" - offset="1" - id="stop3351" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2527"> - <stop - style="stop-color:#fcaf3e;stop-opacity:1;" - offset="0" - id="stop2529" /> - <stop - style="stop-color:#fcaf3e;stop-opacity:0;" - offset="1" - id="stop2531" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2500"> - <stop - style="stop-color:#fce94f;stop-opacity:1;" - offset="0" - id="stop2502" /> - <stop - style="stop-color:#fce94f;stop-opacity:0;" - offset="1" - id="stop2504" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2392"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop2394" /> - <stop - style="stop-color:#eeeeec;stop-opacity:0;" - offset="1" - id="stop2396" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2254"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2256" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2258" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2263" - gradientUnits="userSpaceOnUse" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" - gradientTransform="translate(-1.608757,3.097272)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2267" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2271" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2275" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2279" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2283" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2287" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2291" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2295" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2299" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2303" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.707748,-5.784024)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2311" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2350" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(16.14002,24.66420)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2352" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.932144,25.87240)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2354" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.356636,23.86870)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2356" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(11.19027,26.52035)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2358" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(10.30638,19.27251)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2360" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2362" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2364" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2366" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2368" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.207586,21.30544)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2372" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2398" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2426" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2428" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2430" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-1.608757,3.097272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2432" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2434" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2436" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2438" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2440" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2442" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2446" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2448" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2451" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2457" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2460" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2463" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2469" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2472" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2475" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2478" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2483" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(0.842481,-3.998086)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2506" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2509" - gradientUnits="userSpaceOnUse" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2513" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - x1="38.857941" - y1="-18.407482" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2517" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient2533" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2537" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(17.33814,3.415985)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2541" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2555" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.499805,1.708617)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2563" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.726830,2.481141)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3347" - id="linearGradient3353" - x1="23.303862" - y1="29.115711" - x2="29.750000" - y2="46.092930" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3366" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3368" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3372" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3374" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3376" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3378" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3380" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3383" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3386" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3389" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3392" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3395" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.674812,3.088370)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3398" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-2.033818,0.561720)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3401" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.197595,2.690414)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3405" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.561802,-4.303373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-4.4493785" - x2="-34.700153" - y1="-37.550461" - x1="-27.006643" - id="linearGradient2916" - xlink:href="#linearGradient2298" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient2914" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(57.97693,-10.56876)" - gradientUnits="userSpaceOnUse" - id="linearGradient2912" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)" - gradientUnits="userSpaceOnUse" - id="linearGradient2910" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient2908" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient2906" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient2904" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient2902" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient2900" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient2898" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient2896" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient2894" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)" - gradientUnits="userSpaceOnUse" - id="linearGradient2892" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)" - gradientUnits="userSpaceOnUse" - id="linearGradient2890" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(88.49344,-9.697877)" - gradientUnits="userSpaceOnUse" - id="linearGradient2888" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.561802,-4.303373)" - gradientUnits="userSpaceOnUse" - id="linearGradient2886" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient2884" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient2882" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient2880" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient2878" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient2876" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient2874" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient2872" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient2870" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2868" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient2866" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient2864" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2862" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2860" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2858" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient2856" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="46.092930" - x2="29.750000" - y1="29.115711" - x1="23.303862" - id="linearGradient2854" - xlink:href="#linearGradient3347" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.726830,2.481141)" - gradientUnits="userSpaceOnUse" - id="linearGradient2852" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.499805,1.708617)" - gradientUnits="userSpaceOnUse" - id="linearGradient2850" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient2848" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(17.33814,3.415985)" - gradientUnits="userSpaceOnUse" - id="linearGradient2846" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - id="linearGradient2844" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - gradientUnits="userSpaceOnUse" - id="linearGradient2842" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-18.407482" - x1="38.857941" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - gradientUnits="userSpaceOnUse" - id="linearGradient2840" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientUnits="userSpaceOnUse" - id="linearGradient2838" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - id="linearGradient2836" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(0.842481,-3.998086)" - gradientUnits="userSpaceOnUse" - id="linearGradient2834" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2832" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2830" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2828" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient2826" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient2824" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2822" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient2820" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - gradientUnits="userSpaceOnUse" - id="linearGradient2818" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - id="linearGradient2816" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient2814" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient2812" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2810" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient2808" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient2806" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient2804" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2802" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2800" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-1.608757,3.097272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2798" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient2796" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient2794" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - id="linearGradient2792" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - gradientUnits="userSpaceOnUse" - id="linearGradient2790" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.207586,21.30544)" - gradientUnits="userSpaceOnUse" - id="linearGradient2788" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - gradientUnits="userSpaceOnUse" - id="linearGradient2786" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - gradientUnits="userSpaceOnUse" - id="linearGradient2784" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - gradientUnits="userSpaceOnUse" - id="linearGradient2782" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - gradientUnits="userSpaceOnUse" - id="linearGradient2780" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - gradientUnits="userSpaceOnUse" - id="linearGradient2778" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(10.30638,19.27251)" - gradientUnits="userSpaceOnUse" - id="linearGradient2776" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(11.19027,26.52035)" - gradientUnits="userSpaceOnUse" - id="linearGradient2774" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(5.356636,23.86870)" - gradientUnits="userSpaceOnUse" - id="linearGradient2772" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.932144,25.87240)" - gradientUnits="userSpaceOnUse" - id="linearGradient2770" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(16.14002,24.66420)" - gradientUnits="userSpaceOnUse" - id="linearGradient2768" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient2766" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.707748,-5.784024)" - gradientUnits="userSpaceOnUse" - id="linearGradient2764" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient2762" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2760" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient2758" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient2756" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient2754" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient2752" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient2750" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2748" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2746" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="translate(-1.608757,3.097272)" - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientUnits="userSpaceOnUse" - id="linearGradient2744" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4434" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(41.44608,-6.716447)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4436" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(46.60985,-8.845141)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4438" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(52.31848,-6.318491)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4440" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,42.85737,-2.200849)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4442" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,57.93093,-1.243739)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,37.36747,-8.003450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4446" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,49.43869,-3.313289)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4464" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(41.44608,-6.716447)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4466" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(46.60985,-8.845141)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4468" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(52.31848,-6.318491)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4470" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,42.85737,-2.200849)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4472" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,57.93093,-1.243739)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4474" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,37.36747,-8.003450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4476" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,49.43869,-3.313289)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4538" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(41.44608,-6.716447)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4540" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(46.60985,-8.845141)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4542" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(52.31848,-6.318491)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4544" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,42.85737,-2.200849)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4546" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,57.93093,-1.243739)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4548" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,37.36747,-8.003450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient4550" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,49.43869,-3.313289)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient4552" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.927204,0.000000,0.000000,0.882329,2.105168,3.373861)" - x1="17.181321" - y1="32.443652" - x2="47.342173" - y2="32.443652" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient2276" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,2.081767,3.390390)" - x1="17.181321" - y1="32.443652" - x2="47.342173" - y2="32.443652" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient2289" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.931230,0.000000,0.000000,0.881886,-13.99458,-6.609596)" - x1="17.181321" - y1="32.443652" - x2="47.342173" - y2="32.443652" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3025" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3029" - gradientUnits="userSpaceOnUse" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3033" - gradientUnits="userSpaceOnUse" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3037" - gradientUnits="userSpaceOnUse" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3041" - gradientUnits="userSpaceOnUse" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3045" - gradientUnits="userSpaceOnUse" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3049" - gradientUnits="userSpaceOnUse" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3053" - gradientUnits="userSpaceOnUse" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3056" - gradientUnits="userSpaceOnUse" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" - gradientTransform="translate(3.437500,-3.000000)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3060" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-6.911612,2.585786)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3064" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-3.146447,8.838835e-2)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3068" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,13.66667,3.000000)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3072" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.66667,8.000000)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3076" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.698434,10.27557)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3080" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.68234,16.99480)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3107" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.437500,-3.000000)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3109" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-6.911612,2.585786)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3111" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-3.146447,8.838835e-2)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3113" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,13.66667,3.000000)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3115" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.66667,8.000000)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3117" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.698434,10.27557)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient3119" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.68234,16.99480)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> +<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" width="48px" height="48px" id="svg1306"> + <defs id="defs1308"> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient10670" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient10668" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient10666" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient10664" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient10662" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient10660" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient10658" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient10656" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient id="linearGradient6549"> + <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient10654" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient id="linearGradient6527"> + <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient10652" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient id="linearGradient6538"> + <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient10650" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient id="linearGradient6513"> + <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient10648" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient id="linearGradient6497"> + <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient10646" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient id="linearGradient6470"> + <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient10644" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient id="linearGradient7834"> + <stop offset="0" id="stop7836" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop7838" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient7834" id="linearGradient10642" gradientUnits="userSpaceOnUse" x1="-156.29044" y1="-100.53421" x2="-153.09810" y2="-96.544556"/> + <linearGradient id="linearGradient8397"> + <stop offset="0" id="stop8400" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8402" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8397" id="linearGradient10640" gradientUnits="userSpaceOnUse" x1="238.00478" y1="-388.47476" x2="245.65462" y2="-382.64539"/> + <linearGradient id="linearGradient8315"> + <stop offset="0" id="stop8317" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8319" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8315" id="linearGradient10638" gradientUnits="userSpaceOnUse" x1="230.87598" y1="-390.43951" x2="235.25652" y2="-386.95901"/> + <linearGradient id="linearGradient8381"> + <stop offset="0" id="stop8383" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8385" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8381" id="linearGradient10636" gradientUnits="userSpaceOnUse" x1="246.74042" y1="-391.31381" x2="252.69785" y2="-385.35165"/> + <linearGradient id="linearGradient8331"> + <stop offset="0" id="stop8333" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8335" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8331" id="linearGradient10634" gradientUnits="userSpaceOnUse" x1="240.07379" y1="-393.40720" x2="245.82706" y2="-388.55029"/> + <linearGradient id="linearGradient8302"> + <stop offset="0" id="stop8304" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8306" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8302" id="linearGradient10632" gradientUnits="userSpaceOnUse" gradientTransform="translate(69.00259,102.0000)" x1="228.50261" y1="-392.30591" x2="278.91510" y2="-375.37952"/> </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="11.313709" - inkscape:cx="8.6163343" - inkscape:cy="24.822365" - inkscape:current-layer="layer1" - showgrid="true" - inkscape:grid-bbox="true" - inkscape:document-units="px" - inkscape:window-width="1210" - inkscape:window-height="704" - inkscape:window-x="182" - inkscape:window-y="144" - inkscape:showpageshadow="false" - showguides="true" - inkscape:guide-bbox="true" /> - <metadata - id="metadata1311"> + + <metadata id="metadata1311"> <rdf:RDF> - <cc:Work - rdf:about=""> + <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:title>weather-overcast</dc:title> <dc:date>January 2006</dc:date> <dc:creator> @@ -2569,466 +96,94 @@ <rdf:li>notify</rdf:li> </rdf:Bag> </dc:subject> - <cc:license - rdf:resource="http://creativecommons.org/licenses/publicdomain/" /> + <cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/> </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/publicdomain/"> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Reproduction" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Distribution" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> + <cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/"> + <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/> + <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/> + <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/> </cc:License> </rdf:RDF> </metadata> - <g - id="layer1" - inkscape:label="Layer 1" - inkscape:groupmode="layer"> - <g - id="g10011" - transform="translate(-287.0000,298.0000)"> - <path - id="path8267" - d="M 311.50259,-296.00000 C 308.73017,-296.00000 306.39436,-294.42629 305.09634,-292.18750 C 304.15198,-292.66254 303.13115,-293.00000 302.00259,-293.00000 C 298.13859,-293.00000 295.00259,-289.86400 295.00259,-286.00000 C 295.00259,-282.13600 298.13859,-279.00000 302.00259,-279.00000 C 304.42226,-279.00000 306.43268,-280.31932 307.69009,-282.18750 C 308.82429,-281.49788 310.07907,-281.00000 311.50259,-281.00000 C 312.41571,-281.00000 313.25554,-281.23202 314.06509,-281.53125 C 314.57503,-280.66352 315.24421,-279.95153 316.06509,-279.37500 C 316.05785,-279.24462 316.00259,-279.13218 316.00259,-279.00000 C 316.00259,-275.13600 319.13858,-272.00000 323.00259,-272.00000 C 326.86659,-272.00000 330.00259,-275.13600 330.00259,-279.00000 C 330.00259,-281.36969 328.74361,-283.35834 326.94009,-284.62500 C 326.94733,-284.75538 327.00259,-284.86782 327.00259,-285.00000 C 327.00259,-288.86400 323.86660,-292.00000 320.00259,-292.00000 C 319.37989,-292.00000 318.82740,-291.77781 318.25259,-291.62500 C 317.05806,-294.18384 314.51125,-296.00000 311.50259,-296.00000 z " - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - id="path8291" - d="M 311.50259,-295.00000 C 308.72211,-295.00000 306.36808,-293.23815 305.44009,-290.78125 C 304.45467,-291.49069 303.30866,-292.00000 302.00259,-292.00000 C 298.69059,-292.00000 296.00259,-289.31200 296.00259,-286.00000 C 296.00259,-282.68800 298.69059,-280.00000 302.00259,-280.00000 C 304.43034,-280.00000 306.49583,-281.45558 307.44009,-283.53125 C 308.56085,-282.61369 309.94223,-282.00000 311.50259,-282.00000 C 312.57713,-282.00000 313.54687,-282.31896 314.44009,-282.78125 C 314.83849,-281.78149 315.54123,-280.99493 316.37759,-280.34375 C 316.19758,-279.74813 316.00259,-279.15410 316.00259,-278.50000 C 316.00259,-274.91200 318.91459,-272.00000 322.50259,-272.00000 C 326.09059,-272.00000 329.00259,-274.91200 329.00259,-278.50000 C 329.00259,-280.86079 327.66826,-282.83019 325.78384,-283.96875 C 325.84643,-284.31598 326.00259,-284.63483 326.00259,-285.00000 C 326.00259,-288.31200 323.31459,-291.00000 320.00259,-291.00000 C 319.14961,-291.00000 318.33129,-290.82132 317.59634,-290.50000 C 316.74257,-293.09388 314.38110,-294.99999 311.50259,-295.00000 z " - style="opacity:1.0000000;fill:url(#linearGradient10632);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.964447,0.000000,0.000000,0.964447,89.29111,91.52621)" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - sodipodi:ry="6.7396116" - sodipodi:rx="6.7396116" - sodipodi:cy="-383.66660" - sodipodi:cx="241.80843" - id="path8414" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <g - transform="translate(69.00259,102.0000)" - id="g8349"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8327" - sodipodi:cx="243.95184" - sodipodi:cy="-389.30136" - sodipodi:rx="6.2313786" - sodipodi:ry="6.2313786" - d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" - transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10634);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8329" - sodipodi:cx="243.95184" - sodipodi:cy="-389.30136" - sodipodi:rx="6.2313786" - sodipodi:ry="6.2313786" - d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" - transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" /> + <g id="layer1"> + <g transform="translate(-287.0000,298.0000)"> + <path d="M 311.50259,-296.00000 C 308.73017,-296.00000 306.39436,-294.42629 305.09634,-292.18750 C 304.15198,-292.66254 303.13115,-293.00000 302.00259,-293.00000 C 298.13859,-293.00000 295.00259,-289.86400 295.00259,-286.00000 C 295.00259,-282.13600 298.13859,-279.00000 302.00259,-279.00000 C 304.42226,-279.00000 306.43268,-280.31932 307.69009,-282.18750 C 308.82429,-281.49788 310.07907,-281.00000 311.50259,-281.00000 C 312.41571,-281.00000 313.25554,-281.23202 314.06509,-281.53125 C 314.57503,-280.66352 315.24421,-279.95153 316.06509,-279.37500 C 316.05785,-279.24462 316.00259,-279.13218 316.00259,-279.00000 C 316.00259,-275.13600 319.13858,-272.00000 323.00259,-272.00000 C 326.86659,-272.00000 330.00259,-275.13600 330.00259,-279.00000 C 330.00259,-281.36969 328.74361,-283.35834 326.94009,-284.62500 C 326.94733,-284.75538 327.00259,-284.86782 327.00259,-285.00000 C 327.00259,-288.86400 323.86660,-292.00000 320.00259,-292.00000 C 319.37989,-292.00000 318.82740,-291.77781 318.25259,-291.62500 C 317.05806,-294.18384 314.51125,-296.00000 311.50259,-296.00000 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 311.50259,-295.00000 C 308.72211,-295.00000 306.36808,-293.23815 305.44009,-290.78125 C 304.45467,-291.49069 303.30866,-292.00000 302.00259,-292.00000 C 298.69059,-292.00000 296.00259,-289.31200 296.00259,-286.00000 C 296.00259,-282.68800 298.69059,-280.00000 302.00259,-280.00000 C 304.43034,-280.00000 306.49583,-281.45558 307.44009,-283.53125 C 308.56085,-282.61369 309.94223,-282.00000 311.50259,-282.00000 C 312.57713,-282.00000 313.54687,-282.31896 314.44009,-282.78125 C 314.83849,-281.78149 315.54123,-280.99493 316.37759,-280.34375 C 316.19758,-279.74813 316.00259,-279.15410 316.00259,-278.50000 C 316.00259,-274.91200 318.91459,-272.00000 322.50259,-272.00000 C 326.09059,-272.00000 329.00259,-274.91200 329.00259,-278.50000 C 329.00259,-280.86079 327.66826,-282.83019 325.78384,-283.96875 C 325.84643,-284.31598 326.00259,-284.63483 326.00259,-285.00000 C 326.00259,-288.31200 323.31459,-291.00000 320.00259,-291.00000 C 319.14961,-291.00000 318.33129,-290.82132 317.59634,-290.50000 C 316.74257,-293.09388 314.38110,-294.99999 311.50259,-295.00000 z " opacity="1.0000000" fill="url(#linearGradient10632)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.964447,0.000000,0.000000,0.964447,89.29111,91.52621)" d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g transform="translate(69.00259,102.0000)"> + <path d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" opacity="1.0000000" fill="url(#linearGradient10634)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(69.00259,102.0000)" - id="g8389"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8368" - sodipodi:cx="251.22179" - sodipodi:cy="-385.78790" - sodipodi:rx="6.0325046" - sodipodi:ry="6.0325046" - d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" - transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10636);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8370" - sodipodi:cx="251.22179" - sodipodi:cy="-385.78790" - sodipodi:rx="6.0325046" - sodipodi:ry="6.0325046" - d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" - transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" /> + <g transform="translate(69.00259,102.0000)"> + <path d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" opacity="1.0000000" fill="url(#linearGradient10636)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(69.00259,102.0000)" - id="g8323"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8311" - sodipodi:cx="233.43362" - sodipodi:cy="-387.88715" - sodipodi:rx="4.3752232" - sodipodi:ry="4.3752232" - d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" - transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10638);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8313" - sodipodi:cx="233.43362" - sodipodi:cy="-387.88715" - sodipodi:rx="4.3752232" - sodipodi:ry="4.3752232" - d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" - transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" /> + <g transform="translate(69.00259,102.0000)"> + <path d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" opacity="1.0000000" fill="url(#linearGradient10638)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(69.00259,102.0000)" - id="g8406"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8393" - sodipodi:cx="241.80843" - sodipodi:cy="-383.66660" - sodipodi:rx="6.7396116" - sodipodi:ry="6.7396116" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150940,14.48994)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10640);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8395" - sodipodi:cx="241.80843" - sodipodi:cy="-383.66660" - sodipodi:rx="6.7396116" - sodipodi:ry="6.7396116" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150933,14.48993)" /> + <g transform="translate(69.00259,102.0000)"> + <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150940,14.48994)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150933,14.48993)" opacity="1.0000000" fill="url(#linearGradient10640)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - style="stroke:none" - transform="matrix(0.935028,0.000000,0.000000,0.935028,446.8280,-187.6162)" - id="g4518"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:0.33115697;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path4520" - sodipodi:cx="-155.06250" - sodipodi:cy="-96.937500" - sodipodi:rx="3.1250000" - sodipodi:ry="3.1250000" - d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1 -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1 -151.93750 -96.937500 z" - transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8322,70.07649)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10642);fill-opacity:1.0000000;stroke:none;stroke-width:0.45224530;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path4522" - sodipodi:cx="-155.06250" - sodipodi:cy="-96.937500" - sodipodi:rx="3.1250000" - sodipodi:ry="3.1250000" - d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1 -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1 -151.93750 -96.937500 z" - transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8948,70.01402)" /> + <g transform="matrix(0.935028,0.000000,0.000000,0.935028,446.8280,-187.6162)" stroke="none"> + <path d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1 -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1 -151.93750 -96.937500 z" transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8322,70.07649)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="0.33115697" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1 -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1 -151.93750 -96.937500 z" transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8948,70.01402)" opacity="1.0000000" fill="url(#linearGradient10642)" fill-opacity="1.0000000" stroke="none" stroke-width="0.45224530" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(38.00259,162.0000)" - id="g7794"> - <path - style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " - id="path7796" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient10644);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " - id="path7798" - sodipodi:nodetypes="ccsscsssscsscc" /> - <g - id="g7800"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7802" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7804" - style="opacity:1.0000000;fill:url(#linearGradient10646);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g transform="translate(38.00259,162.0000)"> + <path d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " fill="#c4c5c2" fill-opacity="1.0000000" stroke="#888a85" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " opacity="1.0000000" fill="url(#linearGradient10644)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10646)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <rect - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="rect7806" - width="20.000000" - height="9.0000000" - x="271.00000" - y="-438.00000" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path7808" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" /> - <g - id="g7810"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7812" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7814" - style="opacity:1.0000000;fill:url(#linearGradient10648);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <rect width="20.000000" height="9.0000000" x="271.00000" y="-438.00000" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10648)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g7816"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7818" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7820" - style="opacity:1.0000000;fill:url(#linearGradient10650);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10650)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g7822" - transform="translate(-1.000000,0.000000)"> - <path - id="path7824" - d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - id="path7826" - d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " - style="opacity:1.0000000;fill:url(#linearGradient10652);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> + <g transform="translate(-1.000000,0.000000)"> + <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " opacity="1.0000000" fill="url(#linearGradient10652)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10654);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path7828" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" /> - <path - style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" - d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " - id="path7830" - sodipodi:nodetypes="ccss" /> - <g - id="g7832" - transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7834" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7836" - style="opacity:1.0000000;fill:url(#linearGradient10656);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" opacity="1.0000000" fill="url(#linearGradient10654)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " fill="#888a85" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <g transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10656)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> - <g - transform="translate(23.00000,158.0000)" - id="g7852"> - <path - style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " - id="path7854" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient10658);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " - id="path7856" - sodipodi:nodetypes="ccsscsssscsscc" /> - <g - id="g7858"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7860" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7862" - style="opacity:1.0000000;fill:url(#linearGradient10660);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g transform="translate(23.00000,158.0000)"> + <path d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " fill="#c4c5c2" fill-opacity="1.0000000" stroke="#888a85" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " opacity="1.0000000" fill="url(#linearGradient10658)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10660)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <rect - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="rect7864" - width="20.000000" - height="9.0000000" - x="271.00000" - y="-438.00000" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path7866" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" /> - <g - id="g7868"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7870" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7872" - style="opacity:1.0000000;fill:url(#linearGradient10662);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <rect width="20.000000" height="9.0000000" x="271.00000" y="-438.00000" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10662)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g7874"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7876" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7878" - style="opacity:1.0000000;fill:url(#linearGradient10664);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10664)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g7880" - transform="translate(-1.000000,0.000000)"> - <path - id="path7882" - d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - id="path7884" - d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " - style="opacity:1.0000000;fill:url(#linearGradient10666);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> + <g transform="translate(-1.000000,0.000000)"> + <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " opacity="1.0000000" fill="url(#linearGradient10666)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10668);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path7886" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" /> - <path - style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" - d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " - id="path7888" - sodipodi:nodetypes="ccss" /> - <g - id="g7890" - transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7892" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path7896" - style="opacity:1.0000000;fill:url(#linearGradient10670);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" opacity="1.0000000" fill="url(#linearGradient10668)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " fill="#888a85" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <g transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10670)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> </g> diff --git a/demos/embedded/weatherinfo/icons/weather-showers.svg b/demos/embedded/weatherinfo/icons/weather-showers.svg index c814571..017665d 100644 --- a/demos/embedded/weatherinfo/icons/weather-showers.svg +++ b/demos/embedded/weatherinfo/icons/weather-showers.svg @@ -1,4297 +1,83 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="48px" - height="48px" - id="svg1306" - sodipodi:version="0.32" - inkscape:version="0.46" - sodipodi:docbase="/home/rcollier/Work/Novell/Tango/weather" - sodipodi:docname="weather-showers.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs1308"> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 24 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="48 : 24 : 1" - inkscape:persp3d-origin="24 : 16 : 1" - id="perspective530" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient11348" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.070878,0.000000,-0.535439,0.674858,287.5142,77.50802)" - x1="-137.49608" - y1="-425.28664" - x2="-130.60854" - y2="-425.28665" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient11346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.070879,0.000000,-0.535439,0.674857,277.5140,77.50780)" - x1="-137.49608" - y1="-425.28664" - x2="-130.60854" - y2="-425.28665" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient11344" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.088439,0.000000,-0.544220,0.674842,265.9811,77.50139)" - x1="-137.49608" - y1="-425.28664" - x2="-130.60854" - y2="-425.28665" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13352" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient13350" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient13347" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-35.00007,207.0001)" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13345" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient13343" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient13341" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient13339" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-34.00007,207.0001)" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13337" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6549"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6551" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6553" /> +<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" width="48px" height="48px" id="svg1306"> + <defs id="defs1308"> + <linearGradient xlink:href="#linearGradient2254" id="linearGradient11348" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.070878,0.000000,-0.535439,0.674858,287.5142,77.50802)" x1="-137.49608" y1="-425.28664" x2="-130.60854" y2="-425.28665"/> + <linearGradient xlink:href="#linearGradient2254" id="linearGradient11346" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.070879,0.000000,-0.535439,0.674857,277.5140,77.50780)" x1="-137.49608" y1="-425.28664" x2="-130.60854" y2="-425.28665"/> + <linearGradient xlink:href="#linearGradient2254" id="linearGradient11344" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.088439,0.000000,-0.544220,0.674842,265.9811,77.50139)" x1="-137.49608" y1="-425.28664" x2="-130.60854" y2="-425.28665"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13352" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient13350" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient13347" gradientUnits="userSpaceOnUse" gradientTransform="translate(-35.00007,207.0001)" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13345" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient13343" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient13341" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient13339" gradientUnits="userSpaceOnUse" gradientTransform="translate(-34.00007,207.0001)" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13337" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient id="linearGradient6549"> + <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient13335" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient id="linearGradient6527"> + <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient13333" gradientUnits="userSpaceOnUse" gradientTransform="translate(-35.00007,207.0001)" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient id="linearGradient6538"> + <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13331" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient id="linearGradient6513"> + <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient13329" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient id="linearGradient6497"> + <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient13327" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient id="linearGradient6470"> + <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient13325" gradientUnits="userSpaceOnUse" gradientTransform="translate(-34.00007,207.0001)" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient id="linearGradient8397"> + <stop offset="0" id="stop8400" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8402" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8397" id="linearGradient13323" gradientUnits="userSpaceOnUse" x1="238.00478" y1="-388.47476" x2="245.65462" y2="-382.64539"/> + <linearGradient id="linearGradient8315"> + <stop offset="0" id="stop8317" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8319" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8315" id="linearGradient13321" gradientUnits="userSpaceOnUse" x1="230.87598" y1="-390.43951" x2="235.25652" y2="-386.95901"/> + <linearGradient id="linearGradient8381"> + <stop offset="0" id="stop8383" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8385" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8381" id="linearGradient13319" gradientUnits="userSpaceOnUse" x1="246.74042" y1="-391.31381" x2="252.69785" y2="-385.35165"/> + <linearGradient id="linearGradient8331"> + <stop offset="0" id="stop8333" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8335" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8331" id="linearGradient13317" gradientUnits="userSpaceOnUse" x1="240.07379" y1="-393.40720" x2="245.82706" y2="-388.55029"/> + <linearGradient id="linearGradient8302"> + <stop offset="0" id="stop8304" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8306" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8302" id="linearGradient13315" gradientUnits="userSpaceOnUse" gradientTransform="translate(69.00000,155.0000)" x1="228.50261" y1="-392.30591" x2="266.36395" y2="-379.26862"/> + <linearGradient id="linearGradient2254"> + <stop offset="0" id="stop2256" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop2258" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient13335" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6527"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6530" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6532" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient13333" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-35.00007,207.0001)" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6538"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6540" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6542" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13331" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6513"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6515" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6517" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient13329" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6497"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6499" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6501" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient13327" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6470"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6472" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6474" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient13325" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-34.00007,207.0001)" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8397"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8400" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8402" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8397" - id="linearGradient13323" - gradientUnits="userSpaceOnUse" - x1="238.00478" - y1="-388.47476" - x2="245.65462" - y2="-382.64539" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8315"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8317" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8319" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8315" - id="linearGradient13321" - gradientUnits="userSpaceOnUse" - x1="230.87598" - y1="-390.43951" - x2="235.25652" - y2="-386.95901" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8381"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8383" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8385" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8381" - id="linearGradient13319" - gradientUnits="userSpaceOnUse" - x1="246.74042" - y1="-391.31381" - x2="252.69785" - y2="-385.35165" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8331"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8333" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8335" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8331" - id="linearGradient13317" - gradientUnits="userSpaceOnUse" - x1="240.07379" - y1="-393.40720" - x2="245.82706" - y2="-388.55029" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8302"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8304" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8306" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8302" - id="linearGradient13315" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(69.00000,155.0000)" - x1="228.50261" - y1="-392.30591" - x2="266.36395" - y2="-379.26862" /> - <linearGradient - inkscape:collect="always" - id="linearGradient4442"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop4444" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop4446" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4442" - id="linearGradient4467" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-59.00000,27.72122)" - x1="4.3602662" - y1="-21.904713" - x2="40.139732" - y2="-1.8452871" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4430" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,7.747730,-6.786242)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4426" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,12.43523,-5.473742)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4404" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-14.02052,-13.29853)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4407" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-9.728831,-6.856090)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4410" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-4.033948,-17.90479)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4413" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,-1.200260,0.631990)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4419" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,4.534070,-12.70656)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4422" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.992899,-16.32980)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient4479" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-60.91820,-2.915960)" - x1="17.181321" - y1="32.443652" - x2="47.342173" - y2="32.443652" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4359" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4357" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4355" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.365819,-55.70818)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4353" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4351" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4349" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4347" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-3.681521,-53.82781)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - id="linearGradient4488"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop4490" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop4492" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient4370" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-74.92090,-6.914630)" - x1="17.175579" - y1="23.374163" - x2="38.037014" - y2="38.680286" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4255" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4253" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4251" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.365819,-55.70818)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4249" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4247" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4245" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - id="linearGradient3019"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop3021" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop3023" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4243" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-3.681521,-53.82781)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - id="linearGradient6525" - gradientUnits="userSpaceOnUse" - x1="4.1914001" - y1="11.113300" - x2="47.319698" - y2="56.052299"> - <stop - offset="0" - style="stop-color:#ffffff;stop-opacity:1;" - id="stop6529" /> - <stop - offset="1" - style="stop-color:#ffffff;stop-opacity:0.34020618;" - id="stop6531" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6525" - id="linearGradient5250" - x1="8.5469341" - y1="30.281681" - x2="30.85088" - y2="48.301884" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.874977,0.000000,0.000000,0.921480,-56.65990,-1.553540)" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6537"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6539" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6541" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2298"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2300" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2302" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient3347"> - <stop - style="stop-color:#edd400;stop-opacity:1;" - offset="0" - id="stop3349" /> - <stop - style="stop-color:#edd400;stop-opacity:0;" - offset="1" - id="stop3351" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2527"> - <stop - style="stop-color:#fcaf3e;stop-opacity:1;" - offset="0" - id="stop2529" /> - <stop - style="stop-color:#fcaf3e;stop-opacity:0;" - offset="1" - id="stop2531" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2500"> - <stop - style="stop-color:#fce94f;stop-opacity:1;" - offset="0" - id="stop2502" /> - <stop - style="stop-color:#fce94f;stop-opacity:0;" - offset="1" - id="stop2504" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2392"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop2394" /> - <stop - style="stop-color:#eeeeec;stop-opacity:0;" - offset="1" - id="stop2396" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2254"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2256" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2258" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2263" - gradientUnits="userSpaceOnUse" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" - gradientTransform="translate(-1.608757,3.097272)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2267" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2271" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2275" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2279" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2283" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2287" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2291" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2295" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2299" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2303" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.707748,-5.784024)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2311" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2350" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(16.14002,24.66420)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2352" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.932144,25.87240)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2354" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.356636,23.86870)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2356" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(11.19027,26.52035)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2358" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(10.30638,19.27251)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2360" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2362" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2364" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2366" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2368" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.207586,21.30544)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2372" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2398" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2426" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2428" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2430" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-1.608757,3.097272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2432" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2434" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2436" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2438" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2440" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2442" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2446" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2448" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2451" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2457" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2460" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2463" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2469" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2472" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2475" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2478" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2483" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(0.842481,-3.998086)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2506" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2509" - gradientUnits="userSpaceOnUse" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2513" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - x1="38.857941" - y1="-18.407482" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2517" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient2533" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2537" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(17.33814,3.415985)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2541" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2555" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.499805,1.708617)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2563" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.726830,2.481141)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3347" - id="linearGradient3353" - x1="23.303862" - y1="29.115711" - x2="29.750000" - y2="46.092930" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3366" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3368" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3372" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3374" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3376" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3378" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3380" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3383" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3386" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3389" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3392" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3395" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.674812,3.088370)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3398" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-2.033818,0.561720)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3401" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.197595,2.690414)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3405" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.561802,-4.303373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-4.4493785" - x2="-34.700153" - y1="-37.550461" - x1="-27.006643" - id="linearGradient2916" - xlink:href="#linearGradient2298" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient2914" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(57.97693,-10.56876)" - gradientUnits="userSpaceOnUse" - id="linearGradient2912" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)" - gradientUnits="userSpaceOnUse" - id="linearGradient2910" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient2908" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient2906" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient2904" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient2902" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient2900" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient2898" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient2896" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient2894" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)" - gradientUnits="userSpaceOnUse" - id="linearGradient2892" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)" - gradientUnits="userSpaceOnUse" - id="linearGradient2890" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(88.49344,-9.697877)" - gradientUnits="userSpaceOnUse" - id="linearGradient2888" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.561802,-4.303373)" - gradientUnits="userSpaceOnUse" - id="linearGradient2886" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient2884" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient2882" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient2880" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient2878" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient2876" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient2874" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient2872" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient2870" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2868" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient2866" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient2864" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2862" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2860" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2858" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient2856" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="46.092930" - x2="29.750000" - y1="29.115711" - x1="23.303862" - id="linearGradient2854" - xlink:href="#linearGradient3347" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.726830,2.481141)" - gradientUnits="userSpaceOnUse" - id="linearGradient2852" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.499805,1.708617)" - gradientUnits="userSpaceOnUse" - id="linearGradient2850" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient2848" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(17.33814,3.415985)" - gradientUnits="userSpaceOnUse" - id="linearGradient2846" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - id="linearGradient2844" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - gradientUnits="userSpaceOnUse" - id="linearGradient2842" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-18.407482" - x1="38.857941" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - gradientUnits="userSpaceOnUse" - id="linearGradient2840" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientUnits="userSpaceOnUse" - id="linearGradient2838" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - id="linearGradient2836" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(0.842481,-3.998086)" - gradientUnits="userSpaceOnUse" - id="linearGradient2834" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2832" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2830" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2828" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient2826" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient2824" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2822" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient2820" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - gradientUnits="userSpaceOnUse" - id="linearGradient2818" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - id="linearGradient2816" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient2814" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient2812" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2810" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient2808" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient2806" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient2804" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2802" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2800" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-1.608757,3.097272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2798" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient2796" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient2794" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - id="linearGradient2792" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - gradientUnits="userSpaceOnUse" - id="linearGradient2790" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.207586,21.30544)" - gradientUnits="userSpaceOnUse" - id="linearGradient2788" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - gradientUnits="userSpaceOnUse" - id="linearGradient2786" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - gradientUnits="userSpaceOnUse" - id="linearGradient2784" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - gradientUnits="userSpaceOnUse" - id="linearGradient2782" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - gradientUnits="userSpaceOnUse" - id="linearGradient2780" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - gradientUnits="userSpaceOnUse" - id="linearGradient2778" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(10.30638,19.27251)" - gradientUnits="userSpaceOnUse" - id="linearGradient2776" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(11.19027,26.52035)" - gradientUnits="userSpaceOnUse" - id="linearGradient2774" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(5.356636,23.86870)" - gradientUnits="userSpaceOnUse" - id="linearGradient2772" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.932144,25.87240)" - gradientUnits="userSpaceOnUse" - id="linearGradient2770" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(16.14002,24.66420)" - gradientUnits="userSpaceOnUse" - id="linearGradient2768" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient2766" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.707748,-5.784024)" - gradientUnits="userSpaceOnUse" - id="linearGradient2764" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient2762" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2760" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient2758" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient2756" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient2754" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient2752" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient2750" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2748" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2746" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="translate(-1.608757,3.097272)" - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientUnits="userSpaceOnUse" - id="linearGradient2744" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-4.4493785" - x2="-34.700153" - y1="-37.550461" - x1="-27.006643" - id="linearGradient2304" - xlink:href="#linearGradient2298" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient1557" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(57.97693,-10.56876)" - gradientUnits="userSpaceOnUse" - id="linearGradient1538" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)" - gradientUnits="userSpaceOnUse" - id="linearGradient1536" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient1534" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient1532" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient1530" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient1528" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient1526" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient1524" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient1522" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient1520" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)" - gradientUnits="userSpaceOnUse" - id="linearGradient1518" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)" - gradientUnits="userSpaceOnUse" - id="linearGradient1516" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(88.49344,-9.697877)" - gradientUnits="userSpaceOnUse" - id="linearGradient1514" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.561802,-4.303373)" - gradientUnits="userSpaceOnUse" - id="linearGradient5957" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient5955" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient5953" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient5951" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient5949" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient5947" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient5945" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient5943" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient5941" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5939" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient5937" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient5935" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5933" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5931" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient5929" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient5927" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="46.092930" - x2="29.750000" - y1="29.115711" - x1="23.303862" - id="linearGradient5925" - xlink:href="#linearGradient3347" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.726830,2.481141)" - gradientUnits="userSpaceOnUse" - id="linearGradient5923" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.499805,1.708617)" - gradientUnits="userSpaceOnUse" - id="linearGradient5921" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient5919" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(17.33814,3.415985)" - gradientUnits="userSpaceOnUse" - id="linearGradient5917" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - id="linearGradient5915" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - gradientUnits="userSpaceOnUse" - id="linearGradient5913" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-18.407482" - x1="38.857941" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - gradientUnits="userSpaceOnUse" - id="linearGradient5911" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientUnits="userSpaceOnUse" - id="linearGradient5909" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - id="linearGradient5907" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(0.842481,-3.998086)" - gradientUnits="userSpaceOnUse" - id="linearGradient5905" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient5903" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5901" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5899" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient5897" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient5895" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5893" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient5891" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - gradientUnits="userSpaceOnUse" - id="linearGradient5889" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - id="linearGradient5887" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient5885" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient5883" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5881" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient5879" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient5877" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient5875" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5873" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5871" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-1.608757,3.097272)" - gradientUnits="userSpaceOnUse" - id="linearGradient5869" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient5867" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient5865" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - id="linearGradient5863" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - gradientUnits="userSpaceOnUse" - id="linearGradient5861" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.207586,21.30544)" - gradientUnits="userSpaceOnUse" - id="linearGradient5859" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - gradientUnits="userSpaceOnUse" - id="linearGradient5857" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - gradientUnits="userSpaceOnUse" - id="linearGradient5855" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - gradientUnits="userSpaceOnUse" - id="linearGradient5853" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - gradientUnits="userSpaceOnUse" - id="linearGradient5851" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - gradientUnits="userSpaceOnUse" - id="linearGradient5849" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(10.30638,19.27251)" - gradientUnits="userSpaceOnUse" - id="linearGradient5847" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(11.19027,26.52035)" - gradientUnits="userSpaceOnUse" - id="linearGradient5845" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(5.356636,23.86870)" - gradientUnits="userSpaceOnUse" - id="linearGradient5843" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.932144,25.87240)" - gradientUnits="userSpaceOnUse" - id="linearGradient5841" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(16.14002,24.66420)" - gradientUnits="userSpaceOnUse" - id="linearGradient5839" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient5837" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.707748,-5.784024)" - gradientUnits="userSpaceOnUse" - id="linearGradient5835" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient5833" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5831" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient5829" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient5827" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient5825" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient5823" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient5821" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5819" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5817" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="translate(-1.608757,3.097272)" - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientUnits="userSpaceOnUse" - id="linearGradient5815" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6101" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6118" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6121" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6124" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(21.51400,12.80461)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6179" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.197595,2.690414)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6181" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-2.033818,0.561720)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6183" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.674812,3.088370)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6185" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6187" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6189" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6191" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient6193" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6196" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6199" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6202" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6205" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-4.372193,11.95105)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6208" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6211" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6214" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6242" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6244" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6246" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6248" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6250" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6252" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6254" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6257" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.297112,4.275205)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6263" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6266" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6269" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.79432,0.174884)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6272" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.085690,-2.351766)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6275" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2.921913,-0.223072)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6311" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(21.51400,12.80461)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6313" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6315" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6317" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6319" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6321" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6323" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6325" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6327" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6329" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6331" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6333" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6335" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2.921913,-0.223072)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6337" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.085690,-2.351766)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6339" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.79432,0.174884)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6341" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6343" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6543" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-2.763717e-17,0.972572,16.13182,0.843286)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6547" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,25.91493,0.633642)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6551" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,36.25638,0.633643)" - x1="27.320963" - y1="44.228481" - x2="45.115814" - y2="44.228455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6559" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-2.332577e-16,0.972572,16.13182,0.843286)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6561" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,25.91493,0.633642)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6563" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,36.25638,0.633643)" - x1="27.320963" - y1="44.228481" - x2="45.115814" - y2="44.228455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6566" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.577744,0.000000,-5.984325e-16,1.025105,38.38995,-1.768804)" - x1="27.320963" - y1="44.228481" - x2="45.115814" - y2="44.228455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6569" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.577744,0.000000,-5.984325e-16,1.025105,27.05193,-1.768805)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6572" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.589347,0.000000,-1.531909e-16,1.025217,16.34910,-1.110328)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6576" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.132431,0.000000,0.000000,1.016132,11.79178,-1.090051)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6579" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.853605,0.000000,0.000000,1.016132,20.48211,1.012885)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6582" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,14.73875,-4.143732)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6585" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,8.896962,-6.711142)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6588" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,3.612740,-4.548108)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6599" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.999079,0.000000,0.000000,1.016132,58.06881,13.00984)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6603" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-0.560999,-5.855873)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6606" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.314274,0.000000,0.000000,1.016132,13.30131,15.29879)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6609" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-10.35177,5.950245)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6612" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,22.63849,8.689740)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6618" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,17.34164,6.586930)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6622" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,12.56867,12.68572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6624" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6626" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6628" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6630" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6632" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6634" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6636" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4442" - id="linearGradient2736" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-59.00000,27.72122)" - x1="4.3602662" - y1="-21.904713" - x2="40.139732" - y2="-1.8452871" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2738" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.992899,-16.32980)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2740" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,4.534070,-12.70656)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2742" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,-1.200260,0.631990)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2745" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-4.033948,-17.90479)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2747" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-9.728831,-6.856090)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2749" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-14.02052,-13.29853)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2751" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,12.43523,-5.473742)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2753" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,7.747730,-6.786242)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient2755" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-60.91820,-2.915960)" - x1="17.181321" - y1="32.443652" - x2="47.342173" - y2="32.443652" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2757" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-3.681521,-53.82781)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2759" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2761" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2763" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2765" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.365819,-55.70818)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2767" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2769" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient2771" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-74.92090,-6.914630)" - x1="17.175579" - y1="23.374163" - x2="38.037014" - y2="38.680286" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2773" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-3.681521,-53.82781)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2775" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2777" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2779" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2781" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.365819,-55.70818)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2783" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2785" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient2799" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-11.91814,-7.649759)" - x1="17.175579" - y1="23.374163" - x2="38.037014" - y2="38.680286" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient2813" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,2.084560,-3.651089)" - x1="18.664751" - y1="23.374166" - x2="31.294144" - y2="35.845455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4442" - id="linearGradient2827" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.002760,26.98609)" - x1="4.3602662" - y1="-21.904713" - x2="40.139732" - y2="-1.8452871" /> </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="16" - inkscape:cx="11.996306" - inkscape:cy="38.014291" - inkscape:current-layer="layer1" - showgrid="true" - inkscape:grid-bbox="true" - inkscape:document-units="px" - inkscape:window-width="1200" - inkscape:window-height="704" - inkscape:window-x="134" - inkscape:window-y="133" - inkscape:showpageshadow="false" /> - <metadata - id="metadata1311"> + + <metadata id="metadata1311"> <rdf:RDF> - <cc:Work - rdf:about=""> + <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:title>weather-showers</dc:title> <dc:date>January 2006</dc:date> <dc:creator> @@ -4312,441 +98,81 @@ <rdf:li>notify</rdf:li> </rdf:Bag> </dc:subject> - <cc:license - rdf:resource="http://creativecommons.org/licenses/publicdomain/" /> + <cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/> </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/publicdomain/"> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Reproduction" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Distribution" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> + <cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/"> + <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/> + <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/> + <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/> </cc:License> </rdf:RDF> </metadata> - <g - id="layer1" - inkscape:label="Layer 1" - inkscape:groupmode="layer"> - <g - id="g11337" - transform="translate(-339.9823,245.0132)"> - <rect - transform="matrix(1.000000,0.000000,-0.600523,0.799607,0.000000,0.000000)" - ry="1.5179254" - rx="2.3596079" - y="-270.75461" - x="189.68199" - height="17.509083" - width="32.962067" - id="rect6086" - style="opacity:1.0000000;fill:#729fcf;fill-opacity:1.0000000;stroke:#3465a4;stroke-width:1.0817814;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <g - style="opacity:0.80000001" - transform="matrix(1.000000,0.000000,0.000000,0.999611,0.000000,-7.862650e-2)" - id="g10414"> - <path - style="fill:url(#linearGradient11344);fill-opacity:1.0000000;stroke:none;stroke-width:1.1547011;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 352.47790,-216.00000 L 359.39580,-216.00000 C 360.69054,-216.00000 361.33008,-215.50056 360.82979,-214.88017 L 352.15249,-204.12015 C 351.65217,-203.49974 350.20707,-203.00030 348.91233,-203.00030 L 344.86943,-203.00030 C 343.57469,-203.00030 342.30979,-202.95120 343.43545,-204.12015 C 343.43545,-204.12015 352.47790,-216.00000 352.47790,-216.00000 z " - id="rect6088" - sodipodi:nodetypes="cccccccc" /> - <path - style="fill:url(#linearGradient11346);fill-opacity:1.0000000;stroke:none;stroke-width:1.1547011;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 362.74641,-216.00000 L 369.42169,-216.00000 C 370.69552,-216.00000 371.32477,-215.50054 370.83253,-214.88014 L 362.29523,-204.11987 C 361.80299,-203.49946 360.38121,-203.00000 359.10738,-203.00000 L 353.00000,-203.00000 C 353.00000,-203.00000 362.74641,-216.00000 362.74641,-216.00000 z " - id="path6115" - sodipodi:nodetypes="ccccccc" /> - <path - style="fill:url(#linearGradient11348);fill-opacity:1.0000000;stroke:none;stroke-width:1.1547011;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 372.74640,-216.00000 L 379.42169,-216.00000 C 380.69553,-216.00000 381.32477,-215.50053 380.83253,-214.88014 L 372.29523,-204.11986 C 371.80299,-203.49945 370.38122,-203.00000 369.10738,-203.00000 L 363.00000,-203.00000 C 363.00000,-203.00000 372.74640,-216.00000 372.74640,-216.00000 z " - id="path6125" - sodipodi:nodetypes="ccccccc" /> + <g id="layer1"> + <g transform="translate(-339.9823,245.0132)"> + <rect transform="matrix(1.000000,0.000000,-0.600523,0.799607,0.000000,0.000000)" ry="1.5179254" rx="2.3596079" y="-270.75461" x="189.68199" height="17.509083" width="32.962067" opacity="1.0000000" fill="#729fcf" fill-opacity="1.0000000" stroke="#3465a4" stroke-width="1.0817814" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g transform="matrix(1.000000,0.000000,0.000000,0.999611,0.000000,-7.862650e-2)" opacity="0.80000001"> + <path d="M 352.47790,-216.00000 L 359.39580,-216.00000 C 360.69054,-216.00000 361.33008,-215.50056 360.82979,-214.88017 L 352.15249,-204.12015 C 351.65217,-203.49974 350.20707,-203.00030 348.91233,-203.00030 L 344.86943,-203.00030 C 343.57469,-203.00030 342.30979,-202.95120 343.43545,-204.12015 C 343.43545,-204.12015 352.47790,-216.00000 352.47790,-216.00000 z " fill="url(#linearGradient11344)" fill-opacity="1.0000000" stroke="none" stroke-width="1.1547011" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 362.74641,-216.00000 L 369.42169,-216.00000 C 370.69552,-216.00000 371.32477,-215.50054 370.83253,-214.88014 L 362.29523,-204.11987 C 361.80299,-203.49946 360.38121,-203.00000 359.10738,-203.00000 L 353.00000,-203.00000 C 353.00000,-203.00000 362.74641,-216.00000 362.74641,-216.00000 z " fill="url(#linearGradient11346)" fill-opacity="1.0000000" stroke="none" stroke-width="1.1547011" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 372.74640,-216.00000 L 379.42169,-216.00000 C 380.69553,-216.00000 381.32477,-215.50053 380.83253,-214.88014 L 372.29523,-204.11986 C 371.80299,-203.49945 370.38122,-203.00000 369.10738,-203.00000 L 363.00000,-203.00000 C 363.00000,-203.00000 372.74640,-216.00000 372.74640,-216.00000 z " fill="url(#linearGradient11348)" fill-opacity="1.0000000" stroke="none" stroke-width="1.1547011" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> - <g - id="g13213" - transform="matrix(0.999675,0.000000,0.000000,1.000000,-286.8562,245.0000)"> - <g - id="g13215"> - <path - style="opacity:1.0000000;fill:#555753;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z " - id="path13217" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient13315);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z " - id="path13219" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13221" - sodipodi:cx="241.80843" - sodipodi:cy="-383.66660" - sodipodi:rx="6.7396116" - sodipodi:ry="6.7396116" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)" /> - <g - id="g13223"> - <path - transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" - d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" - sodipodi:ry="6.2313786" - sodipodi:rx="6.2313786" - sodipodi:cy="-389.30136" - sodipodi:cx="243.95184" - id="path13225" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" - d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" - sodipodi:ry="6.2313786" - sodipodi:rx="6.2313786" - sodipodi:cy="-389.30136" - sodipodi:cx="243.95184" - id="path13227" - style="opacity:0.49444440;fill:url(#linearGradient13317);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g transform="matrix(0.999675,0.000000,0.000000,1.000000,-286.8562,245.0000)"> + <g> + <path d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z " opacity="1.0000000" fill="#555753" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z " opacity="1.0000000" fill="url(#linearGradient13315)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" opacity="0.49444440" fill="url(#linearGradient13317)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g13229"> - <path - transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" - d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" - sodipodi:ry="6.0325046" - sodipodi:rx="6.0325046" - sodipodi:cy="-385.78790" - sodipodi:cx="251.22179" - id="path13231" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" - d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" - sodipodi:ry="6.0325046" - sodipodi:rx="6.0325046" - sodipodi:cy="-385.78790" - sodipodi:cx="251.22179" - id="path13233" - style="opacity:0.49444440;fill:url(#linearGradient13319);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g> + <path transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" opacity="0.49444440" fill="url(#linearGradient13319)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g13235"> - <path - transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" - d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" - sodipodi:ry="4.3752232" - sodipodi:rx="4.3752232" - sodipodi:cy="-387.88715" - sodipodi:cx="233.43362" - id="path13237" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" - d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" - sodipodi:ry="4.3752232" - sodipodi:rx="4.3752232" - sodipodi:cy="-387.88715" - sodipodi:cx="233.43362" - id="path13239" - style="opacity:0.49444440;fill:url(#linearGradient13321);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g> + <path transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" opacity="0.49444440" fill="url(#linearGradient13321)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g13241"> - <path - transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - sodipodi:ry="6.7396116" - sodipodi:rx="6.7396116" - sodipodi:cy="-383.66660" - sodipodi:cx="241.80843" - id="path13243" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - sodipodi:ry="6.7396116" - sodipodi:rx="6.7396116" - sodipodi:cy="-383.66660" - sodipodi:cx="241.80843" - id="path13245" - style="opacity:0.49444440;fill:url(#linearGradient13323);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g> + <path transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)" d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)" d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" opacity="0.49444440" fill="url(#linearGradient13323)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> - <g - transform="translate(72.00007,7.999930)" - id="g13247"> - <path - style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0001625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " - id="path13249" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient13325);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " - id="path13251" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13253" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13327);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13255" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" /> - <rect - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="rect13257" - width="20.000000" - height="9.0000000" - x="236.99994" - y="-230.99992" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13259" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13261" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13329);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13263" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13265" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13331);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13267" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" /> - <path - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " - id="path13269" /> - <path - style="opacity:0.47777775;fill:url(#linearGradient13333);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " - id="path13271" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13335);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13273" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" /> - <path - style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" - d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " - id="path13275" - sodipodi:nodetypes="ccss" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13277" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13337);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13279" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" /> + <g transform="translate(72.00007,7.999930)"> + <path d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " fill="#888a85" fill-opacity="1.0000000" stroke="#555753" stroke-width="1.0001625" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " opacity="1.0000000" fill="url(#linearGradient13325)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" opacity="0.47777775" fill="url(#linearGradient13327)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <rect width="20.000000" height="9.0000000" x="236.99994" y="-230.99992" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" opacity="0.47777775" fill="url(#linearGradient13329)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" opacity="0.47777775" fill="url(#linearGradient13331)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " opacity="0.47777775" fill="url(#linearGradient13333)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" opacity="0.47777775" fill="url(#linearGradient13335)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " fill="#555753" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" opacity="0.47777775" fill="url(#linearGradient13337)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(56.98577,3.983930)" - id="g13281"> - <path - style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0001625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " - id="path13283" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient13339);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " - id="path13285" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13287" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13341);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13289" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" /> - <rect - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="rect13291" - width="20.000000" - height="9.0000000" - x="236.99994" - y="-230.99992" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13293" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13295" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13343);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13297" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13299" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13345);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13301" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" /> - <path - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " - id="path13303" /> - <path - style="opacity:0.47777775;fill:url(#linearGradient13347);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " - id="path13305" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13350);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13307" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" /> - <path - style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" - d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " - id="path13309" - sodipodi:nodetypes="ccss" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13311" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13352);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13313" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" /> + <g transform="translate(56.98577,3.983930)"> + <path d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " fill="#888a85" fill-opacity="1.0000000" stroke="#555753" stroke-width="1.0001625" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " opacity="1.0000000" fill="url(#linearGradient13339)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" opacity="0.47777775" fill="url(#linearGradient13341)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <rect width="20.000000" height="9.0000000" x="236.99994" y="-230.99992" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" opacity="0.47777775" fill="url(#linearGradient13343)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" opacity="0.47777775" fill="url(#linearGradient13345)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " opacity="0.47777775" fill="url(#linearGradient13347)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" opacity="0.47777775" fill="url(#linearGradient13350)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " fill="#555753" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" opacity="0.47777775" fill="url(#linearGradient13352)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> </g> diff --git a/demos/embedded/weatherinfo/icons/weather-sleet.svg b/demos/embedded/weatherinfo/icons/weather-sleet.svg index f1cb9eb..bf2306f 100644 --- a/demos/embedded/weatherinfo/icons/weather-sleet.svg +++ b/demos/embedded/weatherinfo/icons/weather-sleet.svg @@ -1,4573 +1,96 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="48px" - height="48px" - id="svg1306" - sodipodi:version="0.32" - inkscape:version="0.46" - sodipodi:docbase="/home/rcollier/Work/Novell/Tango/weather" - sodipodi:docname="weather-sleet.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs1308"> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient12213" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient12211" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient12201" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient12199" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient12253" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient12251" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient12237" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient12235" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient12225" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient12223" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - id="linearGradient5358"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop5360" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop5362" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient12249" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <linearGradient - inkscape:collect="always" - id="linearGradient5346"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop5348" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop5350" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient12247" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 24 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="48 : 24 : 1" - inkscape:persp3d-origin="24 : 16 : 1" - id="perspective6329" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient11348" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.070878,0.000000,-0.535439,0.674858,287.5142,77.50802)" - x1="-137.49608" - y1="-425.28664" - x2="-130.60854" - y2="-425.28665" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient11346" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.070879,0.000000,-0.535439,0.674857,277.5140,77.50780)" - x1="-137.49608" - y1="-425.28664" - x2="-130.60854" - y2="-425.28665" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient11344" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.088439,0.000000,-0.544220,0.674842,265.9811,77.50139)" - x1="-137.49608" - y1="-425.28664" - x2="-130.60854" - y2="-425.28665" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13352" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient13350" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient13347" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-35.00007,207.0001)" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13345" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient13343" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient13341" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient13339" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-34.00007,207.0001)" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13337" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6549"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6551" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6553" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient13335" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6527"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6530" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6532" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient13333" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-35.00007,207.0001)" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6538"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6540" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6542" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13331" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6513"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6515" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6517" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient13329" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6497"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6499" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6501" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient13327" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6470"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6472" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6474" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient13325" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-34.00007,207.0001)" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8397"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8400" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8402" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8397" - id="linearGradient13323" - gradientUnits="userSpaceOnUse" - x1="238.00478" - y1="-388.47476" - x2="245.65462" - y2="-382.64539" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8315"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8317" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8319" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8315" - id="linearGradient13321" - gradientUnits="userSpaceOnUse" - x1="230.87598" - y1="-390.43951" - x2="235.25652" - y2="-386.95901" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8381"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8383" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8385" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8381" - id="linearGradient13319" - gradientUnits="userSpaceOnUse" - x1="246.74042" - y1="-391.31381" - x2="252.69785" - y2="-385.35165" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8331"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8333" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8335" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8331" - id="linearGradient13317" - gradientUnits="userSpaceOnUse" - x1="240.07379" - y1="-393.40720" - x2="245.82706" - y2="-388.55029" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8302"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8304" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8306" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8302" - id="linearGradient13315" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(69.00000,155.0000)" - x1="228.50261" - y1="-392.30591" - x2="266.36395" - y2="-379.26862" /> - <linearGradient - inkscape:collect="always" - id="linearGradient4442"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop4444" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop4446" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4442" - id="linearGradient4467" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-59.00000,27.72122)" - x1="4.3602662" - y1="-21.904713" - x2="40.139732" - y2="-1.8452871" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4430" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,7.747730,-6.786242)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4426" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,12.43523,-5.473742)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4404" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-14.02052,-13.29853)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4407" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-9.728831,-6.856090)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4410" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-4.033948,-17.90479)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4413" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,-1.200260,0.631990)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4419" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,4.534070,-12.70656)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4422" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.992899,-16.32980)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient4479" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-60.91820,-2.915960)" - x1="17.181321" - y1="32.443652" - x2="47.342173" - y2="32.443652" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4359" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4357" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4355" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.365819,-55.70818)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4353" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4351" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4349" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4347" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-3.681521,-53.82781)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - id="linearGradient4488"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop4490" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop4492" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient4370" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-74.92090,-6.914630)" - x1="17.175579" - y1="23.374163" - x2="38.037014" - y2="38.680286" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4255" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4253" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4251" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.365819,-55.70818)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4249" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4247" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4245" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - id="linearGradient3019"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop3021" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop3023" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient4243" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-3.681521,-53.82781)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - id="linearGradient6525" - gradientUnits="userSpaceOnUse" - x1="4.1914001" - y1="11.113300" - x2="47.319698" - y2="56.052299"> - <stop - offset="0" - style="stop-color:#ffffff;stop-opacity:1;" - id="stop6529" /> - <stop - offset="1" - style="stop-color:#ffffff;stop-opacity:0.34020618;" - id="stop6531" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6525" - id="linearGradient5250" - x1="8.5469341" - y1="30.281681" - x2="30.85088" - y2="48.301884" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.874977,0.000000,0.000000,0.921480,-56.65990,-1.553540)" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6537"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6539" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6541" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2298"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2300" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2302" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient3347"> - <stop - style="stop-color:#edd400;stop-opacity:1;" - offset="0" - id="stop3349" /> - <stop - style="stop-color:#edd400;stop-opacity:0;" - offset="1" - id="stop3351" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2527"> - <stop - style="stop-color:#fcaf3e;stop-opacity:1;" - offset="0" - id="stop2529" /> - <stop - style="stop-color:#fcaf3e;stop-opacity:0;" - offset="1" - id="stop2531" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2500"> - <stop - style="stop-color:#fce94f;stop-opacity:1;" - offset="0" - id="stop2502" /> - <stop - style="stop-color:#fce94f;stop-opacity:0;" - offset="1" - id="stop2504" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2392"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop2394" /> - <stop - style="stop-color:#eeeeec;stop-opacity:0;" - offset="1" - id="stop2396" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2254"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2256" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2258" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2263" - gradientUnits="userSpaceOnUse" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" - gradientTransform="translate(-1.608757,3.097272)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2267" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2271" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2275" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2279" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2283" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2287" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2291" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2295" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2299" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2303" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.707748,-5.784024)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2311" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2350" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(16.14002,24.66420)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2352" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.932144,25.87240)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2354" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.356636,23.86870)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2356" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(11.19027,26.52035)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2358" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(10.30638,19.27251)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2360" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2362" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2364" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2366" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2368" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.207586,21.30544)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2372" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2398" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2426" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2428" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2430" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-1.608757,3.097272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2432" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2434" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2436" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2438" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2440" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2442" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2446" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2448" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2451" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2457" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2460" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2463" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2469" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2472" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2475" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2478" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2483" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(0.842481,-3.998086)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2506" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2509" - gradientUnits="userSpaceOnUse" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2513" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - x1="38.857941" - y1="-18.407482" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2517" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient2533" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2537" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(17.33814,3.415985)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2541" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2555" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.499805,1.708617)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2563" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.726830,2.481141)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3347" - id="linearGradient3353" - x1="23.303862" - y1="29.115711" - x2="29.750000" - y2="46.092930" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3366" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3368" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3372" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3374" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3376" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3378" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3380" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3383" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3386" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3389" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3392" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3395" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.674812,3.088370)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3398" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-2.033818,0.561720)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3401" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.197595,2.690414)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3405" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.561802,-4.303373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-4.4493785" - x2="-34.700153" - y1="-37.550461" - x1="-27.006643" - id="linearGradient2916" - xlink:href="#linearGradient2298" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient2914" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(57.97693,-10.56876)" - gradientUnits="userSpaceOnUse" - id="linearGradient2912" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)" - gradientUnits="userSpaceOnUse" - id="linearGradient2910" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient2908" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient2906" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient2904" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient2902" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient2900" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient2898" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient2896" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient2894" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)" - gradientUnits="userSpaceOnUse" - id="linearGradient2892" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)" - gradientUnits="userSpaceOnUse" - id="linearGradient2890" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(88.49344,-9.697877)" - gradientUnits="userSpaceOnUse" - id="linearGradient2888" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.561802,-4.303373)" - gradientUnits="userSpaceOnUse" - id="linearGradient2886" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient2884" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient2882" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient2880" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient2878" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient2876" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient2874" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient2872" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient2870" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2868" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient2866" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient2864" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2862" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2860" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2858" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient2856" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="46.092930" - x2="29.750000" - y1="29.115711" - x1="23.303862" - id="linearGradient2854" - xlink:href="#linearGradient3347" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.726830,2.481141)" - gradientUnits="userSpaceOnUse" - id="linearGradient2852" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.499805,1.708617)" - gradientUnits="userSpaceOnUse" - id="linearGradient2850" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient2848" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(17.33814,3.415985)" - gradientUnits="userSpaceOnUse" - id="linearGradient2846" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - id="linearGradient2844" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - gradientUnits="userSpaceOnUse" - id="linearGradient2842" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-18.407482" - x1="38.857941" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - gradientUnits="userSpaceOnUse" - id="linearGradient2840" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientUnits="userSpaceOnUse" - id="linearGradient2838" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - id="linearGradient2836" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(0.842481,-3.998086)" - gradientUnits="userSpaceOnUse" - id="linearGradient2834" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2832" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2830" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2828" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient2826" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient2824" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2822" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient2820" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - gradientUnits="userSpaceOnUse" - id="linearGradient2818" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - id="linearGradient2816" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient2814" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient2812" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2810" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient2808" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient2806" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient2804" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2802" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2800" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-1.608757,3.097272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2798" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient2796" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient2794" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - id="linearGradient2792" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - gradientUnits="userSpaceOnUse" - id="linearGradient2790" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.207586,21.30544)" - gradientUnits="userSpaceOnUse" - id="linearGradient2788" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - gradientUnits="userSpaceOnUse" - id="linearGradient2786" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - gradientUnits="userSpaceOnUse" - id="linearGradient2784" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - gradientUnits="userSpaceOnUse" - id="linearGradient2782" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - gradientUnits="userSpaceOnUse" - id="linearGradient2780" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - gradientUnits="userSpaceOnUse" - id="linearGradient2778" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(10.30638,19.27251)" - gradientUnits="userSpaceOnUse" - id="linearGradient2776" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(11.19027,26.52035)" - gradientUnits="userSpaceOnUse" - id="linearGradient2774" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(5.356636,23.86870)" - gradientUnits="userSpaceOnUse" - id="linearGradient2772" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.932144,25.87240)" - gradientUnits="userSpaceOnUse" - id="linearGradient2770" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(16.14002,24.66420)" - gradientUnits="userSpaceOnUse" - id="linearGradient2768" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient2766" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.707748,-5.784024)" - gradientUnits="userSpaceOnUse" - id="linearGradient2764" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient2762" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2760" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient2758" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient2756" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient2754" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient2752" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient2750" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2748" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2746" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="translate(-1.608757,3.097272)" - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientUnits="userSpaceOnUse" - id="linearGradient2744" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-4.4493785" - x2="-34.700153" - y1="-37.550461" - x1="-27.006643" - id="linearGradient2304" - xlink:href="#linearGradient2298" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient1557" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(57.97693,-10.56876)" - gradientUnits="userSpaceOnUse" - id="linearGradient1538" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)" - gradientUnits="userSpaceOnUse" - id="linearGradient1536" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient1534" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient1532" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient1530" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient1528" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient1526" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient1524" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient1522" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient1520" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)" - gradientUnits="userSpaceOnUse" - id="linearGradient1518" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)" - gradientUnits="userSpaceOnUse" - id="linearGradient1516" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(88.49344,-9.697877)" - gradientUnits="userSpaceOnUse" - id="linearGradient1514" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.561802,-4.303373)" - gradientUnits="userSpaceOnUse" - id="linearGradient5957" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient5955" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient5953" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient5951" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient5949" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient5947" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient5945" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient5943" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient5941" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5939" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient5937" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient5935" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5933" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5931" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient5929" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient5927" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="46.092930" - x2="29.750000" - y1="29.115711" - x1="23.303862" - id="linearGradient5925" - xlink:href="#linearGradient3347" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.726830,2.481141)" - gradientUnits="userSpaceOnUse" - id="linearGradient5923" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.499805,1.708617)" - gradientUnits="userSpaceOnUse" - id="linearGradient5921" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient5919" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(17.33814,3.415985)" - gradientUnits="userSpaceOnUse" - id="linearGradient5917" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - id="linearGradient5915" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - gradientUnits="userSpaceOnUse" - id="linearGradient5913" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-18.407482" - x1="38.857941" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - gradientUnits="userSpaceOnUse" - id="linearGradient5911" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientUnits="userSpaceOnUse" - id="linearGradient5909" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - id="linearGradient5907" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(0.842481,-3.998086)" - gradientUnits="userSpaceOnUse" - id="linearGradient5905" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient5903" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5901" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5899" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient5897" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient5895" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5893" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient5891" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - gradientUnits="userSpaceOnUse" - id="linearGradient5889" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - id="linearGradient5887" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient5885" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient5883" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5881" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient5879" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient5877" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient5875" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5873" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5871" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-1.608757,3.097272)" - gradientUnits="userSpaceOnUse" - id="linearGradient5869" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient5867" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient5865" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - id="linearGradient5863" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - gradientUnits="userSpaceOnUse" - id="linearGradient5861" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.207586,21.30544)" - gradientUnits="userSpaceOnUse" - id="linearGradient5859" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - gradientUnits="userSpaceOnUse" - id="linearGradient5857" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - gradientUnits="userSpaceOnUse" - id="linearGradient5855" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - gradientUnits="userSpaceOnUse" - id="linearGradient5853" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - gradientUnits="userSpaceOnUse" - id="linearGradient5851" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - gradientUnits="userSpaceOnUse" - id="linearGradient5849" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(10.30638,19.27251)" - gradientUnits="userSpaceOnUse" - id="linearGradient5847" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(11.19027,26.52035)" - gradientUnits="userSpaceOnUse" - id="linearGradient5845" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(5.356636,23.86870)" - gradientUnits="userSpaceOnUse" - id="linearGradient5843" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.932144,25.87240)" - gradientUnits="userSpaceOnUse" - id="linearGradient5841" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(16.14002,24.66420)" - gradientUnits="userSpaceOnUse" - id="linearGradient5839" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient5837" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.707748,-5.784024)" - gradientUnits="userSpaceOnUse" - id="linearGradient5835" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient5833" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5831" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient5829" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient5827" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient5825" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient5823" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient5821" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5819" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5817" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="translate(-1.608757,3.097272)" - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientUnits="userSpaceOnUse" - id="linearGradient5815" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6101" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6118" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6121" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6124" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(21.51400,12.80461)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6179" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.197595,2.690414)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6181" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-2.033818,0.561720)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6183" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.674812,3.088370)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6185" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6187" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6189" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6191" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient6193" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6196" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6199" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6202" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6205" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-4.372193,11.95105)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6208" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6211" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6214" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6242" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6244" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6246" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6248" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6250" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6252" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6254" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6257" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.297112,4.275205)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6263" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6266" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6269" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.79432,0.174884)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6272" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.085690,-2.351766)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6275" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2.921913,-0.223072)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6311" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(21.51400,12.80461)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6313" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6315" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6317" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6319" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6321" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6323" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6325" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6327" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6329" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6331" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6333" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6335" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2.921913,-0.223072)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6337" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.085690,-2.351766)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6339" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.79432,0.174884)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6341" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6343" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6543" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-2.763717e-17,0.972572,16.13182,0.843286)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6547" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,25.91493,0.633642)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6551" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,36.25638,0.633643)" - x1="27.320963" - y1="44.228481" - x2="45.115814" - y2="44.228455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6559" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-2.332577e-16,0.972572,16.13182,0.843286)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6561" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,25.91493,0.633642)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6563" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,36.25638,0.633643)" - x1="27.320963" - y1="44.228481" - x2="45.115814" - y2="44.228455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6566" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.577744,0.000000,-5.984325e-16,1.025105,38.38995,-1.768804)" - x1="27.320963" - y1="44.228481" - x2="45.115814" - y2="44.228455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6569" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.577744,0.000000,-5.984325e-16,1.025105,27.05193,-1.768805)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6572" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.589347,0.000000,-1.531909e-16,1.025217,16.34910,-1.110328)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6576" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.132431,0.000000,0.000000,1.016132,11.79178,-1.090051)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6579" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.853605,0.000000,0.000000,1.016132,20.48211,1.012885)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6582" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,14.73875,-4.143732)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6585" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,8.896962,-6.711142)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6588" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,3.612740,-4.548108)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6599" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.999079,0.000000,0.000000,1.016132,58.06881,13.00984)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6603" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-0.560999,-5.855873)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6606" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.314274,0.000000,0.000000,1.016132,13.30131,15.29879)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6609" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-10.35177,5.950245)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6612" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,22.63849,8.689740)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6618" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,17.34164,6.586930)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6622" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,12.56867,12.68572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6624" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6626" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6628" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6630" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6632" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6634" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6636" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4442" - id="linearGradient2736" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-59.00000,27.72122)" - x1="4.3602662" - y1="-21.904713" - x2="40.139732" - y2="-1.8452871" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2738" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.992899,-16.32980)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2740" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,4.534070,-12.70656)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2742" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,-1.200260,0.631990)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2745" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-4.033948,-17.90479)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2747" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-9.728831,-6.856090)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2749" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-14.02052,-13.29853)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2751" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,12.43523,-5.473742)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2753" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,7.747730,-6.786242)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient2755" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-60.91820,-2.915960)" - x1="17.181321" - y1="32.443652" - x2="47.342173" - y2="32.443652" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2757" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-3.681521,-53.82781)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2759" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2761" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2763" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2765" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.365819,-55.70818)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2767" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2769" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient2771" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-74.92090,-6.914630)" - x1="17.175579" - y1="23.374163" - x2="38.037014" - y2="38.680286" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2773" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-3.681521,-53.82781)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2775" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,12.81910,-50.04120)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2777" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.888889,0.000000,0.000000,0.888889,15.17579,-44.92562)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2779" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.613903,0.000000,0.000000,0.613903,17.14727,-36.85890)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2781" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.365819,-55.70818)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2783" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.813402,0.000000,0.000000,0.813402,-0.912551,-43.37823)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3019" - id="linearGradient2785" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.333333,0.000000,0.000000,1.000000,-7.329241,-50.85192)" - x1="23.688078" - y1="28.201012" - x2="29.521708" - y2="34.034641" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient2799" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,-11.91814,-7.649759)" - x1="17.175579" - y1="23.374163" - x2="38.037014" - y2="38.680286" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4488" - id="linearGradient2813" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.926905,0.000000,0.000000,0.881886,2.084560,-3.651089)" - x1="18.664751" - y1="23.374166" - x2="31.294144" - y2="35.845455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4442" - id="linearGradient2827" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.002760,26.98609)" - x1="4.3602662" - y1="-21.904713" - x2="40.139732" - y2="-1.8452871" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient8290" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient8292" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient8294" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient8296" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient8298" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient8300" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient8302" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient8304" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient8306" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient8308" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient8310" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient8312" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> +<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" width="48px" height="48px" id="svg1306"> + <defs id="defs1308"> + <linearGradient id="linearGradient5358"> + <stop offset="0" id="stop5360" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop5362" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient id="linearGradient5346"> + <stop offset="0" id="stop5348" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop5350" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13352" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient13350" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient13347" gradientUnits="userSpaceOnUse" gradientTransform="translate(-35.00007,207.0001)" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13345" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient13343" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient13341" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient13339" gradientUnits="userSpaceOnUse" gradientTransform="translate(-34.00007,207.0001)" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13337" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient id="linearGradient6549"> + <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient13335" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient id="linearGradient6527"> + <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient13333" gradientUnits="userSpaceOnUse" gradientTransform="translate(-35.00007,207.0001)" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient id="linearGradient6538"> + <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13331" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient id="linearGradient6513"> + <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient13329" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient id="linearGradient6497"> + <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient13327" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient id="linearGradient6470"> + <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient13325" gradientUnits="userSpaceOnUse" gradientTransform="translate(-34.00007,207.0001)" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient id="linearGradient8397"> + <stop offset="0" id="stop8400" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8402" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8397" id="linearGradient13323" gradientUnits="userSpaceOnUse" x1="238.00478" y1="-388.47476" x2="245.65462" y2="-382.64539"/> + <linearGradient id="linearGradient8315"> + <stop offset="0" id="stop8317" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8319" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8315" id="linearGradient13321" gradientUnits="userSpaceOnUse" x1="230.87598" y1="-390.43951" x2="235.25652" y2="-386.95901"/> + <linearGradient id="linearGradient8381"> + <stop offset="0" id="stop8383" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8385" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8381" id="linearGradient13319" gradientUnits="userSpaceOnUse" x1="246.74042" y1="-391.31381" x2="252.69785" y2="-385.35165"/> + <linearGradient id="linearGradient8331"> + <stop offset="0" id="stop8333" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8335" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8331" id="linearGradient13317" gradientUnits="userSpaceOnUse" x1="240.07379" y1="-393.40720" x2="245.82706" y2="-388.55029"/> + <linearGradient id="linearGradient8302"> + <stop offset="0" id="stop8304" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8306" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8302" id="linearGradient13315" gradientUnits="userSpaceOnUse" gradientTransform="translate(69.00000,155.0000)" x1="228.50261" y1="-392.30591" x2="266.36395" y2="-379.26862"/> + <radialGradient xlink:href="#linearGradient5346" id="radialGradient8290" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/> + <linearGradient xlink:href="#linearGradient5358" id="linearGradient8292" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/> + <radialGradient xlink:href="#linearGradient5346" id="radialGradient8294" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/> + <linearGradient xlink:href="#linearGradient5358" id="linearGradient8296" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/> + <radialGradient xlink:href="#linearGradient5346" id="radialGradient8298" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/> + <linearGradient xlink:href="#linearGradient5358" id="linearGradient8300" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/> + <radialGradient xlink:href="#linearGradient5346" id="radialGradient8302" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/> + <linearGradient xlink:href="#linearGradient5358" id="linearGradient8304" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/> + <radialGradient xlink:href="#linearGradient5346" id="radialGradient8306" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/> + <linearGradient xlink:href="#linearGradient5358" id="linearGradient8308" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/> + <radialGradient xlink:href="#linearGradient5346" id="radialGradient8310" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/> + <linearGradient xlink:href="#linearGradient5358" id="linearGradient8312" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/> </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1" - inkscape:cx="24" - inkscape:cy="24" - inkscape:current-layer="layer1" - showgrid="true" - inkscape:grid-bbox="true" - inkscape:document-units="px" - inkscape:window-width="982" - inkscape:window-height="965" - inkscape:window-x="1280" - inkscape:window-y="28" - inkscape:showpageshadow="false" /> - <metadata - id="metadata1311"> + + <metadata id="metadata1311"> <rdf:RDF> - <cc:Work - rdf:about=""> + <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:title>weather-showers</dc:title> <dc:date>January 2006</dc:date> <dc:creator> @@ -4588,608 +111,119 @@ <rdf:li>notify</rdf:li> </rdf:Bag> </dc:subject> - <cc:license - rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" /> + <cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/"/> </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/by-sa/2.0/"> - <cc:permits - rdf:resource="http://web.resource.org/cc/Reproduction" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/Distribution" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/Notice" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/Attribution" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/ShareAlike" /> + <cc:License rdf:about="http://creativecommons.org/licenses/by-sa/2.0/"> + <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/> + <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/> + <cc:requires rdf:resource="http://web.resource.org/cc/Notice"/> + <cc:requires rdf:resource="http://web.resource.org/cc/Attribution"/> + <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/> + <cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike"/> </cc:License> </rdf:RDF> </metadata> - <g - id="layer1" - inkscape:label="Layer 1" - inkscape:groupmode="layer"> - <g - id="g10087"> - <g - transform="matrix(0.999675,0.000000,0.000000,1.000000,-286.8562,245.0000)" - id="g13213"> - <g - id="g13215"> - <path - id="path13217" - d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z " - style="opacity:1.0000000;fill:#555753;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - id="path13219" - d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z " - style="opacity:1.0000000;fill:url(#linearGradient13315);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - sodipodi:ry="6.7396116" - sodipodi:rx="6.7396116" - sodipodi:cy="-383.66660" - sodipodi:cx="241.80843" - id="path13221" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <g - id="g13223"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13225" - sodipodi:cx="243.95184" - sodipodi:cy="-389.30136" - sodipodi:rx="6.2313786" - sodipodi:ry="6.2313786" - d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" - transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" /> - <path - sodipodi:type="arc" - style="opacity:0.49444440;fill:url(#linearGradient13317);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13227" - sodipodi:cx="243.95184" - sodipodi:cy="-389.30136" - sodipodi:rx="6.2313786" - sodipodi:ry="6.2313786" - d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" - transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" /> + <g id="layer1"> + <g> + <g transform="matrix(0.999675,0.000000,0.000000,1.000000,-286.8562,245.0000)"> + <g> + <path d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z " opacity="1.0000000" fill="#555753" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z " opacity="1.0000000" fill="url(#linearGradient13315)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)" d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" opacity="0.49444440" fill="url(#linearGradient13317)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g13229"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13231" - sodipodi:cx="251.22179" - sodipodi:cy="-385.78790" - sodipodi:rx="6.0325046" - sodipodi:ry="6.0325046" - d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" - transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" /> - <path - sodipodi:type="arc" - style="opacity:0.49444440;fill:url(#linearGradient13319);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13233" - sodipodi:cx="251.22179" - sodipodi:cy="-385.78790" - sodipodi:rx="6.0325046" - sodipodi:ry="6.0325046" - d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" - transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" /> + <g> + <path d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" opacity="0.49444440" fill="url(#linearGradient13319)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g13235"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13237" - sodipodi:cx="233.43362" - sodipodi:cy="-387.88715" - sodipodi:rx="4.3752232" - sodipodi:ry="4.3752232" - d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" - transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" /> - <path - sodipodi:type="arc" - style="opacity:0.49444440;fill:url(#linearGradient13321);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13239" - sodipodi:cx="233.43362" - sodipodi:cy="-387.88715" - sodipodi:rx="4.3752232" - sodipodi:ry="4.3752232" - d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" - transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" /> + <g> + <path d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" opacity="0.49444440" fill="url(#linearGradient13321)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g13241"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13243" - sodipodi:cx="241.80843" - sodipodi:cy="-383.66660" - sodipodi:rx="6.7396116" - sodipodi:ry="6.7396116" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)" /> - <path - sodipodi:type="arc" - style="opacity:0.49444440;fill:url(#linearGradient13323);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path13245" - sodipodi:cx="241.80843" - sodipodi:cy="-383.66660" - sodipodi:rx="6.7396116" - sodipodi:ry="6.7396116" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)" /> + <g> + <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)" opacity="0.49444440" fill="url(#linearGradient13323)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> - <g - id="g13247" - transform="translate(72.00007,7.999930)"> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path13249" - d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " - style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0001625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path13251" - d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " - style="opacity:1.0000000;fill:url(#linearGradient13325);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13253" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13255" - style="opacity:0.47777775;fill:url(#linearGradient13327);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <rect - y="-230.99992" - x="236.99994" - height="9.0000000" - width="20.000000" - id="rect13257" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13259" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13261" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13263" - style="opacity:0.47777775;fill:url(#linearGradient13329);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13265" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13267" - style="opacity:0.47777775;fill:url(#linearGradient13331);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - id="path13269" - d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - id="path13271" - d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " - style="opacity:0.47777775;fill:url(#linearGradient13333);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13273" - style="opacity:0.47777775;fill:url(#linearGradient13335);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - sodipodi:nodetypes="ccss" - id="path13275" - d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " - style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" /> - <path - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13277" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13279" - style="opacity:0.47777775;fill:url(#linearGradient13337);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g transform="translate(72.00007,7.999930)"> + <path d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " fill="#888a85" fill-opacity="1.0000000" stroke="#555753" stroke-width="1.0001625" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " opacity="1.0000000" fill="url(#linearGradient13325)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13327)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <rect y="-230.99992" x="236.99994" height="9.0000000" width="20.000000" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13329)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13331)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " opacity="0.47777775" fill="url(#linearGradient13333)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13335)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " fill="#555753" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <path transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13337)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g13281" - transform="translate(56.98577,3.983930)"> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path13283" - d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " - style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0001625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path13285" - d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " - style="opacity:1.0000000;fill:url(#linearGradient13339);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13287" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13289" - style="opacity:0.47777775;fill:url(#linearGradient13341);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <rect - y="-230.99992" - x="236.99994" - height="9.0000000" - width="20.000000" - id="rect13291" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13293" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13295" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13297" - style="opacity:0.47777775;fill:url(#linearGradient13343);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13299" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13301" - style="opacity:0.47777775;fill:url(#linearGradient13345);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - id="path13303" - d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - id="path13305" - d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " - style="opacity:0.47777775;fill:url(#linearGradient13347);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13307" - style="opacity:0.47777775;fill:url(#linearGradient13350);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - sodipodi:nodetypes="ccss" - id="path13309" - d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " - style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" /> - <path - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13311" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path13313" - style="opacity:0.47777775;fill:url(#linearGradient13352);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g transform="translate(56.98577,3.983930)"> + <path d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " fill="#888a85" fill-opacity="1.0000000" stroke="#555753" stroke-width="1.0001625" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " opacity="1.0000000" fill="url(#linearGradient13339)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13341)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <rect y="-230.99992" x="236.99994" height="9.0000000" width="20.000000" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13343)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13345)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " opacity="0.47777775" fill="url(#linearGradient13347)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13350)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " fill="#555753" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <path transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13352)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> - <g - transform="translate(17.177973,-2)" - id="g8264"> - <g - id="g12227" - transform="translate(-219.67784,275.47179)"> - <path - sodipodi:nodetypes="cccc" - id="path12229" - d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" - style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="csscc" - id="path12231" - d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" - style="opacity:0.46111109;fill:url(#radialGradient8290);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccc" - id="path12233" - d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" - style="opacity:1;fill:url(#linearGradient8292);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" /> + <g transform="translate(17.177973,-2)"> + <g transform="translate(-219.67784,275.47179)"> + <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient8290)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient8292)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <g - id="g12191" - transform="translate(-239.67784,265.47959)"> - <path - sodipodi:nodetypes="cccc" - id="path12193" - d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" - style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="csscc" - id="path12195" - d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" - style="opacity:0.46111109;fill:url(#radialGradient8294);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccc" - id="path12197" - d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" - style="opacity:1;fill:url(#linearGradient8296);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" /> + <g transform="translate(-239.67784,265.47959)"> + <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient8294)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient8296)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <g - id="g12239" - transform="translate(-210.67944,272.47179)"> - <path - sodipodi:nodetypes="cccc" - id="path12241" - d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" - style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="csscc" - id="path12243" - d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" - style="opacity:0.46111109;fill:url(#radialGradient8298);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccc" - id="path12245" - d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" - style="opacity:1;fill:url(#linearGradient8300);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" /> + <g transform="translate(-210.67944,272.47179)"> + <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient8298)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient8300)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <g - id="g12186" - transform="translate(-241.67794,275.47309)"> - <path - sodipodi:nodetypes="cccc" - id="path6059" - d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" - style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="csscc" - id="path6061" - d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" - style="opacity:0.46111109;fill:url(#radialGradient8302);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccc" - id="path6063" - d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" - style="opacity:1;fill:url(#linearGradient8304);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" /> + <g transform="translate(-241.67794,275.47309)"> + <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient8302)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient8304)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <g - id="g12203" - transform="translate(-231.67944,270.47179)"> - <path - sodipodi:nodetypes="cccc" - id="path12205" - d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" - style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="csscc" - id="path12207" - d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" - style="opacity:0.46111109;fill:url(#radialGradient8306);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccc" - id="path12209" - d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" - style="opacity:1;fill:url(#linearGradient8308);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" /> + <g transform="translate(-231.67944,270.47179)"> + <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient8306)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient8308)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <g - id="g12215" - transform="translate(-217.67944,265.47959)"> - <path - sodipodi:nodetypes="cccc" - id="path12217" - d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" - style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="csscc" - id="path12219" - d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" - style="opacity:0.46111109;fill:url(#radialGradient8310);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" /> - <path - sodipodi:nodetypes="ccc" - id="path12221" - d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" - style="opacity:1;fill:url(#linearGradient8312);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" /> + <g transform="translate(-217.67944,265.47959)"> + <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient8310)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient8312)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> </g> </g> - <g - transform="translate(-162.99643,221.88968)" - id="g12157"> - <path - sodipodi:type="arc" - style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:1.45874679;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path12159" - sodipodi:cx="29.610096" - sodipodi:cy="-316.77872" - sodipodi:rx="2.2097087" - sodipodi:ry="2.2097087" - d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" - transform="matrix(0.68552,0,0,0.68552,151.7017,27.15827)" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:1.09220433;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path12161" - sodipodi:cx="29.610096" - sodipodi:cy="-316.77872" - sodipodi:rx="2.2097087" - sodipodi:ry="2.2097087" - d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" - transform="matrix(0.915572,0,0,0.915587,152.4091,103.5577)" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:1.47481608;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path12163" - sodipodi:cx="29.610096" - sodipodi:cy="-316.77872" - sodipodi:rx="2.2097087" - sodipodi:ry="2.2097087" - d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" - transform="matrix(0.672406,0,0,0.683742,153.0708,34.62149)" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:1.4678179;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path12165" - sodipodi:cx="29.610096" - sodipodi:cy="-316.77872" - sodipodi:rx="2.2097087" - sodipodi:ry="2.2097087" - d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" - transform="matrix(0.6823,0,0,0.680269,181.797,30.49471)" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:0.89916825;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path12167" - sodipodi:cx="29.610096" - sodipodi:cy="-316.77872" - sodipodi:rx="2.2097087" - sodipodi:ry="2.2097087" - d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" - transform="matrix(1.107132,0,0,1.117168,157.2177,164.9217)" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:0.91822928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path12169" - sodipodi:cx="29.610096" - sodipodi:cy="-316.77872" - sodipodi:rx="2.2097087" - sodipodi:ry="2.2097087" - d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" - transform="matrix(1.127592,0,0,1.05183,161.6119,151.3731)" /> - <path - sodipodi:type="arc" - style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#729fcf;stroke-width:1.46413279;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path12171" - sodipodi:cx="29.610096" - sodipodi:cy="-316.77872" - sodipodi:rx="2.2097087" - sodipodi:ry="2.2097087" - d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" - transform="matrix(0.685519,0,0,0.680487,164.6869,34.56369)" /> + <g transform="translate(-162.99643,221.88968)"> + <path d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" transform="matrix(0.68552,0,0,0.68552,151.7017,27.15827)" opacity="1" fill="#ffffff" fill-opacity="1" stroke="#729fcf" stroke-width="1.45874679" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" transform="matrix(0.915572,0,0,0.915587,152.4091,103.5577)" opacity="1" fill="#ffffff" fill-opacity="1" stroke="#729fcf" stroke-width="1.09220433" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" transform="matrix(0.672406,0,0,0.683742,153.0708,34.62149)" opacity="1" fill="#ffffff" fill-opacity="1" stroke="#729fcf" stroke-width="1.47481608" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" transform="matrix(0.6823,0,0,0.680269,181.797,30.49471)" opacity="1" fill="#ffffff" fill-opacity="1" stroke="#729fcf" stroke-width="1.4678179" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" transform="matrix(1.107132,0,0,1.117168,157.2177,164.9217)" opacity="1" fill="#ffffff" fill-opacity="1" stroke="#729fcf" stroke-width="0.89916825" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" transform="matrix(1.127592,0,0,1.05183,161.6119,151.3731)" opacity="1" fill="#ffffff" fill-opacity="1" stroke="#729fcf" stroke-width="0.91822928" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 31.819805,-316.77872 A 2.2097087,2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087,2.2097087 0 1 1 31.819805,-316.77872 z" transform="matrix(0.685519,0,0,0.680487,164.6869,34.56369)" opacity="1" fill="#ffffff" fill-opacity="1" stroke="#729fcf" stroke-width="1.46413279" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> </g> </g> </g> diff --git a/demos/embedded/weatherinfo/icons/weather-snow.svg b/demos/embedded/weatherinfo/icons/weather-snow.svg index 6c7b4ad..a91946f 100644 --- a/demos/embedded/weatherinfo/icons/weather-snow.svg +++ b/demos/embedded/weatherinfo/icons/weather-snow.svg @@ -1,1418 +1,81 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="48px" - height="48px" - id="svg1306" - sodipodi:version="0.32" - inkscape:version="0.46" - sodipodi:docbase="/home/rcollier/Work/Novell/Tango/weather" - sodipodi:docname="weather-snow.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs1308"> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 24 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="48 : 24 : 1" - inkscape:persp3d-origin="24 : 16 : 1" - id="perspective253" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient10630" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient10628" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient10626" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient10624" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient10622" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient10620" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient10618" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient10616" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6549"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6551" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6553" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient10614" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6527"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6530" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6532" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient10612" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6538"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6540" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6542" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient10610" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6513"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6515" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6517" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient10608" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6497"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6499" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6501" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient10606" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6470"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6472" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6474" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient10604" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - id="linearGradient7834"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop7836" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop7838" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient7834" - id="linearGradient10602" - gradientUnits="userSpaceOnUse" - x1="-156.29044" - y1="-100.53421" - x2="-153.09810" - y2="-96.544556" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8397"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8400" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8402" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8397" - id="linearGradient10600" - gradientUnits="userSpaceOnUse" - x1="238.00478" - y1="-388.47476" - x2="245.65462" - y2="-382.64539" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8315"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8317" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8319" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8315" - id="linearGradient10598" - gradientUnits="userSpaceOnUse" - x1="230.87598" - y1="-390.43951" - x2="235.25652" - y2="-386.95901" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8381"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8383" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8385" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8381" - id="linearGradient10596" - gradientUnits="userSpaceOnUse" - x1="246.74042" - y1="-391.31381" - x2="252.69785" - y2="-385.35165" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8331"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8333" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8335" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8331" - id="linearGradient10594" - gradientUnits="userSpaceOnUse" - x1="240.07379" - y1="-393.40720" - x2="245.82706" - y2="-388.55029" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8302"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8304" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8306" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8302" - id="linearGradient10592" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(122.0230,102.0000)" - x1="228.50261" - y1="-392.30591" - x2="278.91510" - y2="-375.37952" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2298" - id="linearGradient7748" - gradientUnits="userSpaceOnUse" - x1="-27.006643" - y1="-37.550461" - x2="-34.700153" - y2="-4.4493785" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient7746" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3478" - id="linearGradient7744" - gradientUnits="userSpaceOnUse" - x1="11.149398" - y1="-43.997444" - x2="4.9625983" - y2="-8.3080902" /> - <linearGradient - inkscape:collect="always" - id="linearGradient4829"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop4831" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop4833" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient3478"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop3480" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop3482" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2298"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2300" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2302" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient3347"> - <stop - style="stop-color:#edd400;stop-opacity:1;" - offset="0" - id="stop3349" /> - <stop - style="stop-color:#edd400;stop-opacity:0;" - offset="1" - id="stop3351" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2527"> - <stop - style="stop-color:#fcaf3e;stop-opacity:1;" - offset="0" - id="stop2529" /> - <stop - style="stop-color:#fcaf3e;stop-opacity:0;" - offset="1" - id="stop2531" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2500"> - <stop - style="stop-color:#fce94f;stop-opacity:1;" - offset="0" - id="stop2502" /> - <stop - style="stop-color:#fce94f;stop-opacity:0;" - offset="1" - id="stop2504" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2392"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop2394" /> - <stop - style="stop-color:#eeeeec;stop-opacity:0;" - offset="1" - id="stop2396" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2254"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2256" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2258" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2263" - gradientUnits="userSpaceOnUse" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" - gradientTransform="translate(-1.608757,3.097272)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2267" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2271" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2275" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2279" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2283" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2287" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2291" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2295" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2299" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2303" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.707748,-5.784024)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2311" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2350" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(16.14002,24.66420)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2352" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.932144,25.87240)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2354" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.356636,23.86870)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2356" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(11.19027,26.52035)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2358" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(10.30638,19.27251)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2360" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2362" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2364" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2366" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2368" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.207586,21.30544)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2372" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2398" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2426" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2428" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2430" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-1.608757,3.097272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2432" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2434" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2436" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2438" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2440" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2442" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2446" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2448" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2451" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2457" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2460" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2463" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2469" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2472" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2475" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2478" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2483" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(0.842481,-3.998086)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2506" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2509" - gradientUnits="userSpaceOnUse" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2513" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - x1="38.857941" - y1="-18.407482" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2517" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient2533" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2537" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(17.33814,3.415985)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2541" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2555" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.499805,1.708617)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2563" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.726830,2.481141)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3347" - id="linearGradient3353" - x1="23.303862" - y1="29.115711" - x2="29.750000" - y2="46.092930" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3366" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3368" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3372" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3374" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3376" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3378" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3380" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3383" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3386" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3389" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3392" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3395" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.674812,3.088370)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3398" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-2.033818,0.561720)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3401" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.197595,2.690414)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3405" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.561802,-4.303373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1514" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(88.49344,-9.697877)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1516" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1518" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient1520" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1522" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.197595,2.690414)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1524" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-2.033818,0.561720)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1526" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.674812,3.088370)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1528" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1530" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1532" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1534" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1536" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1538" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(57.97693,-10.56876)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient1557" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4829" - id="radialGradient4835" - cx="-35.001785" - cy="-1.1439217" - fx="-35.001785" - fy="-1.1439217" - r="17.500893" - gradientTransform="matrix(1.000000,0.000000,0.000000,0.565657,-5.564992e-15,-0.496855)" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2298" - id="linearGradient1427" - gradientUnits="userSpaceOnUse" - x1="-27.006643" - y1="-37.550461" - x2="-34.700153" - y2="-4.4493785" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3478" - id="linearGradient1431" - gradientUnits="userSpaceOnUse" - x1="11.149398" - y1="-43.997444" - x2="4.9625983" - y2="-8.3080902" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3478" - id="linearGradient14128" - gradientUnits="userSpaceOnUse" - x1="11.149398" - y1="-43.997444" - x2="4.9625983" - y2="-8.3080902" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient14130" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2298" - id="linearGradient14132" - gradientUnits="userSpaceOnUse" - x1="-27.006643" - y1="-37.550461" - x2="-34.700153" - y2="-4.4493785" /> +<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" width="48px" height="48px" id="svg1306"> + <defs id="defs1308"> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient10630" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient10628" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient10626" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient10624" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient10622" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient10620" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient10618" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient10616" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient id="linearGradient6549"> + <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient10614" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient id="linearGradient6527"> + <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient10612" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient id="linearGradient6538"> + <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient10610" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient id="linearGradient6513"> + <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient10608" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient id="linearGradient6497"> + <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient10606" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient id="linearGradient6470"> + <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient10604" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient id="linearGradient7834"> + <stop offset="0" id="stop7836" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop7838" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient7834" id="linearGradient10602" gradientUnits="userSpaceOnUse" x1="-156.29044" y1="-100.53421" x2="-153.09810" y2="-96.544556"/> + <linearGradient id="linearGradient8397"> + <stop offset="0" id="stop8400" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8402" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8397" id="linearGradient10600" gradientUnits="userSpaceOnUse" x1="238.00478" y1="-388.47476" x2="245.65462" y2="-382.64539"/> + <linearGradient id="linearGradient8315"> + <stop offset="0" id="stop8317" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8319" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8315" id="linearGradient10598" gradientUnits="userSpaceOnUse" x1="230.87598" y1="-390.43951" x2="235.25652" y2="-386.95901"/> + <linearGradient id="linearGradient8381"> + <stop offset="0" id="stop8383" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8385" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8381" id="linearGradient10596" gradientUnits="userSpaceOnUse" x1="246.74042" y1="-391.31381" x2="252.69785" y2="-385.35165"/> + <linearGradient id="linearGradient8331"> + <stop offset="0" id="stop8333" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8335" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8331" id="linearGradient10594" gradientUnits="userSpaceOnUse" x1="240.07379" y1="-393.40720" x2="245.82706" y2="-388.55029"/> + <linearGradient id="linearGradient8302"> + <stop offset="0" id="stop8304" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8306" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8302" id="linearGradient10592" gradientUnits="userSpaceOnUse" gradientTransform="translate(122.0230,102.0000)" x1="228.50261" y1="-392.30591" x2="278.91510" y2="-375.37952"/> </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="8" - inkscape:cx="23.594384" - inkscape:cy="39.722629" - inkscape:current-layer="layer1" - showgrid="true" - inkscape:grid-bbox="true" - inkscape:document-units="px" - inkscape:window-width="859" - inkscape:window-height="818" - inkscape:window-x="0" - inkscape:window-y="30" - inkscape:showpageshadow="false" /> - <metadata - id="metadata1311"> + + <metadata id="metadata1311"> <rdf:RDF> - <cc:Work - rdf:about=""> + <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:title>weather-snow</dc:title> <dc:date>January 2006</dc:date> <dc:creator> @@ -1433,542 +96,105 @@ <rdf:li>notification</rdf:li> </rdf:Bag> </dc:subject> - <cc:license - rdf:resource="http://creativecommons.org/licenses/publicdomain/" /> + <cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/> </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/publicdomain/"> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Reproduction" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Distribution" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> + <cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/"> + <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/> + <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/> + <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/> </cc:License> </rdf:RDF> </metadata> - <g - id="layer1" - inkscape:label="Layer 1" - inkscape:groupmode="layer"> - <g - id="g9947" - transform="translate(-340.0455,298.0001)"> - <path - id="path8718" - d="M 364.52300,-296.00000 C 361.75058,-296.00000 359.41477,-294.42629 358.11675,-292.18750 C 357.17239,-292.66254 356.15156,-293.00000 355.02300,-293.00000 C 351.15900,-293.00000 348.02300,-289.86400 348.02300,-286.00000 C 348.02300,-282.13600 351.15900,-279.00000 355.02300,-279.00000 C 357.44267,-279.00000 359.45309,-280.31932 360.71050,-282.18750 C 361.84470,-281.49788 363.09948,-281.00000 364.52300,-281.00000 C 365.43612,-281.00000 366.27595,-281.23202 367.08550,-281.53125 C 367.59544,-280.66352 368.26462,-279.95153 369.08550,-279.37500 C 369.07826,-279.24462 369.02300,-279.13218 369.02300,-279.00000 C 369.02300,-275.13600 372.15899,-272.00000 376.02300,-272.00000 C 379.88700,-272.00000 383.02300,-275.13600 383.02300,-279.00000 C 383.02300,-281.36969 381.76402,-283.35834 379.96050,-284.62500 C 379.96774,-284.75538 380.02300,-284.86782 380.02300,-285.00000 C 380.02300,-288.86400 376.88701,-292.00000 373.02300,-292.00000 C 372.40030,-292.00000 371.84781,-291.77781 371.27300,-291.62500 C 370.07847,-294.18384 367.53166,-296.00000 364.52300,-296.00000 z " - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - id="path8720" - d="M 364.52300,-295.00000 C 361.74252,-295.00000 359.38849,-293.23815 358.46050,-290.78125 C 357.47508,-291.49069 356.32907,-292.00000 355.02300,-292.00000 C 351.71100,-292.00000 349.02300,-289.31200 349.02300,-286.00000 C 349.02300,-282.68800 351.71100,-280.00000 355.02300,-280.00000 C 357.45075,-280.00000 359.51624,-281.45558 360.46050,-283.53125 C 361.58126,-282.61369 362.96264,-282.00000 364.52300,-282.00000 C 365.59754,-282.00000 366.56728,-282.31896 367.46050,-282.78125 C 367.85890,-281.78149 368.56164,-280.99493 369.39800,-280.34375 C 369.21799,-279.74813 369.02300,-279.15410 369.02300,-278.50000 C 369.02300,-274.91200 371.93500,-272.00000 375.52300,-272.00000 C 379.11100,-272.00000 382.02300,-274.91200 382.02300,-278.50000 C 382.02300,-280.86079 380.68867,-282.83019 378.80425,-283.96875 C 378.86684,-284.31598 379.02300,-284.63483 379.02300,-285.00000 C 379.02300,-288.31200 376.33500,-291.00000 373.02300,-291.00000 C 372.17002,-291.00000 371.35170,-290.82132 370.61675,-290.50000 C 369.76298,-293.09388 367.40151,-294.99999 364.52300,-295.00000 z " - style="opacity:1.0000000;fill:url(#linearGradient10592);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.964447,0.000000,0.000000,0.964447,142.3115,91.52621)" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - sodipodi:ry="6.7396116" - sodipodi:rx="6.7396116" - sodipodi:cy="-383.66660" - sodipodi:cx="241.80843" - id="path8722" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <g - transform="translate(122.0230,102.0000)" - id="g8724"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8726" - sodipodi:cx="243.95184" - sodipodi:cy="-389.30136" - sodipodi:rx="6.2313786" - sodipodi:ry="6.2313786" - d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" - transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10594);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8728" - sodipodi:cx="243.95184" - sodipodi:cy="-389.30136" - sodipodi:rx="6.2313786" - sodipodi:ry="6.2313786" - d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" - transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" /> + <g id="layer1"> + <g transform="translate(-340.0455,298.0001)"> + <path d="M 364.52300,-296.00000 C 361.75058,-296.00000 359.41477,-294.42629 358.11675,-292.18750 C 357.17239,-292.66254 356.15156,-293.00000 355.02300,-293.00000 C 351.15900,-293.00000 348.02300,-289.86400 348.02300,-286.00000 C 348.02300,-282.13600 351.15900,-279.00000 355.02300,-279.00000 C 357.44267,-279.00000 359.45309,-280.31932 360.71050,-282.18750 C 361.84470,-281.49788 363.09948,-281.00000 364.52300,-281.00000 C 365.43612,-281.00000 366.27595,-281.23202 367.08550,-281.53125 C 367.59544,-280.66352 368.26462,-279.95153 369.08550,-279.37500 C 369.07826,-279.24462 369.02300,-279.13218 369.02300,-279.00000 C 369.02300,-275.13600 372.15899,-272.00000 376.02300,-272.00000 C 379.88700,-272.00000 383.02300,-275.13600 383.02300,-279.00000 C 383.02300,-281.36969 381.76402,-283.35834 379.96050,-284.62500 C 379.96774,-284.75538 380.02300,-284.86782 380.02300,-285.00000 C 380.02300,-288.86400 376.88701,-292.00000 373.02300,-292.00000 C 372.40030,-292.00000 371.84781,-291.77781 371.27300,-291.62500 C 370.07847,-294.18384 367.53166,-296.00000 364.52300,-296.00000 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 364.52300,-295.00000 C 361.74252,-295.00000 359.38849,-293.23815 358.46050,-290.78125 C 357.47508,-291.49069 356.32907,-292.00000 355.02300,-292.00000 C 351.71100,-292.00000 349.02300,-289.31200 349.02300,-286.00000 C 349.02300,-282.68800 351.71100,-280.00000 355.02300,-280.00000 C 357.45075,-280.00000 359.51624,-281.45558 360.46050,-283.53125 C 361.58126,-282.61369 362.96264,-282.00000 364.52300,-282.00000 C 365.59754,-282.00000 366.56728,-282.31896 367.46050,-282.78125 C 367.85890,-281.78149 368.56164,-280.99493 369.39800,-280.34375 C 369.21799,-279.74813 369.02300,-279.15410 369.02300,-278.50000 C 369.02300,-274.91200 371.93500,-272.00000 375.52300,-272.00000 C 379.11100,-272.00000 382.02300,-274.91200 382.02300,-278.50000 C 382.02300,-280.86079 380.68867,-282.83019 378.80425,-283.96875 C 378.86684,-284.31598 379.02300,-284.63483 379.02300,-285.00000 C 379.02300,-288.31200 376.33500,-291.00000 373.02300,-291.00000 C 372.17002,-291.00000 371.35170,-290.82132 370.61675,-290.50000 C 369.76298,-293.09388 367.40151,-294.99999 364.52300,-295.00000 z " opacity="1.0000000" fill="url(#linearGradient10592)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.964447,0.000000,0.000000,0.964447,142.3115,91.52621)" d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g transform="translate(122.0230,102.0000)"> + <path d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" transform="matrix(0.882630,0.000000,0.000000,0.882630,27.18078,-46.89094)" opacity="1.0000000" fill="url(#linearGradient10594)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(122.0230,102.0000)" - id="g8730"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8732" - sodipodi:cx="251.22179" - sodipodi:cy="-385.78790" - sodipodi:rx="6.0325046" - sodipodi:ry="6.0325046" - d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" - transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10596);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8734" - sodipodi:cx="251.22179" - sodipodi:cy="-385.78790" - sodipodi:rx="6.0325046" - sodipodi:ry="6.0325046" - d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" - transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" /> + <g transform="translate(122.0230,102.0000)"> + <path d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" transform="matrix(0.911728,0.000000,0.000000,0.911728,21.45407,-34.76637)" opacity="1.0000000" fill="url(#linearGradient10596)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(122.0230,102.0000)" - id="g8736"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8738" - sodipodi:cx="233.43362" - sodipodi:cy="-387.88715" - sodipodi:rx="4.3752232" - sodipodi:ry="4.3752232" - d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" - transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10598);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8740" - sodipodi:cx="233.43362" - sodipodi:cy="-387.88715" - sodipodi:rx="4.3752232" - sodipodi:ry="4.3752232" - d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" - transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" /> + <g transform="translate(122.0230,102.0000)"> + <path d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" transform="matrix(1.142799,0.000000,0.000000,1.142799,-33.76771,55.27704)" opacity="1.0000000" fill="url(#linearGradient10598)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(122.0230,102.0000)" - id="g8742"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8744" - sodipodi:cx="241.80843" - sodipodi:cy="-383.66660" - sodipodi:rx="6.7396116" - sodipodi:ry="6.7396116" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150940,14.48994)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10600);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8746" - sodipodi:cx="241.80843" - sodipodi:cy="-383.66660" - sodipodi:rx="6.7396116" - sodipodi:ry="6.7396116" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150933,14.48993)" /> + <g transform="translate(122.0230,102.0000)"> + <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150940,14.48994)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" transform="matrix(1.038636,0.000000,0.000000,1.038636,-9.150933,14.48993)" opacity="1.0000000" fill="url(#linearGradient10600)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - style="stroke:none" - transform="matrix(0.935028,0.000000,0.000000,0.935028,499.8484,-187.6162)" - id="g8748"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:0.33115697;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8750" - sodipodi:cx="-155.06250" - sodipodi:cy="-96.937500" - sodipodi:rx="3.1250000" - sodipodi:ry="3.1250000" - d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1 -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1 -151.93750 -96.937500 z" - transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8322,70.07649)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10602);fill-opacity:1.0000000;stroke:none;stroke-width:0.45224530;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8752" - sodipodi:cx="-155.06250" - sodipodi:cy="-96.937500" - sodipodi:rx="3.1250000" - sodipodi:ry="3.1250000" - d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1 -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1 -151.93750 -96.937500 z" - transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8948,70.01402)" /> + <g transform="matrix(0.935028,0.000000,0.000000,0.935028,499.8484,-187.6162)" stroke="none"> + <path d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1 -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1 -151.93750 -96.937500 z" transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8322,70.07649)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="0.33115697" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M -151.93750 -96.937500 A 3.1250000 3.1250000 0 1 1 -158.18750,-96.937500 A 3.1250000 3.1250000 0 1 1 -151.93750 -96.937500 z" transform="matrix(1.737733,0.000000,0.000000,1.737733,110.8948,70.01402)" opacity="1.0000000" fill="url(#linearGradient10602)" fill-opacity="1.0000000" stroke="none" stroke-width="0.45224530" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(91.02300,162.0000)" - id="g8798"> - <path - style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " - id="path8800" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient10604);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " - id="path8802" - sodipodi:nodetypes="ccsscsssscsscc" /> - <g - id="g8804"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8806" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8808" - style="opacity:1.0000000;fill:url(#linearGradient10606);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g transform="translate(91.02300,162.0000)"> + <path d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " fill="#c4c5c2" fill-opacity="1.0000000" stroke="#888a85" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " opacity="1.0000000" fill="url(#linearGradient10604)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10606)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <rect - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="rect8810" - width="20.000000" - height="9.0000000" - x="271.00000" - y="-438.00000" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8812" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" /> - <g - id="g8814"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8816" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8818" - style="opacity:1.0000000;fill:url(#linearGradient10608);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <rect width="20.000000" height="9.0000000" x="271.00000" y="-438.00000" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10608)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g8820"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8822" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8824" - style="opacity:1.0000000;fill:url(#linearGradient10610);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10610)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g8826" - transform="translate(-1.000000,0.000000)"> - <path - id="path8828" - d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - id="path8830" - d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " - style="opacity:1.0000000;fill:url(#linearGradient10612);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> + <g transform="translate(-1.000000,0.000000)"> + <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " opacity="1.0000000" fill="url(#linearGradient10612)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10614);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8832" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" /> - <path - style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" - d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " - id="path8834" - sodipodi:nodetypes="ccss" /> - <g - id="g8836" - transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8838" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8840" - style="opacity:1.0000000;fill:url(#linearGradient10616);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" opacity="1.0000000" fill="url(#linearGradient10614)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " fill="#888a85" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <g transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10616)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> - <g - transform="translate(76.02041,158.0000)" - id="g8754"> - <path - style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " - id="path8756" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient10618);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " - id="path8758" - sodipodi:nodetypes="ccsscsssscsscc" /> - <g - id="g8760"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8762" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8764" - style="opacity:1.0000000;fill:url(#linearGradient10620);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g transform="translate(76.02041,158.0000)"> + <path d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " fill="#c4c5c2" fill-opacity="1.0000000" stroke="#888a85" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " opacity="1.0000000" fill="url(#linearGradient10618)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10620)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <rect - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="rect8766" - width="20.000000" - height="9.0000000" - x="271.00000" - y="-438.00000" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8768" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" /> - <g - id="g8770"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8772" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8774" - style="opacity:1.0000000;fill:url(#linearGradient10622);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <rect width="20.000000" height="9.0000000" x="271.00000" y="-438.00000" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10622)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g8776"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8778" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8780" - style="opacity:1.0000000;fill:url(#linearGradient10624);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10624)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g8782" - transform="translate(-1.000000,0.000000)"> - <path - id="path8784" - d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - id="path8786" - d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " - style="opacity:1.0000000;fill:url(#linearGradient10626);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> + <g transform="translate(-1.000000,0.000000)"> + <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " opacity="1.0000000" fill="url(#linearGradient10626)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient10628);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path8788" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" /> - <path - style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" - d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " - id="path8790" - sodipodi:nodetypes="ccss" /> - <g - id="g8792" - transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8794" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path8796" - style="opacity:1.0000000;fill:url(#linearGradient10630);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" opacity="1.0000000" fill="url(#linearGradient10628)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " fill="#888a85" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <g transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient10630)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> </g> - <g - id="g12157" - transform="translate(-163.0077,222.0147)"> - <path - transform="matrix(0.685520,0.000000,0.000000,0.685520,151.7017,27.15827)" - d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" - sodipodi:ry="2.2097087" - sodipodi:rx="2.2097087" - sodipodi:cy="-316.77872" - sodipodi:cx="29.610096" - id="path12159" - style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:1.4587468;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(0.915572,0.000000,0.000000,0.915587,152.4091,103.5577)" - d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" - sodipodi:ry="2.2097087" - sodipodi:rx="2.2097087" - sodipodi:cy="-316.77872" - sodipodi:cx="29.610096" - id="path12161" - style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:1.0922043;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(0.672406,0.000000,0.000000,0.683742,153.0708,34.62149)" - d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" - sodipodi:ry="2.2097087" - sodipodi:rx="2.2097087" - sodipodi:cy="-316.77872" - sodipodi:cx="29.610096" - id="path12163" - style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:1.4748161;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(0.682300,0.000000,0.000000,0.680269,181.7970,30.49471)" - d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" - sodipodi:ry="2.2097087" - sodipodi:rx="2.2097087" - sodipodi:cy="-316.77872" - sodipodi:cx="29.610096" - id="path12165" - style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:1.4678179;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.107132,0.000000,0.000000,1.117168,157.2177,164.9217)" - d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" - sodipodi:ry="2.2097087" - sodipodi:rx="2.2097087" - sodipodi:cy="-316.77872" - sodipodi:cx="29.610096" - id="path12167" - style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:0.89916825;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.127592,0.000000,0.000000,1.051830,161.6119,151.3731)" - d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" - sodipodi:ry="2.2097087" - sodipodi:rx="2.2097087" - sodipodi:cy="-316.77872" - sodipodi:cx="29.610096" - id="path12169" - style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:0.91822928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(0.685519,0.000000,0.000000,0.680487,164.6869,34.56369)" - d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" - sodipodi:ry="2.2097087" - sodipodi:rx="2.2097087" - sodipodi:cy="-316.77872" - sodipodi:cx="29.610096" - id="path12171" - style="opacity:1.0000000;fill:#ffffff;fill-opacity:1.0000000;stroke:#729fcf;stroke-width:1.4641328;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g transform="translate(-163.0077,222.0147)"> + <path transform="matrix(0.685520,0.000000,0.000000,0.685520,151.7017,27.15827)" d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" opacity="1.0000000" fill="#ffffff" fill-opacity="1.0000000" stroke="#729fcf" stroke-width="1.4587468" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.915572,0.000000,0.000000,0.915587,152.4091,103.5577)" d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" opacity="1.0000000" fill="#ffffff" fill-opacity="1.0000000" stroke="#729fcf" stroke-width="1.0922043" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.672406,0.000000,0.000000,0.683742,153.0708,34.62149)" d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" opacity="1.0000000" fill="#ffffff" fill-opacity="1.0000000" stroke="#729fcf" stroke-width="1.4748161" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.682300,0.000000,0.000000,0.680269,181.7970,30.49471)" d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" opacity="1.0000000" fill="#ffffff" fill-opacity="1.0000000" stroke="#729fcf" stroke-width="1.4678179" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.107132,0.000000,0.000000,1.117168,157.2177,164.9217)" d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" opacity="1.0000000" fill="#ffffff" fill-opacity="1.0000000" stroke="#729fcf" stroke-width="0.89916825" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.127592,0.000000,0.000000,1.051830,161.6119,151.3731)" d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" opacity="1.0000000" fill="#ffffff" fill-opacity="1.0000000" stroke="#729fcf" stroke-width="0.91822928" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.685519,0.000000,0.000000,0.680487,164.6869,34.56369)" d="M 31.819805 -316.77872 A 2.2097087 2.2097087 0 1 1 27.400387,-316.77872 A 2.2097087 2.2097087 0 1 1 31.819805 -316.77872 z" opacity="1.0000000" fill="#ffffff" fill-opacity="1.0000000" stroke="#729fcf" stroke-width="1.4641328" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> </svg> diff --git a/demos/embedded/weatherinfo/icons/weather-storm.svg b/demos/embedded/weatherinfo/icons/weather-storm.svg index 4d8bfec..1ad47ab 100644 --- a/demos/embedded/weatherinfo/icons/weather-storm.svg +++ b/demos/embedded/weatherinfo/icons/weather-storm.svg @@ -1,3851 +1,94 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="48px" - height="48px" - id="svg1306" - sodipodi:version="0.32" - inkscape:version="0.46" - sodipodi:docbase="/home/rcollier/Work/Novell/Tango/weather" - sodipodi:docname="weather-storm.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs1308"> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 24 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="48 : 24 : 1" - inkscape:persp3d-origin="24 : 16 : 1" - id="perspective488" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8397"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8400" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8402" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8397" - id="linearGradient13503" - gradientUnits="userSpaceOnUse" - x1="238.00478" - y1="-388.47476" - x2="245.65462" - y2="-382.64539" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8315"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8317" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8319" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8315" - id="linearGradient13501" - gradientUnits="userSpaceOnUse" - x1="230.87598" - y1="-390.43951" - x2="235.25652" - y2="-386.95901" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8381"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8383" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8385" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8381" - id="linearGradient13499" - gradientUnits="userSpaceOnUse" - x1="246.74042" - y1="-391.31381" - x2="252.69785" - y2="-385.35165" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8331"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8333" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8335" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8331" - id="linearGradient13497" - gradientUnits="userSpaceOnUse" - x1="240.07379" - y1="-393.40720" - x2="245.82706" - y2="-388.55029" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8302"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8304" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8306" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8302" - id="linearGradient13495" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(69.00000,155.0000)" - x1="228.50261" - y1="-392.30591" - x2="266.36395" - y2="-379.26862" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13143" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient13141" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient13139" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-35.00007,207.0001)" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13137" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient13135" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient13133" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient13131" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-34.00007,207.0001)" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8874" - id="linearGradient11195" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.15871,7.082841)" - x1="-190.47688" - y1="-332.51181" - x2="-196.19046" - y2="-328.53433" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8904" - id="linearGradient11193" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.80516,2.840199)" - x1="-191.28896" - y1="-328.07861" - x2="-192.41396" - y2="-315.32861" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8874"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8876" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8878" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8874" - id="linearGradient11191" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.15871,7.082841)" - x1="-190.47688" - y1="-332.51181" - x2="-196.19046" - y2="-328.53433" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8904"> - <stop - style="stop-color:#fcaf3e;stop-opacity:1;" - offset="0" - id="stop8906" /> - <stop - style="stop-color:#fcaf3e;stop-opacity:0;" - offset="1" - id="stop8908" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8904" - id="linearGradient11189" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.80516,2.840199)" - x1="-191.28896" - y1="-328.07861" - x2="-192.41396" - y2="-315.32861" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5123" - id="radialGradient13211" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,245.3644,184.9256)" - cx="-229.75000" - cy="-343.95554" - fx="-229.75000" - fy="-343.95554" - r="14.501380" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13157" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6549"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6551" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6553" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient13155" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6527"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6530" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6532" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient13153" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-35.00007,207.0001)" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6538"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6540" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6542" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13151" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6513"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6515" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6517" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient13149" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6497"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6499" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6501" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient13147" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6470"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6472" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6474" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient13145" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-34.00007,207.0001)" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - id="linearGradient5123"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop5125" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop5127" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5123" - id="radialGradient13068" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,229.9269,180.9261)" - cx="-229.75000" - cy="-343.95554" - fx="-229.75000" - fy="-343.95554" - r="14.501380" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6840"> - <stop - style="stop-color:#ad7fa8;stop-opacity:1;" - offset="0" - id="stop6842" /> - <stop - style="stop-color:#ad7fa8;stop-opacity:0;" - offset="1" - id="stop6844" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6828"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6830" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6832" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6537"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6539" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6541" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2298"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2300" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2302" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient3347"> - <stop - style="stop-color:#edd400;stop-opacity:1;" - offset="0" - id="stop3349" /> - <stop - style="stop-color:#edd400;stop-opacity:0;" - offset="1" - id="stop3351" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2527"> - <stop - style="stop-color:#fcaf3e;stop-opacity:1;" - offset="0" - id="stop2529" /> - <stop - style="stop-color:#fcaf3e;stop-opacity:0;" - offset="1" - id="stop2531" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2500"> - <stop - style="stop-color:#fce94f;stop-opacity:1;" - offset="0" - id="stop2502" /> - <stop - style="stop-color:#fce94f;stop-opacity:0;" - offset="1" - id="stop2504" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2392"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop2394" /> - <stop - style="stop-color:#eeeeec;stop-opacity:0;" - offset="1" - id="stop2396" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2254"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2256" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2258" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2263" - gradientUnits="userSpaceOnUse" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" - gradientTransform="translate(-1.608757,3.097272)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2267" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2271" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2275" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2279" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2283" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2287" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2291" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2295" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2299" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2303" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.707748,-5.784024)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2311" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2350" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(16.14002,24.66420)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2352" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.932144,25.87240)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2354" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.356636,23.86870)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2356" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(11.19027,26.52035)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2358" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(10.30638,19.27251)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2360" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2362" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2364" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2366" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2368" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.207586,21.30544)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2372" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2398" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2426" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2428" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2430" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-1.608757,3.097272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2432" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2434" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2436" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2438" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2440" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2442" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2446" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2448" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2451" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2457" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2460" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2463" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2469" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2472" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2475" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2478" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2483" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(0.842481,-3.998086)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2506" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2509" - gradientUnits="userSpaceOnUse" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2513" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - x1="38.857941" - y1="-18.407482" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2517" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient2533" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2537" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(17.33814,3.415985)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2541" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2555" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.499805,1.708617)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2563" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.726830,2.481141)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3347" - id="linearGradient3353" - x1="23.303862" - y1="29.115711" - x2="29.750000" - y2="46.092930" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3366" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3368" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3372" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3374" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3376" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3378" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3380" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3383" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3386" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3389" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3392" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3395" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.674812,3.088370)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3398" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-2.033818,0.561720)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3401" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.197595,2.690414)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3405" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.561802,-4.303373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-4.4493785" - x2="-34.700153" - y1="-37.550461" - x1="-27.006643" - id="linearGradient2916" - xlink:href="#linearGradient2298" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient2914" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(57.97693,-10.56876)" - gradientUnits="userSpaceOnUse" - id="linearGradient2912" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)" - gradientUnits="userSpaceOnUse" - id="linearGradient2910" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient2908" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient2906" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient2904" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient2902" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient2900" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient2898" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient2896" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient2894" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)" - gradientUnits="userSpaceOnUse" - id="linearGradient2892" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)" - gradientUnits="userSpaceOnUse" - id="linearGradient2890" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(88.49344,-9.697877)" - gradientUnits="userSpaceOnUse" - id="linearGradient2888" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.561802,-4.303373)" - gradientUnits="userSpaceOnUse" - id="linearGradient2886" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient2884" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient2882" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient2880" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient2878" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient2876" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient2874" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient2872" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient2870" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2868" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient2866" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient2864" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2862" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2860" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2858" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient2856" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="46.092930" - x2="29.750000" - y1="29.115711" - x1="23.303862" - id="linearGradient2854" - xlink:href="#linearGradient3347" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.726830,2.481141)" - gradientUnits="userSpaceOnUse" - id="linearGradient2852" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.499805,1.708617)" - gradientUnits="userSpaceOnUse" - id="linearGradient2850" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient2848" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(17.33814,3.415985)" - gradientUnits="userSpaceOnUse" - id="linearGradient2846" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - id="linearGradient2844" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - gradientUnits="userSpaceOnUse" - id="linearGradient2842" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-18.407482" - x1="38.857941" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - gradientUnits="userSpaceOnUse" - id="linearGradient2840" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientUnits="userSpaceOnUse" - id="linearGradient2838" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - id="linearGradient2836" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(0.842481,-3.998086)" - gradientUnits="userSpaceOnUse" - id="linearGradient2834" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2832" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2830" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2828" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient2826" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient2824" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2822" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient2820" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - gradientUnits="userSpaceOnUse" - id="linearGradient2818" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - id="linearGradient2816" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient2814" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient2812" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2810" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient2808" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient2806" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient2804" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2802" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2800" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-1.608757,3.097272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2798" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient2796" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient2794" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - id="linearGradient2792" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - gradientUnits="userSpaceOnUse" - id="linearGradient2790" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.207586,21.30544)" - gradientUnits="userSpaceOnUse" - id="linearGradient2788" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - gradientUnits="userSpaceOnUse" - id="linearGradient2786" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - gradientUnits="userSpaceOnUse" - id="linearGradient2784" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - gradientUnits="userSpaceOnUse" - id="linearGradient2782" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - gradientUnits="userSpaceOnUse" - id="linearGradient2780" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - gradientUnits="userSpaceOnUse" - id="linearGradient2778" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(10.30638,19.27251)" - gradientUnits="userSpaceOnUse" - id="linearGradient2776" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(11.19027,26.52035)" - gradientUnits="userSpaceOnUse" - id="linearGradient2774" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(5.356636,23.86870)" - gradientUnits="userSpaceOnUse" - id="linearGradient2772" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.932144,25.87240)" - gradientUnits="userSpaceOnUse" - id="linearGradient2770" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(16.14002,24.66420)" - gradientUnits="userSpaceOnUse" - id="linearGradient2768" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient2766" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.707748,-5.784024)" - gradientUnits="userSpaceOnUse" - id="linearGradient2764" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient2762" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2760" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient2758" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient2756" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient2754" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient2752" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient2750" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2748" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2746" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="translate(-1.608757,3.097272)" - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientUnits="userSpaceOnUse" - id="linearGradient2744" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-4.4493785" - x2="-34.700153" - y1="-37.550461" - x1="-27.006643" - id="linearGradient2304" - xlink:href="#linearGradient2298" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient1557" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(57.97693,-10.56876)" - gradientUnits="userSpaceOnUse" - id="linearGradient1538" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)" - gradientUnits="userSpaceOnUse" - id="linearGradient1536" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient1534" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient1532" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient1530" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient1528" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient1526" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient1524" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient1522" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient1520" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)" - gradientUnits="userSpaceOnUse" - id="linearGradient1518" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)" - gradientUnits="userSpaceOnUse" - id="linearGradient1516" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(88.49344,-9.697877)" - gradientUnits="userSpaceOnUse" - id="linearGradient1514" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.561802,-4.303373)" - gradientUnits="userSpaceOnUse" - id="linearGradient5957" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient5955" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient5953" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient5951" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient5949" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient5947" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient5945" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient5943" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient5941" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5939" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient5937" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient5935" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5933" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5931" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient5929" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient5927" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="46.092930" - x2="29.750000" - y1="29.115711" - x1="23.303862" - id="linearGradient5925" - xlink:href="#linearGradient3347" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.726830,2.481141)" - gradientUnits="userSpaceOnUse" - id="linearGradient5923" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.499805,1.708617)" - gradientUnits="userSpaceOnUse" - id="linearGradient5921" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient5919" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(17.33814,3.415985)" - gradientUnits="userSpaceOnUse" - id="linearGradient5917" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - id="linearGradient5915" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - gradientUnits="userSpaceOnUse" - id="linearGradient5913" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-18.407482" - x1="38.857941" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - gradientUnits="userSpaceOnUse" - id="linearGradient5911" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientUnits="userSpaceOnUse" - id="linearGradient5909" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - id="linearGradient5907" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(0.842481,-3.998086)" - gradientUnits="userSpaceOnUse" - id="linearGradient5905" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient5903" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5901" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5899" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient5897" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient5895" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5893" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient5891" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - gradientUnits="userSpaceOnUse" - id="linearGradient5889" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - id="linearGradient5887" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient5885" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient5883" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5881" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient5879" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient5877" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient5875" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5873" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5871" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-1.608757,3.097272)" - gradientUnits="userSpaceOnUse" - id="linearGradient5869" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient5867" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient5865" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - id="linearGradient5863" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - gradientUnits="userSpaceOnUse" - id="linearGradient5861" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.207586,21.30544)" - gradientUnits="userSpaceOnUse" - id="linearGradient5859" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - gradientUnits="userSpaceOnUse" - id="linearGradient5857" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - gradientUnits="userSpaceOnUse" - id="linearGradient5855" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - gradientUnits="userSpaceOnUse" - id="linearGradient5853" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - gradientUnits="userSpaceOnUse" - id="linearGradient5851" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - gradientUnits="userSpaceOnUse" - id="linearGradient5849" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(10.30638,19.27251)" - gradientUnits="userSpaceOnUse" - id="linearGradient5847" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(11.19027,26.52035)" - gradientUnits="userSpaceOnUse" - id="linearGradient5845" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(5.356636,23.86870)" - gradientUnits="userSpaceOnUse" - id="linearGradient5843" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.932144,25.87240)" - gradientUnits="userSpaceOnUse" - id="linearGradient5841" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(16.14002,24.66420)" - gradientUnits="userSpaceOnUse" - id="linearGradient5839" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient5837" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.707748,-5.784024)" - gradientUnits="userSpaceOnUse" - id="linearGradient5835" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient5833" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5831" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient5829" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient5827" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient5825" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient5823" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient5821" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5819" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5817" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="translate(-1.608757,3.097272)" - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientUnits="userSpaceOnUse" - id="linearGradient5815" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6098" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6101" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6118" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6121" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6124" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(21.51400,12.80461)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6179" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.197595,2.690414)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6181" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-2.033818,0.561720)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6183" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.674812,3.088370)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6185" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6187" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6189" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6191" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient6193" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6196" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6199" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6202" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6205" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-4.372193,11.95105)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6208" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6211" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6214" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6242" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6244" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6246" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6248" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6250" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6252" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6254" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6257" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.297112,4.275205)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6263" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6266" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6269" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.79432,0.174884)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6272" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.085690,-2.351766)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6275" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2.921913,-0.223072)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6311" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(21.51400,12.80461)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6313" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6315" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6317" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6319" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6321" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6323" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6325" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6327" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6329" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6331" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6333" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6335" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2.921913,-0.223072)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6337" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.085690,-2.351766)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6339" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.79432,0.174884)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6341" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6343" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6543" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-2.763717e-17,0.972572,16.13182,0.843286)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6547" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,25.91493,0.633642)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6551" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,36.25638,0.633643)" - x1="27.320963" - y1="44.228481" - x2="45.115814" - y2="44.228455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6559" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-2.332577e-16,0.972572,16.13182,0.843286)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6561" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,25.91493,0.633642)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6563" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,36.25638,0.633643)" - x1="27.320963" - y1="44.228481" - x2="45.115814" - y2="44.228455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6566" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.577744,0.000000,-6.388715e-16,1.006703,39.04124,-0.702889)" - x1="27.320963" - y1="44.228481" - x2="45.115814" - y2="44.228455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6569" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.577744,0.000000,-6.388715e-16,1.006703,27.70322,-0.702890)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6572" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.577744,0.000000,-1.880005e-16,1.006703,16.97734,-0.485889)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6576" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.132431,0.000000,0.000000,1.016132,10.54485,-4.728138)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6579" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.853605,0.000000,0.000000,1.016132,19.23518,-2.625202)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6582" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,13.49182,-7.781819)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6585" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,7.650036,-10.34923)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6588" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,2.365814,-8.186195)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6599" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.999079,0.000000,0.000000,1.016132,56.82188,9.371753)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6603" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-1.807925,-9.493960)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6606" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.314274,0.000000,0.000000,1.016132,12.05438,11.66070)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6609" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-11.59870,2.312158)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6612" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,21.39156,5.051653)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6618" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,16.09471,2.948843)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6622" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,11.32174,9.047633)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6624" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6626" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6628" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6630" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6632" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6634" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6636" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6828" - id="radialGradient6834" - cx="15.147860" - cy="23.822156" - fx="15.147860" - fy="23.822156" - r="12.852140" - gradientTransform="matrix(0.654874,0.000000,0.000000,0.398574,2.663540,12.14676)" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6840" - id="radialGradient6846" - cx="32.583473" - cy="25.240442" - fx="32.583473" - fy="25.240442" - r="8.4165270" - gradientTransform="matrix(1.000000,0.000000,0.000000,0.503823,-15.00000,6.042836)" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6828" - id="radialGradient6852" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.654874,0.000000,0.000000,0.398574,44.33646,16.14676)" - cx="15.147860" - cy="23.822156" - fx="15.147860" - fy="23.822156" - r="12.852140" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6840" - id="radialGradient6854" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.000000,0.000000,0.000000,0.503823,62.00000,10.04284)" - cx="32.583473" - cy="25.240442" - fx="32.583473" - fy="25.240442" - r="8.4165270" /> +<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" width="48px" height="48px" id="svg1306"> + <defs id="defs1308"> + <linearGradient id="linearGradient8397"> + <stop offset="0" id="stop8400" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8402" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8397" id="linearGradient13503" gradientUnits="userSpaceOnUse" x1="238.00478" y1="-388.47476" x2="245.65462" y2="-382.64539"/> + <linearGradient id="linearGradient8315"> + <stop offset="0" id="stop8317" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8319" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8315" id="linearGradient13501" gradientUnits="userSpaceOnUse" x1="230.87598" y1="-390.43951" x2="235.25652" y2="-386.95901"/> + <linearGradient id="linearGradient8381"> + <stop offset="0" id="stop8383" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8385" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8381" id="linearGradient13499" gradientUnits="userSpaceOnUse" x1="246.74042" y1="-391.31381" x2="252.69785" y2="-385.35165"/> + <linearGradient id="linearGradient8331"> + <stop offset="0" id="stop8333" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8335" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8331" id="linearGradient13497" gradientUnits="userSpaceOnUse" x1="240.07379" y1="-393.40720" x2="245.82706" y2="-388.55029"/> + <linearGradient id="linearGradient8302"> + <stop offset="0" id="stop8304" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8306" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8302" id="linearGradient13495" gradientUnits="userSpaceOnUse" gradientTransform="translate(69.00000,155.0000)" x1="228.50261" y1="-392.30591" x2="266.36395" y2="-379.26862"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13143" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient13141" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient13139" gradientUnits="userSpaceOnUse" gradientTransform="translate(-35.00007,207.0001)" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13137" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient13135" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient13133" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient13131" gradientUnits="userSpaceOnUse" gradientTransform="translate(-34.00007,207.0001)" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient xlink:href="#linearGradient8874" id="linearGradient11195" gradientUnits="userSpaceOnUse" gradientTransform="translate(14.15871,7.082841)" x1="-190.47688" y1="-332.51181" x2="-196.19046" y2="-328.53433"/> + <linearGradient xlink:href="#linearGradient8904" id="linearGradient11193" gradientUnits="userSpaceOnUse" gradientTransform="translate(13.80516,2.840199)" x1="-191.28896" y1="-328.07861" x2="-192.41396" y2="-315.32861"/> + <linearGradient id="linearGradient8874"> + <stop offset="0" id="stop8876" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8878" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8874" id="linearGradient11191" gradientUnits="userSpaceOnUse" gradientTransform="translate(14.15871,7.082841)" x1="-190.47688" y1="-332.51181" x2="-196.19046" y2="-328.53433"/> + <linearGradient id="linearGradient8904"> + <stop offset="0" id="stop8906" stop-color="#fcaf3e" stop-opacity="1"/> + <stop offset="1" id="stop8908" stop-color="#fcaf3e" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8904" id="linearGradient11189" gradientUnits="userSpaceOnUse" gradientTransform="translate(13.80516,2.840199)" x1="-191.28896" y1="-328.07861" x2="-192.41396" y2="-315.32861"/> + <radialGradient xlink:href="#linearGradient5123" id="radialGradient13211" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,245.3644,184.9256)" cx="-229.75000" cy="-343.95554" fx="-229.75000" fy="-343.95554" r="14.501380"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13157" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient id="linearGradient6549"> + <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient13155" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient id="linearGradient6527"> + <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient13153" gradientUnits="userSpaceOnUse" gradientTransform="translate(-35.00007,207.0001)" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient id="linearGradient6538"> + <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13151" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient id="linearGradient6513"> + <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient13149" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient id="linearGradient6497"> + <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient13147" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient id="linearGradient6470"> + <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient13145" gradientUnits="userSpaceOnUse" gradientTransform="translate(-34.00007,207.0001)" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient id="linearGradient5123"> + <stop offset="0" id="stop5125" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop5127" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <radialGradient xlink:href="#linearGradient5123" id="radialGradient13068" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,229.9269,180.9261)" cx="-229.75000" cy="-343.95554" fx="-229.75000" fy="-343.95554" r="14.501380"/> </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="11.313708" - inkscape:cx="19.667589" - inkscape:cy="18.541776" - inkscape:current-layer="layer1" - showgrid="true" - inkscape:grid-bbox="true" - inkscape:document-units="px" - inkscape:window-width="1200" - inkscape:window-height="704" - inkscape:window-x="186" - inkscape:window-y="144" - inkscape:showpageshadow="false" /> - <metadata - id="metadata1311"> + + <metadata id="metadata1311"> <rdf:RDF> - <cc:Work - rdf:about=""> + <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:title>weather-storm</dc:title> <dc:date>January 2006</dc:date> <dc:creator> @@ -3866,443 +109,82 @@ <rdf:li>notify</rdf:li> </rdf:Bag> </dc:subject> - <cc:license - rdf:resource="http://creativecommons.org/licenses/publicdomain/" /> + <cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/> </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/publicdomain/"> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Reproduction" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Distribution" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> + <cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/"> + <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/> + <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/> + <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/> </cc:License> </rdf:RDF> </metadata> - <g - id="layer1" - inkscape:label="Layer 1" - inkscape:groupmode="layer"> - <g - id="g12825" - transform="translate(-287.0204,244.9995)"> - <path - id="path12827" - d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z " - style="opacity:1.0000000;fill:#555753;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - id="path12829" - d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z " - style="opacity:1.0000000;fill:url(#linearGradient13495);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - sodipodi:ry="6.7396116" - sodipodi:rx="6.7396116" - sodipodi:cy="-383.66660" - sodipodi:cx="241.80843" - id="path12831" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <g - id="g12833"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12835" - sodipodi:cx="243.95184" - sodipodi:cy="-389.30136" - sodipodi:rx="6.2313786" - sodipodi:ry="6.2313786" - d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" - transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" /> - <path - sodipodi:type="arc" - style="opacity:0.49444440;fill:url(#linearGradient13497);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12837" - sodipodi:cx="243.95184" - sodipodi:cy="-389.30136" - sodipodi:rx="6.2313786" - sodipodi:ry="6.2313786" - d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" - transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" /> + <g id="layer1"> + <g transform="translate(-287.0204,244.9995)"> + <path d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z " opacity="1.0000000" fill="#555753" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z " opacity="1.0000000" fill="url(#linearGradient13495)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)" d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" opacity="0.49444440" fill="url(#linearGradient13497)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g12839"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12841" - sodipodi:cx="251.22179" - sodipodi:cy="-385.78790" - sodipodi:rx="6.0325046" - sodipodi:ry="6.0325046" - d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" - transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" /> - <path - sodipodi:type="arc" - style="opacity:0.49444440;fill:url(#linearGradient13499);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12843" - sodipodi:cx="251.22179" - sodipodi:cy="-385.78790" - sodipodi:rx="6.0325046" - sodipodi:ry="6.0325046" - d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" - transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" /> + <g> + <path d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" opacity="0.49444440" fill="url(#linearGradient13499)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g12845"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12847" - sodipodi:cx="233.43362" - sodipodi:cy="-387.88715" - sodipodi:rx="4.3752232" - sodipodi:ry="4.3752232" - d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" - transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" /> - <path - sodipodi:type="arc" - style="opacity:0.49444440;fill:url(#linearGradient13501);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12849" - sodipodi:cx="233.43362" - sodipodi:cy="-387.88715" - sodipodi:rx="4.3752232" - sodipodi:ry="4.3752232" - d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" - transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" /> + <g> + <path d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" opacity="0.49444440" fill="url(#linearGradient13501)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g12851"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12853" - sodipodi:cx="241.80843" - sodipodi:cy="-383.66660" - sodipodi:rx="6.7396116" - sodipodi:ry="6.7396116" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)" /> - <path - sodipodi:type="arc" - style="opacity:0.49444440;fill:url(#linearGradient13503);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12855" - sodipodi:cx="241.80843" - sodipodi:cy="-383.66660" - sodipodi:rx="6.7396116" - sodipodi:ry="6.7396116" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)" /> + <g> + <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)" opacity="0.49444440" fill="url(#linearGradient13503)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> - <g - id="g11177" - transform="translate(208.8564,357.8851)"> - <path - sodipodi:nodetypes="cccccccc" - id="path11179" - d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z " - style="fill:#edd400;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient11189);stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" /> - <path - sodipodi:nodetypes="cccccccc" - id="path11181" - d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z " - style="opacity:1.0000000;fill:url(#linearGradient11191);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" /> + <g transform="translate(208.8564,357.8851)"> + <path d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z " fill="#edd400" fill-opacity="1.0000000" fill-rule="evenodd" stroke="url(#linearGradient11189)" stroke-width="1.0000006px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <path d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z " opacity="1.0000000" fill="url(#linearGradient11191)" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000006px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> </g> - <g - id="g12857" - transform="translate(-215.0060,252.9994)"> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path12859" - d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " - style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path12861" - d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " - style="opacity:1.0000000;fill:url(#linearGradient13131);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12863" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12865" - style="opacity:0.47777775;fill:url(#linearGradient13133);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <rect - y="-230.99992" - x="236.99994" - height="9.0000000" - width="20.000000" - id="rect12867" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12869" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12871" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12873" - style="opacity:0.47777775;fill:url(#linearGradient13135);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12875" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12877" - style="opacity:0.47777775;fill:url(#linearGradient13137);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - id="path12879" - d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - id="path12881" - d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " - style="opacity:0.47777775;fill:url(#linearGradient13139);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12883" - style="opacity:0.47777775;fill:url(#linearGradient13141);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - sodipodi:nodetypes="ccss" - id="path12885" - d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " - style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" /> - <path - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12887" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12889" - style="opacity:0.47777775;fill:url(#linearGradient13143);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g transform="translate(-215.0060,252.9994)"> + <path d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " fill="#888a85" fill-opacity="1.0000000" stroke="#555753" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " opacity="1.0000000" fill="url(#linearGradient13131)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13133)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <rect y="-230.99992" x="236.99994" height="9.0000000" width="20.000000" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13135)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13137)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " opacity="0.47777775" fill="url(#linearGradient13139)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13141)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " fill="#555753" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <path transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13143)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g11183" - transform="translate(192.8564,354.8851)"> - <path - sodipodi:nodetypes="cccccccc" - id="path11185" - d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z " - style="fill:#edd400;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient11193);stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" /> - <path - sodipodi:nodetypes="cccccccc" - id="path11187" - d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z " - style="opacity:1.0000000;fill:url(#linearGradient11195);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" /> + <g transform="translate(192.8564,354.8851)"> + <path d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z " fill="#edd400" fill-opacity="1.0000000" fill-rule="evenodd" stroke="url(#linearGradient11193)" stroke-width="1.0000006px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <path d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z " opacity="1.0000000" fill="url(#linearGradient11195)" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000006px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> </g> - <path - style="opacity:1.0000000;fill:url(#radialGradient13211);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000004;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" - d="M 31.626355,14.999520 C 29.626255,14.999520 27.940775,16.079020 27.095785,17.614460 C 26.500875,17.392550 25.851145,17.261090 25.169835,17.261090 C 22.339625,17.261090 20.052305,19.379260 20.052305,21.978590 C 20.052305,22.432340 20.196835,22.835420 20.327445,23.250720 C 18.945125,24.115990 17.979615,25.504290 17.979615,27.155450 C 17.979615,29.808280 18.631235,32.148800 23.207195,31.961300 C 23.252315,31.959450 40.658675,32.058280 40.907605,31.943270 C 43.992815,32.169220 44.979615,29.497540 44.979615,27.243810 C 44.979615,25.543300 44.142675,24.193960 42.670345,23.366220 C 42.718305,23.107660 42.631785,22.815030 42.631785,22.543970 C 42.631785,19.944650 40.326135,17.826480 37.495915,17.826480 C 37.102425,17.826480 36.763515,17.961300 36.395375,18.038500 C 35.656915,16.270380 33.810365,14.999520 31.626355,14.999520 z " - id="path13209" - sodipodi:nodetypes="ccsscsscscsscc" /> - <g - id="g12891" - transform="translate(-230.0203,248.9834)"> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path12893" - d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " - style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path12895" - d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " - style="opacity:1.0000000;fill:url(#linearGradient13145);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12897" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12899" - style="opacity:0.47777775;fill:url(#linearGradient13147);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <rect - y="-230.99992" - x="236.99994" - height="9.0000000" - width="20.000000" - id="rect12901" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12903" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12905" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12907" - style="opacity:0.47777775;fill:url(#linearGradient13149);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12909" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12911" - style="opacity:0.47777775;fill:url(#linearGradient13151);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - id="path12913" - d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - id="path12915" - d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " - style="opacity:0.47777775;fill:url(#linearGradient13153);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12917" - style="opacity:0.47777775;fill:url(#linearGradient13155);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - sodipodi:nodetypes="ccss" - id="path12919" - d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " - style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" /> - <path - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12921" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path12923" - style="opacity:0.47777775;fill:url(#linearGradient13157);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <path d="M 31.626355,14.999520 C 29.626255,14.999520 27.940775,16.079020 27.095785,17.614460 C 26.500875,17.392550 25.851145,17.261090 25.169835,17.261090 C 22.339625,17.261090 20.052305,19.379260 20.052305,21.978590 C 20.052305,22.432340 20.196835,22.835420 20.327445,23.250720 C 18.945125,24.115990 17.979615,25.504290 17.979615,27.155450 C 17.979615,29.808280 18.631235,32.148800 23.207195,31.961300 C 23.252315,31.959450 40.658675,32.058280 40.907605,31.943270 C 43.992815,32.169220 44.979615,29.497540 44.979615,27.243810 C 44.979615,25.543300 44.142675,24.193960 42.670345,23.366220 C 42.718305,23.107660 42.631785,22.815030 42.631785,22.543970 C 42.631785,19.944650 40.326135,17.826480 37.495915,17.826480 C 37.102425,17.826480 36.763515,17.961300 36.395375,18.038500 C 35.656915,16.270380 33.810365,14.999520 31.626355,14.999520 z " opacity="1.0000000" fill="url(#radialGradient13211)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000004" stroke-linejoin="round" stroke-miterlimit="4.0000000" stroke-dasharray="none" stroke-opacity="1.0000000"/> + <g transform="translate(-230.0203,248.9834)"> + <path d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " fill="#888a85" fill-opacity="1.0000000" stroke="#555753" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " opacity="1.0000000" fill="url(#linearGradient13145)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13147)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <rect y="-230.99992" x="236.99994" height="9.0000000" width="20.000000" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13149)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13151)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " opacity="0.47777775" fill="url(#linearGradient13153)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13155)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " fill="#555753" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <path transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="0.47777775" fill="url(#linearGradient13157)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <path - style="opacity:1.0000000;fill:url(#radialGradient13068);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000004;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" - d="M 16.188855,11.000000 C 14.188755,11.000000 12.503275,12.079500 11.658285,13.614940 C 11.063375,13.393030 10.413645,13.261570 9.7323346,13.261570 C 6.9021246,13.261570 4.6148046,15.379740 4.6148046,17.979070 C 4.6148046,18.432820 4.7593346,18.835900 4.8899446,19.251200 C 3.5076246,20.116470 2.5421146,21.504770 2.5421146,23.155930 C 2.5421146,25.808760 3.1937346,28.149280 7.7696946,27.961780 C 7.8148146,27.959930 25.221175,28.058760 25.470105,27.943750 C 28.555315,28.169700 29.542115,25.498020 29.542115,23.244290 C 29.542115,21.543780 28.705175,20.194440 27.232845,19.366700 C 27.280805,19.108140 27.194285,18.815510 27.194285,18.544450 C 27.194285,15.945130 24.888635,13.826960 22.058415,13.826960 C 21.664925,13.826960 21.326015,13.961780 20.957875,14.038980 C 20.219415,12.270860 18.372865,11.000000 16.188855,11.000000 z " - id="path11418" - sodipodi:nodetypes="ccsscsscscsscc" /> + <path d="M 16.188855,11.000000 C 14.188755,11.000000 12.503275,12.079500 11.658285,13.614940 C 11.063375,13.393030 10.413645,13.261570 9.7323346,13.261570 C 6.9021246,13.261570 4.6148046,15.379740 4.6148046,17.979070 C 4.6148046,18.432820 4.7593346,18.835900 4.8899446,19.251200 C 3.5076246,20.116470 2.5421146,21.504770 2.5421146,23.155930 C 2.5421146,25.808760 3.1937346,28.149280 7.7696946,27.961780 C 7.8148146,27.959930 25.221175,28.058760 25.470105,27.943750 C 28.555315,28.169700 29.542115,25.498020 29.542115,23.244290 C 29.542115,21.543780 28.705175,20.194440 27.232845,19.366700 C 27.280805,19.108140 27.194285,18.815510 27.194285,18.544450 C 27.194285,15.945130 24.888635,13.826960 22.058415,13.826960 C 21.664925,13.826960 21.326015,13.961780 20.957875,14.038980 C 20.219415,12.270860 18.372865,11.000000 16.188855,11.000000 z " opacity="1.0000000" fill="url(#radialGradient13068)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000004" stroke-linejoin="round" stroke-miterlimit="4.0000000" stroke-dasharray="none" stroke-opacity="1.0000000"/> </g> </svg> diff --git a/demos/embedded/weatherinfo/icons/weather-sunny-very-few-clouds.svg b/demos/embedded/weatherinfo/icons/weather-sunny-very-few-clouds.svg index 93b0009..a27d30a 100644 --- a/demos/embedded/weatherinfo/icons/weather-sunny-very-few-clouds.svg +++ b/demos/embedded/weatherinfo/icons/weather-sunny-very-few-clouds.svg @@ -1,337 +1,63 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="48px" - height="48px" - id="svg1306" - sodipodi:version="0.32" - inkscape:version="0.46" - sodipodi:docbase="/home/garrett/Source/tango-icon-theme/scalable/status" - sodipodi:docname="weather-sunny-very-few-clouds.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs1308"> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 24 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="48 : 24 : 1" - inkscape:persp3d-origin="24 : 16 : 1" - id="perspective27908" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient6724" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient6722" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient6720" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient6718" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient6716" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient6714" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient6712" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient6839" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6549"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6551" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6553" /> +<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" width="48px" height="48px" id="svg1306"> + <defs id="defs1308"> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient6839" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient id="linearGradient6549"> + <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient6837" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6527"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6530" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6532" /> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient6837" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient id="linearGradient6527"> + <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient6835" - gradientUnits="userSpaceOnUse" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6538"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6540" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6542" /> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient6835" gradientUnits="userSpaceOnUse" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient id="linearGradient6538"> + <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient6833" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6513"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6515" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6517" /> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient6833" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient id="linearGradient6513"> + <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient6831" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6497"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6499" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6501" /> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient6831" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient id="linearGradient6497"> + <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient6829" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6470"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6472" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6474" /> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient6829" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient id="linearGradient6470"> + <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient6827" - gradientUnits="userSpaceOnUse" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - id="linearGradient4083"> - <stop - id="stop4085" - offset="0" - style="stop-color:#ffffff;stop-opacity:0;" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="0.75" - id="stop4089" /> - <stop - id="stop4087" - offset="1" - style="stop-color:#ffffff;stop-opacity:1;" /> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient6827" gradientUnits="userSpaceOnUse" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient id="linearGradient4083"> + <stop id="stop4085" offset="0" stop-color="#ffffff" stop-opacity="0"/> + <stop offset="0.75" id="stop4089" stop-color="#ffffff" stop-opacity="0"/> + <stop id="stop4087" offset="1" stop-color="#ffffff" stop-opacity="1"/> </linearGradient> - <linearGradient - id="linearGradient4032"> - <stop - id="stop4034" - offset="0" - style="stop-color:#fff7c2;stop-opacity:0.63829786" /> - <stop - style="stop-color:#fcaf3e;stop-opacity:0.18348624;" - offset="0.59394139" - id="stop4036" /> - <stop - id="stop4038" - offset="0.83850551" - style="stop-color:#fcaf3e;stop-opacity:0.50458717;" /> - <stop - id="stop4040" - offset="1" - style="stop-color:#fcaf3e;stop-opacity:1;" /> + <linearGradient id="linearGradient4032"> + <stop id="stop4034" offset="0" stop-color="#fff7c2" stop-opacity="0.63829786"/> + <stop offset="0.59394139" id="stop4036" stop-color="#fcaf3e" stop-opacity="0.18348624"/> + <stop id="stop4038" offset="0.83850551" stop-color="#fcaf3e" stop-opacity="0.50458717"/> + <stop id="stop4040" offset="1" stop-color="#fcaf3e" stop-opacity="1"/> </linearGradient> - <linearGradient - id="linearGradient4026"> - <stop - id="stop4028" - offset="0" - style="stop-color:#fff9c6;stop-opacity:1" /> - <stop - style="stop-color:#fff28c;stop-opacity:1;" - offset="0.54166669" - id="stop4042" /> - <stop - id="stop4030" - offset="1" - style="stop-color:#ffea85;stop-opacity:1;" /> + <linearGradient id="linearGradient4026"> + <stop id="stop4028" offset="0" stop-color="#fff9c6" stop-opacity="1"/> + <stop offset="0.54166669" id="stop4042" stop-color="#fff28c" stop-opacity="1"/> + <stop id="stop4030" offset="1" stop-color="#ffea85" stop-opacity="1"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4026" - id="linearGradient3168" - gradientUnits="userSpaceOnUse" - x1="-28.968945" - y1="-25.326815" - x2="-37.19698" - y2="-9.5590506" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4032" - id="radialGradient4020" - cx="-33.519073" - cy="-22.113297" - fx="-33.519073" - fy="-22.113297" - r="9.5" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.487739,1.292402,-1.10267,0.497242,-41.77393,32.41492)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4083" - id="radialGradient4081" - cx="23.99999" - cy="23.381506" - fx="23.99999" - fy="23.381506" - r="19.141981" - gradientTransform="matrix(1.006701,2.235326e-16,-2.23715e-16,1.007522,-0.160816,0.426981)" - gradientUnits="userSpaceOnUse" /> + <linearGradient xlink:href="#linearGradient4026" id="linearGradient3168" gradientUnits="userSpaceOnUse" x1="-28.968945" y1="-25.326815" x2="-37.19698" y2="-9.5590506"/> + <radialGradient xlink:href="#linearGradient4032" id="radialGradient4020" cx="-33.519073" cy="-22.113297" fx="-33.519073" fy="-22.113297" r="9.5" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.487739,1.292402,-1.10267,0.497242,-41.77393,32.41492)"/> + <radialGradient xlink:href="#linearGradient4083" id="radialGradient4081" cx="23.99999" cy="23.381506" fx="23.99999" fy="23.381506" r="19.141981" gradientTransform="matrix(1.006701,2.235326e-16,-2.23715e-16,1.007522,-0.160816,0.426981)" gradientUnits="userSpaceOnUse"/> </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="16.270833" - inkscape:cx="24" - inkscape:cy="24" - inkscape:current-layer="layer1" - showgrid="true" - inkscape:grid-bbox="true" - inkscape:document-units="px" - inkscape:window-width="982" - inkscape:window-height="965" - inkscape:window-x="1280" - inkscape:window-y="28" - inkscape:showpageshadow="false" /> - <metadata - id="metadata1311"> + + <metadata id="metadata1311"> <rdf:RDF> - <cc:Work - rdf:about=""> + <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:title>weather-clear</dc:title> <dc:date>January 2006</dc:date> <dc:creator> @@ -352,241 +78,63 @@ <rdf:li>notification</rdf:li> </rdf:Bag> </dc:subject> - <cc:license - rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" /> + <cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/"/> <dc:contributor> <cc:Agent> <dc:title>Garrett LeSage</dc:title> </cc:Agent> </dc:contributor> </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/by-sa/2.0/"> - <cc:permits - rdf:resource="http://web.resource.org/cc/Reproduction" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/Distribution" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/Notice" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/Attribution" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/ShareAlike" /> + <cc:License rdf:about="http://creativecommons.org/licenses/by-sa/2.0/"> + <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/> + <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/> + <cc:requires rdf:resource="http://web.resource.org/cc/Notice"/> + <cc:requires rdf:resource="http://web.resource.org/cc/Attribution"/> + <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/> + <cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike"/> </cc:License> </rdf:RDF> </metadata> - <g - id="layer1" - inkscape:label="Layer 1" - inkscape:groupmode="layer"> - <g - id="g3936"> - <g - style="opacity:0.7" - id="g4091"> - <path - style="fill:#fce94f;fill-opacity:1;stroke:#fcaf3e;stroke-width:0.73732895;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 24 2.5 L 21.625 9.1875 C 22.399034 9.0641318 23.191406 9 24 9 C 24.808594 9 25.600966 9.0641317 26.375 9.1875 L 24 2.5 z M 8.8125 8.78125 L 11.84375 15.21875 C 12.779034 13.928569 13.928569 12.779034 15.21875 11.84375 L 8.8125 8.78125 z M 39.21875 8.78125 L 32.78125 11.84375 C 34.071431 12.779034 35.220966 13.928569 36.15625 15.21875 L 39.21875 8.78125 z M 9.1875 21.59375 L 2.5 23.96875 L 9.1875 26.34375 C 9.0673373 25.57952 9 24.797813 9 24 C 9 23.180625 9.0608858 22.377571 9.1875 21.59375 z M 38.8125 21.625 C 38.935868 22.399034 39 23.191406 39 24 C 39 24.808594 38.935868 25.600966 38.8125 26.375 L 45.5 24 L 38.8125 21.625 z M 11.84375 32.78125 L 8.8125 39.1875 L 15.21875 36.15625 C 13.928569 35.220966 12.779034 34.071431 11.84375 32.78125 z M 36.15625 32.78125 C 35.229789 34.05926 34.087617 35.194799 32.8125 36.125 L 39.21875 39.1875 L 36.15625 32.78125 z M 21.625 38.8125 L 24 45.5 L 26.375 38.8125 C 25.600966 38.935868 24.808594 39 24 39 C 23.191406 39 22.399034 38.935868 21.625 38.8125 z " - id="path7492" /> - <path - style="fill:none;fill-opacity:1;stroke:url(#radialGradient4081);stroke-width:0.84646249;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 24 5.25 L 22.65625 9.0625 C 23.098888 9.0231486 23.547187 9 24 9 C 24.452813 9 24.901112 9.0231486 25.34375 9.0625 L 24 5.25 z M 10.78125 10.75 L 12.5 14.375 C 13.071538 13.694089 13.724004 13.038745 14.40625 12.46875 L 10.78125 10.75 z M 37.25 10.75 L 33.625 12.46875 C 34.304675 13.038189 34.961811 13.695325 35.53125 14.375 L 37.25 10.75 z M 9.0625 22.625 L 5.28125 23.96875 L 9.0625 25.3125 C 9.024981 24.880146 9 24.442031 9 24 C 9 23.536406 9.0212735 23.077908 9.0625 22.625 z M 38.9375 22.65625 C 38.976851 23.098888 39 23.547187 39 24 C 39 24.452813 38.976851 24.901112 38.9375 25.34375 L 42.71875 24 L 38.9375 22.65625 z M 35.53125 33.59375 C 34.958293 34.27954 34.309985 34.957363 33.625 35.53125 L 37.25 37.25 L 35.53125 33.59375 z M 12.5 33.625 L 10.78125 37.21875 L 14.375 35.5 C 13.702932 34.935884 13.064116 34.297068 12.5 33.625 z M 22.65625 38.9375 L 24 42.71875 L 25.34375 38.9375 C 24.901112 38.976851 24.452813 39 24 39 C 23.547187 39 23.098888 38.976851 22.65625 38.9375 z " - id="path7494" /> + <g id="layer1"> + <g> + <g opacity="0.7"> + <path d="M 24 2.5 L 21.625 9.1875 C 22.399034 9.0641318 23.191406 9 24 9 C 24.808594 9 25.600966 9.0641317 26.375 9.1875 L 24 2.5 z M 8.8125 8.78125 L 11.84375 15.21875 C 12.779034 13.928569 13.928569 12.779034 15.21875 11.84375 L 8.8125 8.78125 z M 39.21875 8.78125 L 32.78125 11.84375 C 34.071431 12.779034 35.220966 13.928569 36.15625 15.21875 L 39.21875 8.78125 z M 9.1875 21.59375 L 2.5 23.96875 L 9.1875 26.34375 C 9.0673373 25.57952 9 24.797813 9 24 C 9 23.180625 9.0608858 22.377571 9.1875 21.59375 z M 38.8125 21.625 C 38.935868 22.399034 39 23.191406 39 24 C 39 24.808594 38.935868 25.600966 38.8125 26.375 L 45.5 24 L 38.8125 21.625 z M 11.84375 32.78125 L 8.8125 39.1875 L 15.21875 36.15625 C 13.928569 35.220966 12.779034 34.071431 11.84375 32.78125 z M 36.15625 32.78125 C 35.229789 34.05926 34.087617 35.194799 32.8125 36.125 L 39.21875 39.1875 L 36.15625 32.78125 z M 21.625 38.8125 L 24 45.5 L 26.375 38.8125 C 25.600966 38.935868 24.808594 39 24 39 C 23.191406 39 22.399034 38.935868 21.625 38.8125 z " fill="#fce94f" fill-opacity="1" stroke="#fcaf3e" stroke-width="0.73732895" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> + <path d="M 24 5.25 L 22.65625 9.0625 C 23.098888 9.0231486 23.547187 9 24 9 C 24.452813 9 24.901112 9.0231486 25.34375 9.0625 L 24 5.25 z M 10.78125 10.75 L 12.5 14.375 C 13.071538 13.694089 13.724004 13.038745 14.40625 12.46875 L 10.78125 10.75 z M 37.25 10.75 L 33.625 12.46875 C 34.304675 13.038189 34.961811 13.695325 35.53125 14.375 L 37.25 10.75 z M 9.0625 22.625 L 5.28125 23.96875 L 9.0625 25.3125 C 9.024981 24.880146 9 24.442031 9 24 C 9 23.536406 9.0212735 23.077908 9.0625 22.625 z M 38.9375 22.65625 C 38.976851 23.098888 39 23.547187 39 24 C 39 24.452813 38.976851 24.901112 38.9375 25.34375 L 42.71875 24 L 38.9375 22.65625 z M 35.53125 33.59375 C 34.958293 34.27954 34.309985 34.957363 33.625 35.53125 L 37.25 37.25 L 35.53125 33.59375 z M 12.5 33.625 L 10.78125 37.21875 L 14.375 35.5 C 13.702932 34.935884 13.064116 34.297068 12.5 33.625 z M 22.65625 38.9375 L 24 42.71875 L 25.34375 38.9375 C 24.901112 38.976851 24.452813 39 24 39 C 23.547187 39 23.098888 38.976851 22.65625 38.9375 z " fill="none" fill-opacity="1" stroke="url(#radialGradient4081)" stroke-width="0.84646249" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> </g> - <g - id="g4046"> - <g - id="g3931"> - <path - inkscape:r_cy="true" - inkscape:r_cx="true" - transform="matrix(0.778062,-1.061285,1.061287,0.778062,67.47952,3.641324)" - d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" - sodipodi:ry="9.5" - sodipodi:rx="9.5" - sodipodi:cy="-17.5" - sodipodi:cx="-32" - id="path7498" - style="fill:#ffee54;fill-opacity:1;stroke:#fcaf3e;stroke-width:0.75991178;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - sodipodi:type="arc" /> - <path - inkscape:r_cy="true" - inkscape:r_cx="true" - transform="matrix(1.244257,-0.167707,0.216642,1.251844,67.61648,40.527)" - d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" - sodipodi:ry="9.5" - sodipodi:rx="9.5" - sodipodi:cy="-17.5" - sodipodi:cx="-32" - id="path7500" - style="fill:url(#radialGradient4020);fill-opacity:1;stroke:none;stroke-width:1.01737845;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - sodipodi:type="arc" /> - <path - inkscape:r_cy="true" - inkscape:r_cx="true" - transform="matrix(0.715791,-0.976349,0.97635,0.715792,64.00044,5.269544)" - d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" - sodipodi:ry="9.5" - sodipodi:rx="9.5" - sodipodi:cy="-17.5" - sodipodi:cx="-32" - id="path7502" - style="fill:none;fill-opacity:1;stroke:url(#linearGradient3168);stroke-width:0.82601947;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - sodipodi:type="arc" /> + <g> + <g> + <path transform="matrix(0.778062,-1.061285,1.061287,0.778062,67.47952,3.641324)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" fill="#ffee54" fill-opacity="1" stroke="#fcaf3e" stroke-width="0.75991178" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> + <path transform="matrix(1.244257,-0.167707,0.216642,1.251844,67.61648,40.527)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" fill="url(#radialGradient4020)" fill-opacity="1" stroke="none" stroke-width="1.01737845" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> + <path transform="matrix(0.715791,-0.976349,0.97635,0.715792,64.00044,5.269544)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" fill="none" fill-opacity="1" stroke="url(#linearGradient3168)" stroke-width="0.82601947" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> </g> </g> </g> - <g - id="g6783" - transform="translate(-263.99,459.9855)"> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path6785" - d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " - style="fill:#c4c5c2;fill-opacity:1.0000000;stroke:#888a85;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - sodipodi:nodetypes="ccsscsssscsscc" - id="path6787" - d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " - style="opacity:1.0000000;fill:url(#linearGradient6827);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <g - id="g6789"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6791" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient6829);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6793" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" /> + <g transform="translate(-263.99,459.9855)"> + <path d="M 280.50000,-445.50000 C 278.22917,-445.50000 276.39009,-443.94972 275.78125,-441.87500 C 275.08802,-442.23883 274.33674,-442.50000 273.50000,-442.50000 C 270.74000,-442.50000 268.49999,-440.26001 268.50000,-437.50000 C 268.50000,-436.92107 268.66252,-436.39230 268.84375,-435.87500 C 267.47028,-435.10426 266.50000,-433.68600 266.50000,-432.00000 C 266.50000,-429.51600 268.51600,-427.49999 271.00000,-427.50000 C 271.17713,-427.50000 289.82287,-427.50000 290.00000,-427.50000 C 292.48399,-427.50000 294.50000,-429.51600 294.50000,-432.00000 C 294.50000,-433.68600 293.52972,-435.10426 292.15625,-435.87500 C 292.33749,-436.39229 292.50000,-436.92108 292.50000,-437.50000 C 292.50000,-440.26000 290.26000,-442.49999 287.50000,-442.50000 C 286.66326,-442.50000 285.91198,-442.23883 285.21875,-441.87500 C 284.60991,-443.94972 282.77083,-445.50000 280.50000,-445.50000 z " fill="#c4c5c2" fill-opacity="1.0000000" stroke="#888a85" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-445.00000 C 278.31028,-445.00000 276.77640,-443.66423 276.10445,-441.15648 C 275.43599,-441.50010 274.55686,-441.98983 273.75000,-441.98983 C 271.03349,-441.98983 268.99486,-440.05101 268.99487,-437.44429 C 268.99487,-436.89752 269.26208,-436.11085 269.43683,-435.62228 C 268.11240,-434.89433 267.00000,-433.73178 267.00000,-432.24973 C 267.00000,-429.90368 268.54617,-427.99964 271.33928,-427.99964 C 271.51009,-427.99964 289.48992,-427.99964 289.66072,-427.99964 C 292.43173,-427.99964 294.00000,-429.90368 294.00000,-432.24973 C 294.00000,-433.84210 292.88760,-434.91642 291.56317,-435.64437 C 291.73793,-436.13293 292.02724,-436.89753 292.02724,-437.44429 C 292.02724,-440.05100 289.91143,-442.01192 287.25001,-442.01193 C 286.44314,-442.01193 285.60820,-441.52219 284.93974,-441.17857 C 284.29089,-443.60011 282.68973,-445.00000 280.50000,-445.00000 z " opacity="1.0000000" fill="url(#linearGradient6827)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-24.19818,21.86331)" opacity="1.0000000" fill="url(#linearGradient6829)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <rect - y="-438.00000" - x="271.00000" - height="9.0000000" - width="20.000000" - id="rect6795" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" /> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path6797" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <g - id="g6799"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6801" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient6831);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6803" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" /> + <rect y="-438.00000" x="271.00000" height="9.0000000" width="20.000000" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830195,-35.68869)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19811,24.86321)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-17.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6831)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g6805"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6807" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient6833);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6809" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" /> + <g> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6833)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(-1.000000,0.000000)" - id="g6811"> - <path - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " - id="path6813" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient6835);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " - id="path6815" /> + <g transform="translate(-1.000000,0.000000)"> + <path d="M 280.46875,-440.96875 C 276.88937,-440.96875 274.00000,-438.04812 274.00000,-434.46875 C 274.00000,-432.09807 275.34943,-430.13096 277.25000,-429.00000 L 283.71875,-429.00000 C 285.61932,-430.13096 286.96875,-432.12931 286.96875,-434.50000 C 286.96875,-438.07938 284.04812,-440.96875 280.46875,-440.96875 z " opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 280.50000,-441.00000 C 276.91200,-441.00000 274.00000,-438.08799 274.00000,-434.50000 C 274.00000,-432.12360 275.34485,-430.13368 277.25000,-429.00000 L 283.75000,-429.00000 C 285.65515,-430.13368 287.00000,-432.12360 287.00000,-434.50000 C 287.00000,-438.08800 284.08800,-440.99999 280.50000,-441.00000 z " opacity="1.0000000" fill="url(#linearGradient6835)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <path - transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - sodipodi:ry="3.3125000" - sodipodi:rx="3.3125000" - sodipodi:cy="-437.59375" - sodipodi:cx="288.37500" - id="path6817" - style="opacity:1.0000000;fill:url(#linearGradient6837);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - sodipodi:nodetypes="ccss" - id="path6819" - d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " - style="fill:#888a85;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" /> - <g - transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)" - id="g6821"> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#c4c5c2;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6823" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:url(#linearGradient6839);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path6825" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" /> + <path transform="matrix(0.905660,0.000000,0.000000,0.905660,9.830296,-35.68884)" d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" opacity="1.0000000" fill="url(#linearGradient6837)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 292.95640,-437.33396 C 292.95487,-434.64940 289.68714,-433.62001 289.68714,-433.62001 C 289.68714,-433.62001 292.03588,-435.24596 292.02399,-437.32502 C 292.02399,-437.32502 292.95640,-437.33396 292.95640,-437.33396 z " fill="#888a85" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <g transform="matrix(1.142857,0.000000,0.000000,1.142857,-28.57139,67.00008)"> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="#c4c5c2" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-31.19818,24.86331)" opacity="1.0000000" fill="url(#linearGradient6839)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> </g> diff --git a/demos/embedded/weatherinfo/icons/weather-sunny.svg b/demos/embedded/weatherinfo/icons/weather-sunny.svg index 0360ac7..248199c 100644 --- a/demos/embedded/weatherinfo/icons/weather-sunny.svg +++ b/demos/embedded/weatherinfo/icons/weather-sunny.svg @@ -1,1225 +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" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="48px" - height="48px" - id="svg1306" - sodipodi:version="0.32" - inkscape:version="0.46" - sodipodi:docbase="/home/garrett/Source/tango-icon-theme/scalable/status" - sodipodi:docname="weather-sunny.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs1308"> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 24 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="48 : 24 : 1" - inkscape:persp3d-origin="24 : 16 : 1" - id="perspective37214" /> - <linearGradient - id="linearGradient4083"> - <stop - id="stop4085" - offset="0" - style="stop-color:#ffffff;stop-opacity:0;" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="0.75" - id="stop4089" /> - <stop - id="stop4087" - offset="1" - style="stop-color:#ffffff;stop-opacity:1;" /> +<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" width="48px" height="48px" id="svg1306"> + <defs id="defs1308"> + <linearGradient id="linearGradient4083"> + <stop id="stop4085" offset="0" stop-color="#ffffff" stop-opacity="0"/> + <stop offset="0.75" id="stop4089" stop-color="#ffffff" stop-opacity="0"/> + <stop id="stop4087" offset="1" stop-color="#ffffff" stop-opacity="1"/> </linearGradient> - <linearGradient - id="linearGradient4032"> - <stop - id="stop4034" - offset="0" - style="stop-color:#fff7c2;stop-opacity:0.63829786" /> - <stop - style="stop-color:#fcaf3e;stop-opacity:0.18348624;" - offset="0.59394139" - id="stop4036" /> - <stop - id="stop4038" - offset="0.83850551" - style="stop-color:#fcaf3e;stop-opacity:0.50458717;" /> - <stop - id="stop4040" - offset="1" - style="stop-color:#fcaf3e;stop-opacity:1;" /> + <linearGradient id="linearGradient4032"> + <stop id="stop4034" offset="0" stop-color="#fff7c2" stop-opacity="0.63829786"/> + <stop offset="0.59394139" id="stop4036" stop-color="#fcaf3e" stop-opacity="0.18348624"/> + <stop id="stop4038" offset="0.83850551" stop-color="#fcaf3e" stop-opacity="0.50458717"/> + <stop id="stop4040" offset="1" stop-color="#fcaf3e" stop-opacity="1"/> </linearGradient> - <linearGradient - id="linearGradient4026"> - <stop - id="stop4028" - offset="0" - style="stop-color:#fff9c6;stop-opacity:1" /> - <stop - style="stop-color:#fff28c;stop-opacity:1;" - offset="0.54166669" - id="stop4042" /> - <stop - id="stop4030" - offset="1" - style="stop-color:#ffea85;stop-opacity:1;" /> + <linearGradient id="linearGradient4026"> + <stop id="stop4028" offset="0" stop-color="#fff9c6" stop-opacity="1"/> + <stop offset="0.54166669" id="stop4042" stop-color="#fff28c" stop-opacity="1"/> + <stop id="stop4030" offset="1" stop-color="#ffea85" stop-opacity="1"/> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2298" - id="linearGradient7748" - gradientUnits="userSpaceOnUse" - x1="-27.006643" - y1="-37.550461" - x2="-34.700153" - y2="-4.4493785" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient7746" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3478" - id="linearGradient7744" - gradientUnits="userSpaceOnUse" - x1="11.149398" - y1="-43.997444" - x2="4.9625983" - y2="-8.3080902" /> - <linearGradient - inkscape:collect="always" - id="linearGradient4829"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop4831" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop4833" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient3478"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop3480" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop3482" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2298"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2300" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2302" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient3347"> - <stop - style="stop-color:#edd400;stop-opacity:1;" - offset="0" - id="stop3349" /> - <stop - style="stop-color:#edd400;stop-opacity:0;" - offset="1" - id="stop3351" /> - </linearGradient> - <linearGradient - id="linearGradient2527"> - <stop - style="stop-color:#fcaf3e;stop-opacity:0;" - offset="0" - id="stop2529" /> - <stop - id="stop4022" - offset="0.66644967" - style="stop-color:#fcaf3e;stop-opacity:0.17431192;" /> - <stop - style="stop-color:#fcaf3e;stop-opacity:0.55963302;" - offset="0.86458337" - id="stop4024" /> - <stop - style="stop-color:#fcaf3e;stop-opacity:1;" - offset="1" - id="stop2531" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2500"> - <stop - style="stop-color:#fce94f;stop-opacity:1;" - offset="0" - id="stop2502" /> - <stop - style="stop-color:#fce94f;stop-opacity:0;" - offset="1" - id="stop2504" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2392"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop2394" /> - <stop - style="stop-color:#eeeeec;stop-opacity:0;" - offset="1" - id="stop2396" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2254"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2256" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2258" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2263" - gradientUnits="userSpaceOnUse" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" - gradientTransform="translate(-1.608757,3.097272)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2267" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2271" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2275" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2279" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2283" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2287" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2291" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2295" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2299" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2303" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.707748,-5.784024)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2311" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2350" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(16.14002,24.66420)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2352" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.932144,25.87240)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2354" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.356636,23.86870)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2356" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(11.19027,26.52035)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2358" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(10.30638,19.27251)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2360" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2362" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2364" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2366" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2368" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.207586,21.30544)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2372" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2398" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2426" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2428" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2430" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-1.608757,3.097272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2432" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2434" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2436" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2438" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2440" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2442" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2446" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2448" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2451" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2457" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2460" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2463" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2469" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2472" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2475" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2478" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2483" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(0.842481,-3.998086)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2506" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2509" - gradientUnits="userSpaceOnUse" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2513" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - x1="38.857941" - y1="-18.407482" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2517" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient2533" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2537" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(17.33814,3.415985)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2541" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2555" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.499805,1.708617)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2563" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.726830,2.481141)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3347" - id="linearGradient3353" - x1="23.303862" - y1="29.115711" - x2="29.750000" - y2="46.092930" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3366" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3368" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3372" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3374" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3376" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3378" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3380" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3383" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3386" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3389" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3392" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3395" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.674812,3.088370)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3398" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-2.033818,0.561720)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3401" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.197595,2.690414)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3405" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.561802,-4.303373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1514" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(88.49344,-9.697877)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1516" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1518" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient1520" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1522" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.197595,2.690414)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1524" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-2.033818,0.561720)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1526" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.674812,3.088370)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1528" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1530" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1532" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1534" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1536" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient1538" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(57.97693,-10.56876)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient1557" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4829" - id="radialGradient4835" - cx="-35.001785" - cy="-1.1439217" - fx="-35.001785" - fy="-1.1439217" - r="17.500893" - gradientTransform="matrix(1.000000,0.000000,0.000000,0.565657,-5.564992e-15,-0.496855)" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2298" - id="linearGradient1427" - gradientUnits="userSpaceOnUse" - x1="-27.006643" - y1="-37.550461" - x2="-34.700153" - y2="-4.4493785" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3478" - id="linearGradient1431" - gradientUnits="userSpaceOnUse" - x1="11.149398" - y1="-43.997444" - x2="4.9625983" - y2="-8.3080902" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3478" - id="linearGradient14128" - gradientUnits="userSpaceOnUse" - x1="11.149398" - y1="-43.997444" - x2="4.9625983" - y2="-8.3080902" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient14130" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2298" - id="linearGradient14132" - gradientUnits="userSpaceOnUse" - x1="-27.006643" - y1="-37.550461" - x2="-34.700153" - y2="-4.4493785" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient3151" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2298" - id="linearGradient3153" - gradientUnits="userSpaceOnUse" - x1="-27.006643" - y1="-37.550461" - x2="-34.700153" - y2="-4.4493785" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3478" - id="linearGradient3155" - gradientUnits="userSpaceOnUse" - x1="11.149398" - y1="-43.997444" - x2="4.9625983" - y2="-8.3080902" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3478" - id="linearGradient3161" - gradientUnits="userSpaceOnUse" - x1="11.149398" - y1="-43.997444" - x2="4.9625983" - y2="-8.3080902" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4026" - id="linearGradient3168" - gradientUnits="userSpaceOnUse" - x1="-28.968945" - y1="-25.326815" - x2="-37.19698" - y2="-9.5590506" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4032" - id="radialGradient4020" - cx="-33.519073" - cy="-22.113297" - fx="-33.519073" - fy="-22.113297" - r="9.5" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.487739,1.292402,-1.10267,0.497242,-41.77393,32.41492)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3478" - id="linearGradient4057" - gradientUnits="userSpaceOnUse" - x1="11.149398" - y1="-43.997444" - x2="4.9625983" - y2="-8.3080902" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient4083" - id="radialGradient4081" - cx="23.99999" - cy="23.381506" - fx="23.99999" - fy="23.381506" - r="19.141981" - gradientTransform="matrix(1.006701,2.235326e-16,-2.23715e-16,1.007522,-0.160816,0.426981)" - gradientUnits="userSpaceOnUse" /> + <linearGradient xlink:href="#linearGradient4026" id="linearGradient3168" gradientUnits="userSpaceOnUse" x1="-28.968945" y1="-25.326815" x2="-37.19698" y2="-9.5590506"/> + <radialGradient xlink:href="#linearGradient4032" id="radialGradient4020" cx="-33.519073" cy="-22.113297" fx="-33.519073" fy="-22.113297" r="9.5" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.487739,1.292402,-1.10267,0.497242,-41.77393,32.41492)"/> + <radialGradient xlink:href="#linearGradient4083" id="radialGradient4081" cx="23.99999" cy="23.381506" fx="23.99999" fy="23.381506" r="19.141981" gradientTransform="matrix(1.006701,2.235326e-16,-2.23715e-16,1.007522,-0.160816,0.426981)" gradientUnits="userSpaceOnUse"/> </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="10.54135" - inkscape:cx="23.386176" - inkscape:cy="24.950603" - inkscape:current-layer="layer1" - showgrid="true" - inkscape:grid-bbox="true" - inkscape:document-units="px" - inkscape:window-width="1013" - inkscape:window-height="965" - inkscape:window-x="0" - inkscape:window-y="0" - inkscape:showpageshadow="false" /> - <metadata - id="metadata1311"> + + <metadata id="metadata1311"> <rdf:RDF> - <cc:Work - rdf:about=""> + <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:title>weather-clear</dc:title> <dc:date>January 2006</dc:date> <dc:creator> @@ -1240,89 +47,34 @@ <rdf:li>notification</rdf:li> </rdf:Bag> </dc:subject> - <cc:license - rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" /> + <cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/"/> <dc:contributor> <cc:Agent> <dc:title>Garrett LeSage</dc:title> </cc:Agent> </dc:contributor> </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/by-sa/2.0/"> - <cc:permits - rdf:resource="http://web.resource.org/cc/Reproduction" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/Distribution" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/Notice" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/Attribution" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/ShareAlike" /> + <cc:License rdf:about="http://creativecommons.org/licenses/by-sa/2.0/"> + <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/> + <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/> + <cc:requires rdf:resource="http://web.resource.org/cc/Notice"/> + <cc:requires rdf:resource="http://web.resource.org/cc/Attribution"/> + <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/> + <cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike"/> </cc:License> </rdf:RDF> </metadata> - <g - id="layer1" - inkscape:label="Layer 1" - inkscape:groupmode="layer"> - <g - id="g3936"> - <g - style="opacity:0.7" - id="g4091"> - <path - style="fill:#fce94f;fill-opacity:1;stroke:#fcaf3e;stroke-width:0.73732895;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 24 2.5 L 21.625 9.1875 C 22.399034 9.0641318 23.191406 9 24 9 C 24.808594 9 25.600966 9.0641317 26.375 9.1875 L 24 2.5 z M 8.8125 8.78125 L 11.84375 15.21875 C 12.779034 13.928569 13.928569 12.779034 15.21875 11.84375 L 8.8125 8.78125 z M 39.21875 8.78125 L 32.78125 11.84375 C 34.071431 12.779034 35.220966 13.928569 36.15625 15.21875 L 39.21875 8.78125 z M 9.1875 21.59375 L 2.5 23.96875 L 9.1875 26.34375 C 9.0673373 25.57952 9 24.797813 9 24 C 9 23.180625 9.0608858 22.377571 9.1875 21.59375 z M 38.8125 21.625 C 38.935868 22.399034 39 23.191406 39 24 C 39 24.808594 38.935868 25.600966 38.8125 26.375 L 45.5 24 L 38.8125 21.625 z M 11.84375 32.78125 L 8.8125 39.1875 L 15.21875 36.15625 C 13.928569 35.220966 12.779034 34.071431 11.84375 32.78125 z M 36.15625 32.78125 C 35.229789 34.05926 34.087617 35.194799 32.8125 36.125 L 39.21875 39.1875 L 36.15625 32.78125 z M 21.625 38.8125 L 24 45.5 L 26.375 38.8125 C 25.600966 38.935868 24.808594 39 24 39 C 23.191406 39 22.399034 38.935868 21.625 38.8125 z " - id="path7492" /> - <path - style="fill:none;fill-opacity:1;stroke:url(#radialGradient4081);stroke-width:0.84646249;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 24 5.25 L 22.65625 9.0625 C 23.098888 9.0231486 23.547187 9 24 9 C 24.452813 9 24.901112 9.0231486 25.34375 9.0625 L 24 5.25 z M 10.78125 10.75 L 12.5 14.375 C 13.071538 13.694089 13.724004 13.038745 14.40625 12.46875 L 10.78125 10.75 z M 37.25 10.75 L 33.625 12.46875 C 34.304675 13.038189 34.961811 13.695325 35.53125 14.375 L 37.25 10.75 z M 9.0625 22.625 L 5.28125 23.96875 L 9.0625 25.3125 C 9.024981 24.880146 9 24.442031 9 24 C 9 23.536406 9.0212735 23.077908 9.0625 22.625 z M 38.9375 22.65625 C 38.976851 23.098888 39 23.547187 39 24 C 39 24.452813 38.976851 24.901112 38.9375 25.34375 L 42.71875 24 L 38.9375 22.65625 z M 35.53125 33.59375 C 34.958293 34.27954 34.309985 34.957363 33.625 35.53125 L 37.25 37.25 L 35.53125 33.59375 z M 12.5 33.625 L 10.78125 37.21875 L 14.375 35.5 C 13.702932 34.935884 13.064116 34.297068 12.5 33.625 z M 22.65625 38.9375 L 24 42.71875 L 25.34375 38.9375 C 24.901112 38.976851 24.452813 39 24 39 C 23.547187 39 23.098888 38.976851 22.65625 38.9375 z " - id="path7494" /> + <g id="layer1"> + <g> + <g opacity="0.7"> + <path d="M 24 2.5 L 21.625 9.1875 C 22.399034 9.0641318 23.191406 9 24 9 C 24.808594 9 25.600966 9.0641317 26.375 9.1875 L 24 2.5 z M 8.8125 8.78125 L 11.84375 15.21875 C 12.779034 13.928569 13.928569 12.779034 15.21875 11.84375 L 8.8125 8.78125 z M 39.21875 8.78125 L 32.78125 11.84375 C 34.071431 12.779034 35.220966 13.928569 36.15625 15.21875 L 39.21875 8.78125 z M 9.1875 21.59375 L 2.5 23.96875 L 9.1875 26.34375 C 9.0673373 25.57952 9 24.797813 9 24 C 9 23.180625 9.0608858 22.377571 9.1875 21.59375 z M 38.8125 21.625 C 38.935868 22.399034 39 23.191406 39 24 C 39 24.808594 38.935868 25.600966 38.8125 26.375 L 45.5 24 L 38.8125 21.625 z M 11.84375 32.78125 L 8.8125 39.1875 L 15.21875 36.15625 C 13.928569 35.220966 12.779034 34.071431 11.84375 32.78125 z M 36.15625 32.78125 C 35.229789 34.05926 34.087617 35.194799 32.8125 36.125 L 39.21875 39.1875 L 36.15625 32.78125 z M 21.625 38.8125 L 24 45.5 L 26.375 38.8125 C 25.600966 38.935868 24.808594 39 24 39 C 23.191406 39 22.399034 38.935868 21.625 38.8125 z " fill="#fce94f" fill-opacity="1" stroke="#fcaf3e" stroke-width="0.73732895" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> + <path d="M 24 5.25 L 22.65625 9.0625 C 23.098888 9.0231486 23.547187 9 24 9 C 24.452813 9 24.901112 9.0231486 25.34375 9.0625 L 24 5.25 z M 10.78125 10.75 L 12.5 14.375 C 13.071538 13.694089 13.724004 13.038745 14.40625 12.46875 L 10.78125 10.75 z M 37.25 10.75 L 33.625 12.46875 C 34.304675 13.038189 34.961811 13.695325 35.53125 14.375 L 37.25 10.75 z M 9.0625 22.625 L 5.28125 23.96875 L 9.0625 25.3125 C 9.024981 24.880146 9 24.442031 9 24 C 9 23.536406 9.0212735 23.077908 9.0625 22.625 z M 38.9375 22.65625 C 38.976851 23.098888 39 23.547187 39 24 C 39 24.452813 38.976851 24.901112 38.9375 25.34375 L 42.71875 24 L 38.9375 22.65625 z M 35.53125 33.59375 C 34.958293 34.27954 34.309985 34.957363 33.625 35.53125 L 37.25 37.25 L 35.53125 33.59375 z M 12.5 33.625 L 10.78125 37.21875 L 14.375 35.5 C 13.702932 34.935884 13.064116 34.297068 12.5 33.625 z M 22.65625 38.9375 L 24 42.71875 L 25.34375 38.9375 C 24.901112 38.976851 24.452813 39 24 39 C 23.547187 39 23.098888 38.976851 22.65625 38.9375 z " fill="none" fill-opacity="1" stroke="url(#radialGradient4081)" stroke-width="0.84646249" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> </g> - <g - id="g4046"> - <g - id="g3931"> - <path - inkscape:r_cy="true" - inkscape:r_cx="true" - transform="matrix(0.778062,-1.061285,1.061287,0.778062,67.47952,3.641324)" - d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" - sodipodi:ry="9.5" - sodipodi:rx="9.5" - sodipodi:cy="-17.5" - sodipodi:cx="-32" - id="path7498" - style="fill:#ffee54;fill-opacity:1;stroke:#fcaf3e;stroke-width:0.75991178;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - sodipodi:type="arc" /> - <path - inkscape:r_cy="true" - inkscape:r_cx="true" - transform="matrix(1.244257,-0.167707,0.216642,1.251844,67.61648,40.527)" - d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" - sodipodi:ry="9.5" - sodipodi:rx="9.5" - sodipodi:cy="-17.5" - sodipodi:cx="-32" - id="path7500" - style="fill:url(#radialGradient4020);fill-opacity:1;stroke:none;stroke-width:1.01737845;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - sodipodi:type="arc" /> - <path - inkscape:r_cy="true" - inkscape:r_cx="true" - transform="matrix(0.715791,-0.976349,0.97635,0.715792,64.00044,5.269544)" - d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" - sodipodi:ry="9.5" - sodipodi:rx="9.5" - sodipodi:cy="-17.5" - sodipodi:cx="-32" - id="path7502" - style="fill:none;fill-opacity:1;stroke:url(#linearGradient3168);stroke-width:0.82601947;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - sodipodi:type="arc" /> + <g> + <g> + <path transform="matrix(0.778062,-1.061285,1.061287,0.778062,67.47952,3.641324)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" fill="#ffee54" fill-opacity="1" stroke="#fcaf3e" stroke-width="0.75991178" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> + <path transform="matrix(1.244257,-0.167707,0.216642,1.251844,67.61648,40.527)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" fill="url(#radialGradient4020)" fill-opacity="1" stroke="none" stroke-width="1.01737845" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> + <path transform="matrix(0.715791,-0.976349,0.97635,0.715792,64.00044,5.269544)" d="M -22.5 -17.5 A 9.5 9.5 0 1 1 -41.5,-17.5 A 9.5 9.5 0 1 1 -22.5 -17.5 z" fill="none" fill-opacity="1" stroke="url(#linearGradient3168)" stroke-width="0.82601947" stroke-linecap="square" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/> </g> </g> </g> diff --git a/demos/embedded/weatherinfo/icons/weather-thundershower.svg b/demos/embedded/weatherinfo/icons/weather-thundershower.svg index 406abfa..e1c2286 100644 --- a/demos/embedded/weatherinfo/icons/weather-thundershower.svg +++ b/demos/embedded/weatherinfo/icons/weather-thundershower.svg @@ -1,4064 +1,108 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="48px" - height="48px" - id="svg1306" - sodipodi:version="0.32" - inkscape:version="0.46" - sodipodi:docbase="/home/rcollier/Work/Novell/Tango/weather" - sodipodi:docname="weather-thundershower.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs1308"> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient12225" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient12223" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient12213" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient12211" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient12253" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient12251" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient12249" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient12247" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient12201" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient12199" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - id="linearGradient5358"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop5360" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop5362" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient12237" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <linearGradient - inkscape:collect="always" - id="linearGradient5346"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop5348" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop5350" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient12235" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 24 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="48 : 24 : 1" - inkscape:persp3d-origin="24 : 16 : 1" - id="perspective22454" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8397"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8400" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8402" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8397" - id="linearGradient13503" - gradientUnits="userSpaceOnUse" - x1="238.00478" - y1="-388.47476" - x2="245.65462" - y2="-382.64539" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8315"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8317" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8319" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8315" - id="linearGradient13501" - gradientUnits="userSpaceOnUse" - x1="230.87598" - y1="-390.43951" - x2="235.25652" - y2="-386.95901" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8381"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8383" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8385" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8381" - id="linearGradient13499" - gradientUnits="userSpaceOnUse" - x1="246.74042" - y1="-391.31381" - x2="252.69785" - y2="-385.35165" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8331"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8333" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8335" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8331" - id="linearGradient13497" - gradientUnits="userSpaceOnUse" - x1="240.07379" - y1="-393.40720" - x2="245.82706" - y2="-388.55029" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8302"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8304" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8306" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8302" - id="linearGradient13495" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(69.00000,155.0000)" - x1="228.50261" - y1="-392.30591" - x2="266.36395" - y2="-379.26862" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13143" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient13141" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient13139" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-35.00007,207.0001)" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13137" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient13135" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient13133" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient13131" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-34.00007,207.0001)" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8874" - id="linearGradient11195" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.15871,7.082841)" - x1="-190.47688" - y1="-332.51181" - x2="-196.19046" - y2="-328.53433" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8904" - id="linearGradient11193" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.80516,2.840199)" - x1="-191.28896" - y1="-328.07861" - x2="-192.41396" - y2="-315.32861" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8874"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8876" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop8878" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8874" - id="linearGradient11191" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.15871,7.082841)" - x1="-190.47688" - y1="-332.51181" - x2="-196.19046" - y2="-328.53433" /> - <linearGradient - inkscape:collect="always" - id="linearGradient8904"> - <stop - style="stop-color:#fcaf3e;stop-opacity:1;" - offset="0" - id="stop8906" /> - <stop - style="stop-color:#fcaf3e;stop-opacity:0;" - offset="1" - id="stop8908" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8904" - id="linearGradient11189" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.80516,2.840199)" - x1="-191.28896" - y1="-328.07861" - x2="-192.41396" - y2="-315.32861" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5123" - id="radialGradient13211" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,245.3644,184.9256)" - cx="-229.75000" - cy="-343.95554" - fx="-229.75000" - fy="-343.95554" - r="14.501380" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13157" - gradientUnits="userSpaceOnUse" - x1="284.80219" - y1="-441.23294" - x2="288.89954" - y2="-436.83109" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6549"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6551" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6553" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6549" - id="linearGradient13155" - gradientUnits="userSpaceOnUse" - x1="286.66589" - y1="-439.48358" - x2="289.76562" - y2="-436.70703" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6527"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6530" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6532" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6527" - id="linearGradient13153" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-35.00007,207.0001)" - x1="275.94193" - y1="-437.10501" - x2="279.97546" - y2="-431.91833" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6538"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6540" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6542" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6538" - id="linearGradient13151" - gradientUnits="userSpaceOnUse" - x1="285.94086" - y1="-439.93900" - x2="289.39124" - y2="-436.44290" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6513"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6515" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6517" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6513" - id="linearGradient13149" - gradientUnits="userSpaceOnUse" - x1="286.51172" - y1="-441.29074" - x2="289.85379" - y2="-436.14453" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6497"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6499" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6501" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6497" - id="linearGradient13147" - gradientUnits="userSpaceOnUse" - x1="287.51730" - y1="-439.75281" - x2="289.67633" - y2="-436.32199" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6470"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6472" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6474" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6470" - id="linearGradient13145" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-34.00007,207.0001)" - x1="271.02170" - y1="-441.05182" - x2="285.02859" - y2="-431.96991" /> - <linearGradient - inkscape:collect="always" - id="linearGradient5123"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop5125" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop5127" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5123" - id="radialGradient13068" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,229.9269,180.9261)" - cx="-229.75000" - cy="-343.95554" - fx="-229.75000" - fy="-343.95554" - r="14.501380" /> - <linearGradient - inkscape:collect="always" - id="linearGradient6840"> - <stop - style="stop-color:#ad7fa8;stop-opacity:1;" - offset="0" - id="stop6842" /> - <stop - style="stop-color:#ad7fa8;stop-opacity:0;" - offset="1" - id="stop6844" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6828"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6830" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6832" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6537"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6539" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6541" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2298"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2300" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2302" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient3347"> - <stop - style="stop-color:#edd400;stop-opacity:1;" - offset="0" - id="stop3349" /> - <stop - style="stop-color:#edd400;stop-opacity:0;" - offset="1" - id="stop3351" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2527"> - <stop - style="stop-color:#fcaf3e;stop-opacity:1;" - offset="0" - id="stop2529" /> - <stop - style="stop-color:#fcaf3e;stop-opacity:0;" - offset="1" - id="stop2531" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2500"> - <stop - style="stop-color:#fce94f;stop-opacity:1;" - offset="0" - id="stop2502" /> - <stop - style="stop-color:#fce94f;stop-opacity:0;" - offset="1" - id="stop2504" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2392"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop2394" /> - <stop - style="stop-color:#eeeeec;stop-opacity:0;" - offset="1" - id="stop2396" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient2254"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2256" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2258" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2263" - gradientUnits="userSpaceOnUse" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" - gradientTransform="translate(-1.608757,3.097272)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2267" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2271" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2275" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2279" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2283" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2287" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2291" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2295" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2299" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2303" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.707748,-5.784024)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2311" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2350" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(16.14002,24.66420)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2352" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.932144,25.87240)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2354" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.356636,23.86870)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2356" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(11.19027,26.52035)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2358" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(10.30638,19.27251)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2360" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2362" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2364" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2366" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2368" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.207586,21.30544)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2372" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2398" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2426" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(14.46340,2.014073)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2428" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.497184,-2.330824)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2430" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-1.608757,3.097272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2432" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.555020,0.968578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2434" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(9.263651,3.495228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2436" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2438" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2440" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2442" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2444" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2446" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2448" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2392" - id="linearGradient2451" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - x1="6.6651416" - y1="13.802798" - x2="41.403877" - y2="13.802798" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2457" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2460" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2463" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2469" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2472" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2475" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2478" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2483" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(0.842481,-3.998086)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2506" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2509" - gradientUnits="userSpaceOnUse" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2513" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - x1="38.857941" - y1="-18.407482" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2500" - id="linearGradient2517" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - x1="37.000000" - y1="-21.750000" - x2="53.750000" - y2="9.0000000" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient2533" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2537" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(17.33814,3.415985)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2541" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2555" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.499805,1.708617)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient2563" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.726830,2.481141)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3347" - id="linearGradient3353" - x1="23.303862" - y1="29.115711" - x2="29.750000" - y2="46.092930" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3366" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.40064,1.353485)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3368" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(1.641243,8.347272)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(6.805020,6.218578)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3372" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(12.51365,8.745228)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3374" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3376" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3378" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3380" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3383" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3386" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3389" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3392" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3395" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.674812,3.088370)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3398" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-2.033818,0.561720)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3401" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.197595,2.690414)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient3405" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(4.561802,-4.303373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-4.4493785" - x2="-34.700153" - y1="-37.550461" - x1="-27.006643" - id="linearGradient2916" - xlink:href="#linearGradient2298" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient2914" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(57.97693,-10.56876)" - gradientUnits="userSpaceOnUse" - id="linearGradient2912" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)" - gradientUnits="userSpaceOnUse" - id="linearGradient2910" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient2908" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient2906" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient2904" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient2902" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient2900" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient2898" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient2896" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient2894" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)" - gradientUnits="userSpaceOnUse" - id="linearGradient2892" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)" - gradientUnits="userSpaceOnUse" - id="linearGradient2890" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(88.49344,-9.697877)" - gradientUnits="userSpaceOnUse" - id="linearGradient2888" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.561802,-4.303373)" - gradientUnits="userSpaceOnUse" - id="linearGradient2886" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient2884" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient2882" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient2880" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient2878" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient2876" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient2874" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient2872" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient2870" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2868" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient2866" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient2864" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2862" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2860" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2858" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient2856" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="46.092930" - x2="29.750000" - y1="29.115711" - x1="23.303862" - id="linearGradient2854" - xlink:href="#linearGradient3347" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.726830,2.481141)" - gradientUnits="userSpaceOnUse" - id="linearGradient2852" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.499805,1.708617)" - gradientUnits="userSpaceOnUse" - id="linearGradient2850" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient2848" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(17.33814,3.415985)" - gradientUnits="userSpaceOnUse" - id="linearGradient2846" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - id="linearGradient2844" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - gradientUnits="userSpaceOnUse" - id="linearGradient2842" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-18.407482" - x1="38.857941" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - gradientUnits="userSpaceOnUse" - id="linearGradient2840" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientUnits="userSpaceOnUse" - id="linearGradient2838" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - id="linearGradient2836" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(0.842481,-3.998086)" - gradientUnits="userSpaceOnUse" - id="linearGradient2834" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2832" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2830" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2828" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient2826" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient2824" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2822" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient2820" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - gradientUnits="userSpaceOnUse" - id="linearGradient2818" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - id="linearGradient2816" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient2814" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient2812" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2810" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient2808" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient2806" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient2804" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2802" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2800" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-1.608757,3.097272)" - gradientUnits="userSpaceOnUse" - id="linearGradient2798" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient2796" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient2794" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - id="linearGradient2792" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - gradientUnits="userSpaceOnUse" - id="linearGradient2790" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.207586,21.30544)" - gradientUnits="userSpaceOnUse" - id="linearGradient2788" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - gradientUnits="userSpaceOnUse" - id="linearGradient2786" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - gradientUnits="userSpaceOnUse" - id="linearGradient2784" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - gradientUnits="userSpaceOnUse" - id="linearGradient2782" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - gradientUnits="userSpaceOnUse" - id="linearGradient2780" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - gradientUnits="userSpaceOnUse" - id="linearGradient2778" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(10.30638,19.27251)" - gradientUnits="userSpaceOnUse" - id="linearGradient2776" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(11.19027,26.52035)" - gradientUnits="userSpaceOnUse" - id="linearGradient2774" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(5.356636,23.86870)" - gradientUnits="userSpaceOnUse" - id="linearGradient2772" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.932144,25.87240)" - gradientUnits="userSpaceOnUse" - id="linearGradient2770" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(16.14002,24.66420)" - gradientUnits="userSpaceOnUse" - id="linearGradient2768" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient2766" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.707748,-5.784024)" - gradientUnits="userSpaceOnUse" - id="linearGradient2764" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient2762" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient2760" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient2758" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient2756" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient2754" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient2752" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient2750" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient2748" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient2746" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="translate(-1.608757,3.097272)" - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientUnits="userSpaceOnUse" - id="linearGradient2744" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-4.4493785" - x2="-34.700153" - y1="-37.550461" - x1="-27.006643" - id="linearGradient2304" - xlink:href="#linearGradient2298" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient1557" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(57.97693,-10.56876)" - gradientUnits="userSpaceOnUse" - id="linearGradient1538" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,123.1162,-5.446357)" - gradientUnits="userSpaceOnUse" - id="linearGradient1536" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient1534" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient1532" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient1530" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient1528" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient1526" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient1524" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient1522" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - gradientUnits="userSpaceOnUse" - id="linearGradient1520" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,79.36909,-3.193747)" - gradientUnits="userSpaceOnUse" - id="linearGradient1518" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,56.25514,-12.39388)" - gradientUnits="userSpaceOnUse" - id="linearGradient1516" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(88.49344,-9.697877)" - gradientUnits="userSpaceOnUse" - id="linearGradient1514" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.561802,-4.303373)" - gradientUnits="userSpaceOnUse" - id="linearGradient5957" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.197595,2.690414)" - gradientUnits="userSpaceOnUse" - id="linearGradient5955" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-2.033818,0.561720)" - gradientUnits="userSpaceOnUse" - id="linearGradient5953" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.674812,3.088370)" - gradientUnits="userSpaceOnUse" - id="linearGradient5951" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - gradientUnits="userSpaceOnUse" - id="linearGradient5949" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - gradientUnits="userSpaceOnUse" - id="linearGradient5947" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - gradientUnits="userSpaceOnUse" - id="linearGradient5945" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - gradientUnits="userSpaceOnUse" - id="linearGradient5943" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient5941" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5939" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient5937" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient5935" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5933" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5931" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient5929" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient5927" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="46.092930" - x2="29.750000" - y1="29.115711" - x1="23.303862" - id="linearGradient5925" - xlink:href="#linearGradient3347" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.726830,2.481141)" - gradientUnits="userSpaceOnUse" - id="linearGradient5923" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-7.499805,1.708617)" - gradientUnits="userSpaceOnUse" - id="linearGradient5921" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(13.40064,1.353485)" - gradientUnits="userSpaceOnUse" - id="linearGradient5919" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(17.33814,3.415985)" - gradientUnits="userSpaceOnUse" - id="linearGradient5917" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="-24.884460" - x2="-35.652866" - y1="-1.2491118" - x1="-25.137094" - id="linearGradient5915" - xlink:href="#linearGradient2527" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientTransform="matrix(0.414169,0.000000,0.000000,0.778853,-1.910724,36.87850)" - gradientUnits="userSpaceOnUse" - id="linearGradient5913" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="9.0000000" - x2="53.750000" - y1="-18.407482" - x1="38.857941" - gradientTransform="matrix(0.605509,0.000000,0.000000,0.710542,-0.224971,42.19500)" - gradientUnits="userSpaceOnUse" - id="linearGradient5911" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.889091,0.000000,0.000000,0.617886,-4.771368,39.81402)" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - gradientUnits="userSpaceOnUse" - id="linearGradient5909" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="9.0000000" - x2="53.750000" - y1="-21.750000" - x1="37.000000" - id="linearGradient5907" - xlink:href="#linearGradient2500" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(0.842481,-3.998086)" - gradientUnits="userSpaceOnUse" - id="linearGradient5905" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.641243,8.347272)" - gradientUnits="userSpaceOnUse" - id="linearGradient5903" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(6.805020,6.218578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5901" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(12.51365,8.745228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5899" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,3.052538,12.86287)" - gradientUnits="userSpaceOnUse" - id="linearGradient5897" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,18.12610,13.81998)" - gradientUnits="userSpaceOnUse" - id="linearGradient5895" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-2.437359,7.060269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5893" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,9.633860,11.75043)" - gradientUnits="userSpaceOnUse" - id="linearGradient5891" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,4.378541,10.65407)" - gradientUnits="userSpaceOnUse" - id="linearGradient5889" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - id="linearGradient5887" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient5885" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient5883" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5881" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient5879" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient5877" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient5875" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5873" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5871" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-1.608757,3.097272)" - gradientUnits="userSpaceOnUse" - id="linearGradient5869" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient5867" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient5865" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="matrix(0.992367,0.000000,0.000000,0.990713,1.128541,5.404075)" - gradientUnits="userSpaceOnUse" - y2="13.802798" - x2="41.403877" - y1="13.802798" - x1="6.6651416" - id="linearGradient5863" - xlink:href="#linearGradient2392" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.12415,32.08882)" - gradientUnits="userSpaceOnUse" - id="linearGradient5861" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(4.207586,21.30544)" - gradientUnits="userSpaceOnUse" - id="linearGradient5859" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,8.185476,29.52556)" - gradientUnits="userSpaceOnUse" - id="linearGradient5857" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-4.010744,24.96040)" - gradientUnits="userSpaceOnUse" - id="linearGradient5855" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,17.05272,31.47010)" - gradientUnits="userSpaceOnUse" - id="linearGradient5853" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,16.67145,27.22746)" - gradientUnits="userSpaceOnUse" - id="linearGradient5851" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,0.229156,30.76299)" - gradientUnits="userSpaceOnUse" - id="linearGradient5849" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(10.30638,19.27251)" - gradientUnits="userSpaceOnUse" - id="linearGradient5847" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(11.19027,26.52035)" - gradientUnits="userSpaceOnUse" - id="linearGradient5845" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(5.356636,23.86870)" - gradientUnits="userSpaceOnUse" - id="linearGradient5843" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(-0.932144,25.87240)" - gradientUnits="userSpaceOnUse" - id="linearGradient5841" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(16.14002,24.66420)" - gradientUnits="userSpaceOnUse" - id="linearGradient5839" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,53.94753,8.563694)" - gradientUnits="userSpaceOnUse" - id="linearGradient5837" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(1.707748,-5.784024)" - gradientUnits="userSpaceOnUse" - id="linearGradient5835" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,6.383860,6.500432)" - gradientUnits="userSpaceOnUse" - id="linearGradient5833" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-5.687359,1.810269)" - gradientUnits="userSpaceOnUse" - id="linearGradient5831" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,14.87610,8.569976)" - gradientUnits="userSpaceOnUse" - id="linearGradient5829" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,14.61983,4.452335)" - gradientUnits="userSpaceOnUse" - id="linearGradient5827" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-0.197462,7.612867)" - gradientUnits="userSpaceOnUse" - id="linearGradient5825" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(14.46340,2.014073)" - gradientUnits="userSpaceOnUse" - id="linearGradient5823" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(8.497184,-2.330824)" - gradientUnits="userSpaceOnUse" - id="linearGradient5821" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(9.263651,3.495228)" - gradientUnits="userSpaceOnUse" - id="linearGradient5819" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientTransform="translate(3.555020,0.968578)" - gradientUnits="userSpaceOnUse" - id="linearGradient5817" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - gradientTransform="translate(-1.608757,3.097272)" - y2="16.268581" - x2="16.851845" - y1="9.2859020" - x1="14.260854" - gradientUnits="userSpaceOnUse" - id="linearGradient5815" - xlink:href="#linearGradient2254" - inkscape:collect="always" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6098" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6101" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6118" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6121" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6124" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(21.51400,12.80461)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6179" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-7.197595,2.690414)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6181" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-2.033818,0.561720)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6183" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(3.674812,3.088370)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6185" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-5.786300,7.206012)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6187" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,9.287262,8.163122)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6189" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-11.27620,1.403411)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6191" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,0.795022,6.093572)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2527" - id="linearGradient6193" - gradientUnits="userSpaceOnUse" - x1="-25.137094" - y1="-1.2491118" - x2="-35.652866" - y2="-24.884460" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6196" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6199" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6202" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6205" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.751222,0.000000,0.000000,1.000000,-4.372193,11.95105)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6208" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6211" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6214" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6242" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6244" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6246" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6248" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6250" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6252" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6254" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6257" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.297112,4.275205)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6260" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6263" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6266" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6269" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.79432,0.174884)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6272" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.085690,-2.351766)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6275" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2.921913,-0.223072)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6311" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(21.51400,12.80461)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6313" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-10.72430,10.10861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6315" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.284317,0.000000,0.000000,1.000000,12.38965,19.30874)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6317" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-1.156692,-1.510075)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6319" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.976307,0.000000,0.000000,1.000000,56.13675,17.05613)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6321" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6323" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6325" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6327" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6329" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6331" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6333" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6335" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(2.921913,-0.223072)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6337" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(8.085690,-2.351766)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6339" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(13.79432,0.174884)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6341" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,19.40677,5.249635)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6343" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,10.91453,3.180085)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6543" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-2.763717e-17,0.972572,16.13182,0.843286)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6547" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,25.91493,0.633642)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6551" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-4.388782e-16,0.972572,36.25638,0.633643)" - x1="27.320963" - y1="44.228481" - x2="45.115814" - y2="44.228455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6559" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-2.332577e-16,0.972572,16.13182,0.843286)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6561" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,25.91493,0.633642)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6563" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.526962,0.000000,-6.444987e-16,0.972572,36.25638,0.633643)" - x1="27.320963" - y1="44.228481" - x2="45.115814" - y2="44.228455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6566" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.577744,0.000000,-6.388715e-16,1.006703,39.04124,-0.702889)" - x1="27.320963" - y1="44.228481" - x2="45.115814" - y2="44.228455" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6569" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.577744,0.000000,-6.388715e-16,1.006703,27.70322,-0.702890)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6537" - id="linearGradient6572" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.577744,0.000000,-1.880005e-16,1.006703,16.97734,-0.485889)" - x1="27.320963" - y1="44.228481" - x2="52.328316" - y2="44.228481" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6576" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.132431,0.000000,0.000000,1.016132,10.54485,-4.728138)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6579" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.853605,0.000000,0.000000,1.016132,19.23518,-2.625202)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6582" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,13.49182,-7.781819)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6585" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,7.650036,-10.34923)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6588" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,2.365814,-8.186195)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6599" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.999079,0.000000,0.000000,1.016132,56.82188,9.371753)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6603" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-1.807925,-9.493960)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6606" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.314274,0.000000,0.000000,1.016132,12.05438,11.66070)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6609" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.496116,0.000000,0.000000,1.282841,-11.59870,2.312158)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6612" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,21.39156,5.051653)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6618" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,16.09471,2.948843)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6622" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.023325,0.000000,0.000000,1.016132,11.32174,9.047633)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6624" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-5.783488,7.435453)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6626" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-0.619711,5.306759)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6628" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(5.088919,7.833409)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6630" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.834148,0.000000,0.000000,1.000000,10.70137,12.90816)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6632" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.462015,0.000000,0.000000,1.262475,-9.862093,6.148450)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6634" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.106619,0.000000,0.000000,1.000000,2.209129,10.83861)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2254" - id="linearGradient6636" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-9.002513,11.93373)" - x1="14.260854" - y1="9.2859020" - x2="16.851845" - y2="16.268581" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6828" - id="radialGradient6834" - cx="15.147860" - cy="23.822156" - fx="15.147860" - fy="23.822156" - r="12.852140" - gradientTransform="matrix(0.654874,0.000000,0.000000,0.398574,2.663540,12.14676)" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6840" - id="radialGradient6846" - cx="32.583473" - cy="25.240442" - fx="32.583473" - fy="25.240442" - r="8.4165270" - gradientTransform="matrix(1.000000,0.000000,0.000000,0.503823,-15.00000,6.042836)" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6828" - id="radialGradient6852" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.654874,0.000000,0.000000,0.398574,44.33646,16.14676)" - cx="15.147860" - cy="23.822156" - fx="15.147860" - fy="23.822156" - r="12.852140" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6840" - id="radialGradient6854" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-1.000000,0.000000,0.000000,0.503823,62.00000,10.04284)" - cx="32.583473" - cy="25.240442" - fx="32.583473" - fy="25.240442" - r="8.4165270" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient23739" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient23741" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient23743" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient23745" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5346" - id="radialGradient23747" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" - cx="21.920311" - cy="-382.96454" - fx="21.920311" - fy="-382.96454" - r="21.743534" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5358" - id="linearGradient23749" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" - x1="6.8942904" - y1="-359.82382" - x2="27.400387" - y2="-381.30222" /> +<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" width="48px" height="48px" id="svg1306"> + <defs id="defs1308"> + <linearGradient id="linearGradient5358"> + <stop offset="0" id="stop5360" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop5362" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient id="linearGradient5346"> + <stop offset="0" id="stop5348" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop5350" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient id="linearGradient8397"> + <stop offset="0" id="stop8400" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8402" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8397" id="linearGradient13503" gradientUnits="userSpaceOnUse" x1="238.00478" y1="-388.47476" x2="245.65462" y2="-382.64539"/> + <linearGradient id="linearGradient8315"> + <stop offset="0" id="stop8317" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8319" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8315" id="linearGradient13501" gradientUnits="userSpaceOnUse" x1="230.87598" y1="-390.43951" x2="235.25652" y2="-386.95901"/> + <linearGradient id="linearGradient8381"> + <stop offset="0" id="stop8383" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8385" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8381" id="linearGradient13499" gradientUnits="userSpaceOnUse" x1="246.74042" y1="-391.31381" x2="252.69785" y2="-385.35165"/> + <linearGradient id="linearGradient8331"> + <stop offset="0" id="stop8333" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8335" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8331" id="linearGradient13497" gradientUnits="userSpaceOnUse" x1="240.07379" y1="-393.40720" x2="245.82706" y2="-388.55029"/> + <linearGradient id="linearGradient8302"> + <stop offset="0" id="stop8304" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8306" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8302" id="linearGradient13495" gradientUnits="userSpaceOnUse" gradientTransform="translate(69.00000,155.0000)" x1="228.50261" y1="-392.30591" x2="266.36395" y2="-379.26862"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13143" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient13141" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient13139" gradientUnits="userSpaceOnUse" gradientTransform="translate(-35.00007,207.0001)" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13137" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient13135" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient13133" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient13131" gradientUnits="userSpaceOnUse" gradientTransform="translate(-34.00007,207.0001)" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient xlink:href="#linearGradient8874" id="linearGradient11195" gradientUnits="userSpaceOnUse" gradientTransform="translate(14.15871,7.082841)" x1="-190.47688" y1="-332.51181" x2="-196.19046" y2="-328.53433"/> + <linearGradient xlink:href="#linearGradient8904" id="linearGradient11193" gradientUnits="userSpaceOnUse" gradientTransform="translate(13.80516,2.840199)" x1="-191.28896" y1="-328.07861" x2="-192.41396" y2="-315.32861"/> + <linearGradient id="linearGradient8874"> + <stop offset="0" id="stop8876" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop8878" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8874" id="linearGradient11191" gradientUnits="userSpaceOnUse" gradientTransform="translate(14.15871,7.082841)" x1="-190.47688" y1="-332.51181" x2="-196.19046" y2="-328.53433"/> + <linearGradient id="linearGradient8904"> + <stop offset="0" id="stop8906" stop-color="#fcaf3e" stop-opacity="1"/> + <stop offset="1" id="stop8908" stop-color="#fcaf3e" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient8904" id="linearGradient11189" gradientUnits="userSpaceOnUse" gradientTransform="translate(13.80516,2.840199)" x1="-191.28896" y1="-328.07861" x2="-192.41396" y2="-315.32861"/> + <radialGradient xlink:href="#linearGradient5123" id="radialGradient13211" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,245.3644,184.9256)" cx="-229.75000" cy="-343.95554" fx="-229.75000" fy="-343.95554" r="14.501380"/> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13157" gradientUnits="userSpaceOnUse" x1="284.80219" y1="-441.23294" x2="288.89954" y2="-436.83109"/> + <linearGradient id="linearGradient6549"> + <stop offset="0" id="stop6551" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6553" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6549" id="linearGradient13155" gradientUnits="userSpaceOnUse" x1="286.66589" y1="-439.48358" x2="289.76562" y2="-436.70703"/> + <linearGradient id="linearGradient6527"> + <stop offset="0" id="stop6530" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6532" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6527" id="linearGradient13153" gradientUnits="userSpaceOnUse" gradientTransform="translate(-35.00007,207.0001)" x1="275.94193" y1="-437.10501" x2="279.97546" y2="-431.91833"/> + <linearGradient id="linearGradient6538"> + <stop offset="0" id="stop6540" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6542" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6538" id="linearGradient13151" gradientUnits="userSpaceOnUse" x1="285.94086" y1="-439.93900" x2="289.39124" y2="-436.44290"/> + <linearGradient id="linearGradient6513"> + <stop offset="0" id="stop6515" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6517" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6513" id="linearGradient13149" gradientUnits="userSpaceOnUse" x1="286.51172" y1="-441.29074" x2="289.85379" y2="-436.14453"/> + <linearGradient id="linearGradient6497"> + <stop offset="0" id="stop6499" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6501" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6497" id="linearGradient13147" gradientUnits="userSpaceOnUse" x1="287.51730" y1="-439.75281" x2="289.67633" y2="-436.32199"/> + <linearGradient id="linearGradient6470"> + <stop offset="0" id="stop6472" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop6474" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <linearGradient xlink:href="#linearGradient6470" id="linearGradient13145" gradientUnits="userSpaceOnUse" gradientTransform="translate(-34.00007,207.0001)" x1="271.02170" y1="-441.05182" x2="285.02859" y2="-431.96991"/> + <linearGradient id="linearGradient5123"> + <stop offset="0" id="stop5125" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" id="stop5127" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + <radialGradient xlink:href="#linearGradient5123" id="radialGradient13068" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.930946,6.185702e-16,-2.842711e-16,0.448244,229.9269,180.9261)" cx="-229.75000" cy="-343.95554" fx="-229.75000" fy="-343.95554" r="14.501380"/> + <radialGradient xlink:href="#linearGradient5346" id="radialGradient23739" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/> + <linearGradient xlink:href="#linearGradient5358" id="linearGradient23741" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/> + <radialGradient xlink:href="#linearGradient5346" id="radialGradient23743" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/> + <linearGradient xlink:href="#linearGradient5358" id="linearGradient23745" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/> + <radialGradient xlink:href="#linearGradient5346" id="radialGradient23747" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.065158e-2,4.154803e-2,-6.201499e-2,0.109408,207.4757,-189.8182)" cx="21.920311" cy="-382.96454" fx="21.920311" fy="-382.96454" r="21.743534"/> + <linearGradient xlink:href="#linearGradient5358" id="linearGradient23749" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-5.358613e-2,0.102849,-9.281434e-2,-5.937964e-2,198.9051,-255.6893)" x1="6.8942904" y1="-359.82382" x2="27.400387" y2="-381.30222"/> </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1" - inkscape:cx="24" - inkscape:cy="24" - inkscape:current-layer="layer1" - showgrid="true" - inkscape:grid-bbox="true" - inkscape:document-units="px" - inkscape:window-width="982" - inkscape:window-height="965" - inkscape:window-x="1280" - inkscape:window-y="28" - inkscape:showpageshadow="false" /> - <metadata - id="metadata1311"> + + <metadata id="metadata1311"> <rdf:RDF> - <cc:Work - rdf:about=""> + <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:title>weather-storm</dc:title> <dc:date>January 2006</dc:date> <dc:creator> @@ -4079,508 +123,101 @@ <rdf:li>notify</rdf:li> </rdf:Bag> </dc:subject> - <cc:license - rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" /> + <cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/"/> </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/by-sa/2.0/"> - <cc:permits - rdf:resource="http://web.resource.org/cc/Reproduction" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/Distribution" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/Notice" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/Attribution" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/ShareAlike" /> + <cc:License rdf:about="http://creativecommons.org/licenses/by-sa/2.0/"> + <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/> + <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/> + <cc:requires rdf:resource="http://web.resource.org/cc/Notice"/> + <cc:requires rdf:resource="http://web.resource.org/cc/Attribution"/> + <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/> + <cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike"/> </cc:License> </rdf:RDF> </metadata> - <g - id="layer1" - inkscape:label="Layer 1" - inkscape:groupmode="layer"> - <g - id="g15505"> - <g - transform="translate(-287.0204,244.9995)" - id="g12825"> - <path - style="opacity:1.0000000;fill:#555753;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z " - id="path12827" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient13495);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z " - id="path12829" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12831" - sodipodi:cx="241.80843" - sodipodi:cy="-383.66660" - sodipodi:rx="6.7396116" - sodipodi:ry="6.7396116" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)" /> - <g - id="g12833"> - <path - transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" - d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" - sodipodi:ry="6.2313786" - sodipodi:rx="6.2313786" - sodipodi:cy="-389.30136" - sodipodi:cx="243.95184" - id="path12835" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" - d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" - sodipodi:ry="6.2313786" - sodipodi:rx="6.2313786" - sodipodi:cy="-389.30136" - sodipodi:cx="243.95184" - id="path12837" - style="opacity:0.49444440;fill:url(#linearGradient13497);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g id="layer1"> + <g> + <g transform="translate(-287.0204,244.9995)"> + <path d="M 311.50000,-242.99998 C 308.72758,-242.99998 306.39177,-241.42627 305.09375,-239.18748 C 304.14939,-239.66252 303.12856,-239.99998 302.00000,-239.99998 C 298.13600,-239.99998 295.00000,-236.86398 295.00000,-232.99998 C 295.00000,-229.13598 298.13600,-225.99998 302.00000,-225.99998 C 304.41967,-225.99998 306.43009,-227.31930 307.68750,-229.18748 C 308.82170,-228.49786 310.07648,-227.99998 311.50000,-227.99998 C 312.41312,-227.99998 313.25295,-228.23200 314.06250,-228.53123 C 314.57244,-227.66350 315.24162,-226.95151 316.06250,-226.37498 C 316.05526,-226.24460 316.00000,-226.13216 316.00000,-225.99998 C 316.00000,-222.13598 319.13599,-218.99998 323.00000,-218.99998 C 326.86400,-218.99998 330.00000,-222.13598 330.00000,-225.99998 C 330.00000,-228.36967 328.74102,-230.35832 326.93750,-231.62498 C 326.94474,-231.75536 327.00000,-231.86780 327.00000,-231.99998 C 327.00000,-235.86398 323.86401,-238.99998 320.00000,-238.99998 C 319.37730,-238.99998 318.82481,-238.77779 318.25000,-238.62498 C 317.05547,-241.18382 314.50866,-242.99998 311.50000,-242.99998 z " opacity="1.0000000" fill="#555753" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 311.50000,-241.99998 C 308.71952,-241.99998 306.36549,-240.23813 305.43750,-237.78123 C 304.45208,-238.49067 303.30607,-238.99998 302.00000,-238.99998 C 298.68800,-238.99998 296.00000,-236.31198 296.00000,-232.99998 C 296.00000,-229.68798 298.68800,-226.99998 302.00000,-226.99998 C 304.42775,-226.99998 306.49324,-228.45556 307.43750,-230.53123 C 308.55826,-229.61367 309.93964,-228.99998 311.50000,-228.99998 C 312.57454,-228.99998 313.54428,-229.31894 314.43750,-229.78123 C 314.83590,-228.78147 315.53864,-227.99491 316.37500,-227.34373 C 316.19499,-226.74811 316.00000,-226.15408 316.00000,-225.49998 C 316.00000,-221.91198 318.91200,-218.99998 322.50000,-218.99998 C 326.08800,-218.99998 329.00000,-221.91198 329.00000,-225.49998 C 329.00000,-227.86077 327.66567,-229.83017 325.78125,-230.96873 C 325.84384,-231.31596 326.00000,-231.63481 326.00000,-231.99998 C 326.00000,-235.31198 323.31200,-237.99998 320.00000,-237.99998 C 319.14702,-237.99998 318.32870,-237.82130 317.59375,-237.49998 C 316.73998,-240.09386 314.37851,-241.99997 311.50000,-241.99998 z " opacity="1.0000000" fill="url(#linearGradient13495)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" transform="matrix(0.964447,0.000000,0.000000,0.964447,89.28852,144.5262)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <g> + <path transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.882630,0.000000,0.000000,0.882630,96.18078,108.1091)" d="M 250.18322 -389.30136 A 6.2313786 6.2313786 0 1 1 237.72046,-389.30136 A 6.2313786 6.2313786 0 1 1 250.18322 -389.30136 z" opacity="0.49444440" fill="url(#linearGradient13497)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g12839"> - <path - transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" - d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" - sodipodi:ry="6.0325046" - sodipodi:rx="6.0325046" - sodipodi:cy="-385.78790" - sodipodi:cx="251.22179" - id="path12841" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" - d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" - sodipodi:ry="6.0325046" - sodipodi:rx="6.0325046" - sodipodi:cy="-385.78790" - sodipodi:cx="251.22179" - id="path12843" - style="opacity:0.49444440;fill:url(#linearGradient13499);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g> + <path transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(0.911728,0.000000,0.000000,0.911728,90.45407,120.2336)" d="M 257.25429 -385.78790 A 6.0325046 6.0325046 0 1 1 245.18928,-385.78790 A 6.0325046 6.0325046 0 1 1 257.25429 -385.78790 z" opacity="0.49444440" fill="url(#linearGradient13499)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g12845"> - <path - transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" - d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" - sodipodi:ry="4.3752232" - sodipodi:rx="4.3752232" - sodipodi:cy="-387.88715" - sodipodi:cx="233.43362" - id="path12847" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" - d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" - sodipodi:ry="4.3752232" - sodipodi:rx="4.3752232" - sodipodi:cy="-387.88715" - sodipodi:cx="233.43362" - id="path12849" - style="opacity:0.49444440;fill:url(#linearGradient13501);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g> + <path transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.142799,0.000000,0.000000,1.142799,35.23229,210.2770)" d="M 237.80885 -387.88715 A 4.3752232 4.3752232 0 1 1 229.05840,-387.88715 A 4.3752232 4.3752232 0 1 1 237.80885 -387.88715 z" opacity="0.49444440" fill="url(#linearGradient13501)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - id="g12851"> - <path - transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - sodipodi:ry="6.7396116" - sodipodi:rx="6.7396116" - sodipodi:cy="-383.66660" - sodipodi:cx="241.80843" - id="path12853" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> - <path - transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)" - d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" - sodipodi:ry="6.7396116" - sodipodi:rx="6.7396116" - sodipodi:cy="-383.66660" - sodipodi:cx="241.80843" - id="path12855" - style="opacity:0.49444440;fill:url(#linearGradient13503);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - sodipodi:type="arc" /> + <g> + <path transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84906,169.4899)" d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path transform="matrix(1.038636,0.000000,0.000000,1.038636,59.84907,169.4899)" d="M 248.54804 -383.66660 A 6.7396116 6.7396116 0 1 1 235.06881,-383.66660 A 6.7396116 6.7396116 0 1 1 248.54804 -383.66660 z" opacity="0.49444440" fill="url(#linearGradient13503)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> </g> - <g - transform="translate(208.8564,357.8851)" - id="g11177"> - <path - style="fill:#edd400;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient11189);stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" - d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z " - id="path11179" - sodipodi:nodetypes="cccccccc" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient11191);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" - d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z " - id="path11181" - sodipodi:nodetypes="cccccccc" /> + <g transform="translate(208.8564,357.8851)"> + <path d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z " fill="#edd400" fill-opacity="1.0000000" fill-rule="evenodd" stroke="url(#linearGradient11189)" stroke-width="1.0000006px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <path d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z " opacity="1.0000000" fill="url(#linearGradient11191)" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000006px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(-215.0060,252.9994)" - id="g12857"> - <path - style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " - id="path12859" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient13131);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " - id="path12861" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12863" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13133);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12865" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" /> - <rect - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="rect12867" - width="20.000000" - height="9.0000000" - x="236.99994" - y="-230.99992" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12869" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12871" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13135);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12873" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12875" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13137);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12877" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" /> - <path - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " - id="path12879" /> - <path - style="opacity:0.47777775;fill:url(#linearGradient13139);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " - id="path12881" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13141);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12883" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" /> - <path - style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" - d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " - id="path12885" - sodipodi:nodetypes="ccss" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12887" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13143);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12889" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" /> + <g transform="translate(-215.0060,252.9994)"> + <path d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " fill="#888a85" fill-opacity="1.0000000" stroke="#555753" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " opacity="1.0000000" fill="url(#linearGradient13131)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" opacity="0.47777775" fill="url(#linearGradient13133)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <rect width="20.000000" height="9.0000000" x="236.99994" y="-230.99992" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" opacity="0.47777775" fill="url(#linearGradient13135)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" opacity="0.47777775" fill="url(#linearGradient13137)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " opacity="0.47777775" fill="url(#linearGradient13139)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" opacity="0.47777775" fill="url(#linearGradient13141)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " fill="#555753" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" opacity="0.47777775" fill="url(#linearGradient13143)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <g - transform="translate(192.8564,354.8851)" - id="g11183"> - <path - style="fill:#edd400;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient11193);stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" - d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z " - id="path11185" - sodipodi:nodetypes="cccccccc" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient11195);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" - d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z " - id="path11187" - sodipodi:nodetypes="cccccccc" /> + <g transform="translate(192.8564,354.8851)"> + <path d="M -173.24571,-327.59122 L -176.37021,-323.31202 L -172.59078,-323.31202 C -172.59078,-323.31202 -175.29396,-318.78622 -180.16632,-310.38562 C -178.07014,-318.33294 -177.21353,-321.35581 -177.21353,-321.35581 L -182.37682,-321.35581 L -178.33401,-327.59122 L -173.24571,-327.59122 z " fill="#edd400" fill-opacity="1.0000000" fill-rule="evenodd" stroke="url(#linearGradient11193)" stroke-width="1.0000006px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <path d="M -173.75946,-327.84461 L -177.50268,-322.68152 L -173.54648,-322.85830 C -173.54648,-322.85830 -173.68639,-322.39837 -178.55875,-313.99777 C -176.46257,-321.94509 -176.48985,-321.96275 -176.48985,-321.96275 L -181.38797,-321.87436 L -177.69871,-327.57944 L -173.75946,-327.84461 z " opacity="1.0000000" fill="url(#linearGradient11195)" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000006px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> </g> - <path - sodipodi:nodetypes="ccsscsscscsscc" - id="path13209" - d="M 31.626355,14.999520 C 29.626255,14.999520 27.940775,16.079020 27.095785,17.614460 C 26.500875,17.392550 25.851145,17.261090 25.169835,17.261090 C 22.339625,17.261090 20.052305,19.379260 20.052305,21.978590 C 20.052305,22.432340 20.196835,22.835420 20.327445,23.250720 C 18.945125,24.115990 17.979615,25.504290 17.979615,27.155450 C 17.979615,29.808280 18.631235,32.148800 23.207195,31.961300 C 23.252315,31.959450 40.658675,32.058280 40.907605,31.943270 C 43.992815,32.169220 44.979615,29.497540 44.979615,27.243810 C 44.979615,25.543300 44.142675,24.193960 42.670345,23.366220 C 42.718305,23.107660 42.631785,22.815030 42.631785,22.543970 C 42.631785,19.944650 40.326135,17.826480 37.495915,17.826480 C 37.102425,17.826480 36.763515,17.961300 36.395375,18.038500 C 35.656915,16.270380 33.810365,14.999520 31.626355,14.999520 z " - style="opacity:1.0000000;fill:url(#radialGradient13211);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000004;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" /> - <g - transform="translate(-230.0203,248.9834)" - id="g12891"> - <path - style="fill:#888a85;fill-opacity:1.0000000;stroke:#555753;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " - id="path12893" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - style="opacity:1.0000000;fill:url(#linearGradient13145);fill-opacity:1.0000000;stroke:none;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " - id="path12895" - sodipodi:nodetypes="ccsscsssscsscc" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12897" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13147);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12899" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" /> - <rect - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="rect12901" - width="20.000000" - height="9.0000000" - x="236.99994" - y="-230.99992" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12903" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12905" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13149);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12907" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12909" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13151);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12911" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" /> - <path - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " - id="path12913" /> - <path - style="opacity:0.47777775;fill:url(#linearGradient13153);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " - id="path12915" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13155);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12917" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" /> - <path - style="fill:#555753;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" - d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " - id="path12919" - sodipodi:nodetypes="ccss" /> - <path - sodipodi:type="arc" - style="opacity:1.0000000;fill:#888a85;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12921" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" /> - <path - sodipodi:type="arc" - style="opacity:0.47777775;fill:url(#linearGradient13157);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" - id="path12923" - sodipodi:cx="288.37500" - sodipodi:cy="-437.59375" - sodipodi:rx="3.3125000" - sodipodi:ry="3.3125000" - d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" - transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" /> + <path d="M 31.626355,14.999520 C 29.626255,14.999520 27.940775,16.079020 27.095785,17.614460 C 26.500875,17.392550 25.851145,17.261090 25.169835,17.261090 C 22.339625,17.261090 20.052305,19.379260 20.052305,21.978590 C 20.052305,22.432340 20.196835,22.835420 20.327445,23.250720 C 18.945125,24.115990 17.979615,25.504290 17.979615,27.155450 C 17.979615,29.808280 18.631235,32.148800 23.207195,31.961300 C 23.252315,31.959450 40.658675,32.058280 40.907605,31.943270 C 43.992815,32.169220 44.979615,29.497540 44.979615,27.243810 C 44.979615,25.543300 44.142675,24.193960 42.670345,23.366220 C 42.718305,23.107660 42.631785,22.815030 42.631785,22.543970 C 42.631785,19.944650 40.326135,17.826480 37.495915,17.826480 C 37.102425,17.826480 36.763515,17.961300 36.395375,18.038500 C 35.656915,16.270380 33.810365,14.999520 31.626355,14.999520 z " opacity="1.0000000" fill="url(#radialGradient13211)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000004" stroke-linejoin="round" stroke-miterlimit="4.0000000" stroke-dasharray="none" stroke-opacity="1.0000000"/> + <g transform="translate(-230.0203,248.9834)"> + <path d="M 246.49993,-238.49993 C 244.22910,-238.49993 242.39002,-236.94965 241.78118,-234.87493 C 241.08795,-235.23876 240.33667,-235.49993 239.49993,-235.49993 C 236.73993,-235.49993 234.49992,-233.25994 234.49993,-230.49993 C 234.49993,-229.92100 234.66245,-229.39223 234.84368,-228.87493 C 233.47021,-228.10419 232.49993,-226.68593 232.49993,-224.99993 C 232.49993,-222.51593 234.51593,-220.49992 236.99993,-220.49993 C 237.17706,-220.49993 255.82280,-220.49993 255.99993,-220.49993 C 258.48392,-220.49993 260.49993,-222.51593 260.49993,-224.99993 C 260.49993,-226.68593 259.52965,-228.10419 258.15618,-228.87493 C 258.33742,-229.39222 258.49993,-229.92101 258.49993,-230.49993 C 258.49993,-233.25993 256.25993,-235.49992 253.49993,-235.49993 C 252.66319,-235.49993 251.91191,-235.23876 251.21868,-234.87493 C 250.60984,-236.94965 248.77076,-238.49993 246.49993,-238.49993 z " fill="#888a85" fill-opacity="1.0000000" stroke="#555753" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 246.49993,-237.99993 C 244.31021,-237.99993 242.77633,-236.66416 242.10438,-234.15641 C 241.43592,-234.50003 240.55679,-234.98976 239.74993,-234.98976 C 237.03342,-234.98976 234.99479,-233.05094 234.99480,-230.44422 C 234.99480,-229.89745 235.26201,-229.11078 235.43676,-228.62221 C 234.11233,-227.89426 232.99993,-226.73171 232.99993,-225.24966 C 232.99993,-222.90361 234.54610,-220.99957 237.33921,-220.99957 C 237.51002,-220.99957 255.48985,-220.99957 255.66065,-220.99957 C 258.43166,-220.99957 259.99993,-222.90361 259.99993,-225.24966 C 259.99993,-226.84203 258.88753,-227.91635 257.56310,-228.64430 C 257.73786,-229.13286 258.02717,-229.89746 258.02717,-230.44422 C 258.02717,-233.05093 255.91136,-235.01185 253.24994,-235.01186 C 252.44307,-235.01186 251.60813,-234.52212 250.93967,-234.17850 C 250.29082,-236.60004 248.68966,-237.99993 246.49993,-237.99993 z " opacity="1.0000000" fill="url(#linearGradient13145)" fill-opacity="1.0000000" stroke="none" stroke-width="0.99999958" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-58.19825,228.8634)" opacity="0.47777775" fill="url(#linearGradient13147)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <rect width="20.000000" height="9.0000000" x="236.99994" y="-230.99992" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16987,171.3114)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19818,231.8633)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-51.19825,231.8634)" opacity="0.47777775" fill="url(#linearGradient13149)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.056604,0.000000,0.000000,1.056604,-65.19825,231.8634)" opacity="0.47777775" fill="url(#linearGradient13151)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.46868,-233.96868 C 241.88930,-233.96868 238.99993,-231.04805 238.99993,-227.46868 C 238.99993,-225.09800 240.34936,-223.13089 242.24993,-221.99993 L 248.71868,-221.99993 C 250.61925,-223.13089 251.96868,-225.12924 251.96868,-227.49993 C 251.96868,-231.07931 249.04805,-233.96868 245.46868,-233.96868 z " opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 245.49993,-233.99993 C 241.91193,-233.99993 238.99993,-231.08792 238.99993,-227.49993 C 238.99993,-225.12353 240.34478,-223.13361 242.24993,-221.99993 L 248.74993,-221.99993 C 250.65508,-223.13361 251.99993,-225.12353 251.99993,-227.49993 C 251.99993,-231.08793 249.08793,-233.99992 245.49993,-233.99993 z " opacity="0.47777775" fill="url(#linearGradient13153)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(0.905660,0.000000,0.000000,0.905660,-24.16977,171.3113)" opacity="0.47777775" fill="url(#linearGradient13155)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 258.95633,-230.33389 C 258.95480,-227.64933 255.68707,-226.61994 255.68707,-226.61994 C 255.68707,-226.61994 258.03581,-228.24589 258.02392,-230.32495 C 258.02392,-230.32495 258.95633,-230.33389 258.95633,-230.33389 z " fill="#555753" fill-opacity="1.0000000" fill-rule="evenodd" stroke="none" stroke-width="1.0000000px" stroke-linecap="butt" stroke-linejoin="miter" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" opacity="1.0000000" fill="#888a85" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> + <path d="M 291.68750 -437.59375 A 3.3125000 3.3125000 0 1 1 285.06250,-437.59375 A 3.3125000 3.3125000 0 1 1 291.68750 -437.59375 z" transform="matrix(1.207547,0.000000,0.000000,1.207547,-98.22652,302.4154)" opacity="0.47777775" fill="url(#linearGradient13157)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2.0000000" stroke-dasharray="none" stroke-dashoffset="0.0000000" stroke-opacity="1.0000000"/> </g> - <path - sodipodi:nodetypes="ccsscsscscsscc" - id="path11418" - d="M 16.188855,11.000000 C 14.188755,11.000000 12.503275,12.079500 11.658285,13.614940 C 11.063375,13.393030 10.413645,13.261570 9.7323346,13.261570 C 6.9021246,13.261570 4.6148046,15.379740 4.6148046,17.979070 C 4.6148046,18.432820 4.7593346,18.835900 4.8899446,19.251200 C 3.5076246,20.116470 2.5421146,21.504770 2.5421146,23.155930 C 2.5421146,25.808760 3.1937346,28.149280 7.7696946,27.961780 C 7.8148146,27.959930 25.221175,28.058760 25.470105,27.943750 C 28.555315,28.169700 29.542115,25.498020 29.542115,23.244290 C 29.542115,21.543780 28.705175,20.194440 27.232845,19.366700 C 27.280805,19.108140 27.194285,18.815510 27.194285,18.544450 C 27.194285,15.945130 24.888635,13.826960 22.058415,13.826960 C 21.664925,13.826960 21.326015,13.961780 20.957875,14.038980 C 20.219415,12.270860 18.372865,11.000000 16.188855,11.000000 z " - style="opacity:1.0000000;fill:url(#radialGradient13068);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000004;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" /> - <g - transform="translate(-212.91035,271.43)" - id="g12227"> - <path - style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" - id="path12229" - sodipodi:nodetypes="cccc" /> - <path - style="opacity:0.46111109;fill:url(#radialGradient23739);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" - d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" - id="path12231" - sodipodi:nodetypes="csscc" /> - <path - style="opacity:1;fill:url(#linearGradient23741);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" - d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" - id="path12233" - sodipodi:nodetypes="ccc" /> + <path d="M 16.188855,11.000000 C 14.188755,11.000000 12.503275,12.079500 11.658285,13.614940 C 11.063375,13.393030 10.413645,13.261570 9.7323346,13.261570 C 6.9021246,13.261570 4.6148046,15.379740 4.6148046,17.979070 C 4.6148046,18.432820 4.7593346,18.835900 4.8899446,19.251200 C 3.5076246,20.116470 2.5421146,21.504770 2.5421146,23.155930 C 2.5421146,25.808760 3.1937346,28.149280 7.7696946,27.961780 C 7.8148146,27.959930 25.221175,28.058760 25.470105,27.943750 C 28.555315,28.169700 29.542115,25.498020 29.542115,23.244290 C 29.542115,21.543780 28.705175,20.194440 27.232845,19.366700 C 27.280805,19.108140 27.194285,18.815510 27.194285,18.544450 C 27.194285,15.945130 24.888635,13.826960 22.058415,13.826960 C 21.664925,13.826960 21.326015,13.961780 20.957875,14.038980 C 20.219415,12.270860 18.372865,11.000000 16.188855,11.000000 z " opacity="1.0000000" fill="url(#radialGradient13068)" fill-opacity="1.0000000" stroke="none" stroke-width="1.0000004" stroke-linejoin="round" stroke-miterlimit="4.0000000" stroke-dasharray="none" stroke-opacity="1.0000000"/> + <g transform="translate(-212.91035,271.43)"> + <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient23739)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient23741)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <g - transform="translate(-193.78094,269.3383)" - id="g12239"> - <path - style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" - id="path12241" - sodipodi:nodetypes="cccc" /> - <path - style="opacity:0.46111109;fill:url(#radialGradient23743);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" - d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" - id="path12243" - sodipodi:nodetypes="csscc" /> - <path - style="opacity:1;fill:url(#linearGradient23745);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" - d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" - id="path12245" - sodipodi:nodetypes="ccc" /> + <g transform="translate(-193.78094,269.3383)"> + <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient23743)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient23745)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> </g> - <g - transform="translate(-225.96722,264.58414)" - id="g12186"> - <path - style="fill:#729fcf;fill-opacity:1;stroke:#204a87;stroke-width:1.07456863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" - id="path6059" - sodipodi:nodetypes="cccc" /> - <path - style="opacity:0.46111109;fill:url(#radialGradient23747);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" - d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" - id="path6061" - sodipodi:nodetypes="csscc" /> - <path - style="opacity:1;fill:url(#linearGradient23749);fill-opacity:1;stroke:none;stroke-width:1.07457018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dashoffset:0;stroke-opacity:1" - d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" - id="path6063" - sodipodi:nodetypes="ccc" /> + <g transform="translate(-225.96722,264.58414)"> + <path d="M 231.62587,-228.77086 C 230.58662,-229.36665 230.23015,-230.68774 230.83016,-231.71967 C 232.16166,-233.80243 233.93524,-233.26584 234.84231,-235.46138 C 236.10323,-234.12777 235.63545,-227.21367 231.62587,-228.77086 z" fill="#729fcf" fill-opacity="1" stroke="#204a87" stroke-width="1.07456863" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="2" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 234.31017,-229.9035 C 233.82059,-229.03976 232.73502,-228.74348 231.88703,-229.24216 C 231.03903,-229.74084 230.74816,-230.84657 231.23774,-231.71031 C 231.72733,-232.57405 233.84374,-232.16235 234.58388,-234 C 235.43187,-233.50133 234.79976,-230.76724 234.31017,-229.9035 z" opacity="0.46111109" fill="url(#radialGradient23747)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> + <path d="M 233.02237,-229 C 228.40776,-230.07384 233.25985,-233.71939 234,-232.92154 C 230.4176,-231.55118 233.02237,-229 233.02237,-229 z" opacity="1" fill="url(#linearGradient23749)" fill-opacity="1" stroke="none" stroke-width="1.07457018" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="0" stroke-dashoffset="0" stroke-opacity="1"/> </g> </g> </g> diff --git a/dist/changes-4.6.0 b/dist/changes-4.6.0 index 7f723da..5a15cdb 100644 --- a/dist/changes-4.6.0 +++ b/dist/changes-4.6.0 @@ -35,6 +35,9 @@ information about a particular change. * Added QVariant::toFloat() and QVariant::toReal() * Added QVariant(float) constructor + - Qt::escape + * now escape the double quote (") + **************************************************************************** * Platform Specific Changes * **************************************************************************** @@ -55,6 +58,9 @@ information about a particular change. - The reading code of QLocalSocket on Windows has been rewritten to improve reading performance. + - On Windows CE the link time code geration has been disabled by default to + be consistent with win32-msvc200x. + **************************************************************************** * Important Behavior Changes * **************************************************************************** diff --git a/doc/src/development/qmake-manual.qdoc b/doc/src/development/qmake-manual.qdoc index 6c53242..09f1b9b 100644 --- a/doc/src/development/qmake-manual.qdoc +++ b/doc/src/development/qmake-manual.qdoc @@ -2252,6 +2252,18 @@ For example: If the OpenGL implementation uses EGL (most OpenGL/ES systems), then QMAKE_INCDIR_EGL may also need to be set. + \section1 QMAKE_INCDIR_OPENGL_ES1, QMAKE_INCDIR_OPENGL_ES1CL, QMAKE_INCDIR_OPENGL_ES2 + + These variables contain the location of OpenGL headers files to be added + to INCLUDEPATH when building an application with OpenGL ES 1, OpenGL ES 1 Common + Lite or OpenGL ES 2 support respectively. + + The value of this variable is typically handled by \c qmake or + \l{#QMAKESPEC}{qmake.conf} and rarely needs to be modified. + + If the OpenGL implementation uses EGL (most OpenGL/ES systems), + then QMAKE_INCDIR_EGL may also need to be set. + \target QMAKE_INCDIR_OPENVG \section1 QMAKE_INCDIR_OPENVG @@ -2496,6 +2508,17 @@ For example: variable is typically handled by \c qmake or \l{#QMAKESPEC}{qmake.conf} and rarely needs to be modified. + \section1 QMAKE_LIBS_OPENGL_ES1, QMAKE_LIBS_OPENGL_ES1CL, QMAKE_LIBS_OPENGL_ES2 + + These variables contain all the OpenGL libraries for OpenGL ES 1, + OpenGL ES 1 Common Lite profile and OpenGL ES 2. + + The value of these variables is typically handled by \c qmake or + \l{#QMAKESPEC}{qmake.conf} and rarely needs to be modified. + + If the OpenGL implementation uses EGL (most OpenGL/ES systems), + then QMAKE_LIBS_EGL may also need to be set. + \section1 QMAKE_LIBS_OPENVG This variable contains all OpenVG libraries. The value of this diff --git a/examples/script/customclass/bytearrayclass.cpp b/examples/script/customclass/bytearrayclass.cpp index 7291b97..bce69e4 100644 --- a/examples/script/customclass/bytearrayclass.cpp +++ b/examples/script/customclass/bytearrayclass.cpp @@ -72,18 +72,6 @@ private: int m_last; }; -static qint32 toArrayIndex(const QString &str) -{ - QByteArray bytes = str.toUtf8(); - char *eptr; - quint32 pos = strtoul(bytes.constData(), &eptr, 10); - if ((eptr == bytes.constData() + bytes.size()) - && (QByteArray::number(pos) == bytes)) { - return pos; - } - return -1; -} - //! [0] ByteArrayClass::ByteArrayClass(QScriptEngine *engine) : QObject(engine), QScriptClass(engine) @@ -120,8 +108,9 @@ QScriptClass::QueryFlags ByteArrayClass::queryProperty(const QScriptValue &objec if (name == length) { return flags; } else { - qint32 pos = toArrayIndex(name); - if (pos == -1) + bool isArrayIndex; + qint32 pos = name.toArrayIndex(&isArrayIndex); + if (!isArrayIndex) return 0; *id = pos; if ((flags & HandlesReadAccess) && (pos >= ba->size())) diff --git a/mkspecs/common/linux.conf b/mkspecs/common/linux.conf index cc5c38b..1ae5608 100644 --- a/mkspecs/common/linux.conf +++ b/mkspecs/common/linux.conf @@ -13,6 +13,12 @@ QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS] QMAKE_LIBDIR_QT = $$[QT_INSTALL_LIBS] QMAKE_INCDIR_OPENGL = /usr/X11R6/include QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib +QMAKE_INCDIR_OPENGL_ES1 = $$QMAKE_INCDIR_OPENGL +QMAKE_LIBDIR_OPENGL_ES1 = $$QMAKE_LIBDIR_OPENGL +QMAKE_INCDIR_OPENGL_ES1CL = $$QMAKE_INCDIR_OPENGL +QMAKE_LIBDIR_OPENGL_ES1CL = $$QMAKE_LIBDIR_OPENGL +QMAKE_INCDIR_OPENGL_ES2 = $$QMAKE_INCDIR_OPENGL +QMAKE_LIBDIR_OPENGL_ES2 = $$QMAKE_LIBDIR_OPENGL QMAKE_INCDIR_EGL = QMAKE_LIBDIR_EGL = QMAKE_INCDIR_OPENVG = @@ -26,6 +32,9 @@ QMAKE_LIBS_NIS = -lnsl QMAKE_LIBS_EGL = -lEGL QMAKE_LIBS_OPENGL = -lGLU -lGL QMAKE_LIBS_OPENGL_QT = -lGL +QMAKE_LIBS_OPENGL_ES1 = -lGLES_CM +QMAKE_LIBS_OPENGL_ES1CL = -lGLES_CL +QMAKE_LIBS_OPENGL_ES2 = -lGLESv2 QMAKE_LIBS_OPENVG = -lOpenVG QMAKE_LIBS_THREAD = -lpthread diff --git a/mkspecs/common/wince/qmake.conf b/mkspecs/common/wince/qmake.conf index d6e4ba7..d87be02 100644 --- a/mkspecs/common/wince/qmake.conf +++ b/mkspecs/common/wince/qmake.conf @@ -64,6 +64,10 @@ QMAKE_LIBS_NETWORK = ws2.lib QMAKE_LIBS_OPENGL = QMAKE_LIBS_COMPAT = +QMAKE_LIBS_OPENGL_ES1 = libGLES_CM.lib +QMAKE_LIBS_OPENGL_ES1CL = libGLES_CL.lib +QMAKE_LIBS_OPENGL_ES2 = libGLESv2.lib + QMAKE_LIBS_QT_ENTRY = -lqtmain QMAKE_MOC = $$[QT_INSTALL_BINS]\moc.exe diff --git a/mkspecs/features/unix/opengl.prf b/mkspecs/features/unix/opengl.prf index 2fdf324..f2db819 100644 --- a/mkspecs/features/unix/opengl.prf +++ b/mkspecs/features/unix/opengl.prf @@ -1,4 +1,22 @@ -INCLUDEPATH += $$QMAKE_INCDIR_OPENGL -!isEmpty(QMAKE_LIBDIR_OPENGL):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL -target_qt:LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_QT -else:LIBS += $$QMAKE_LIBS_OPENGL +contains(QT_CONFIG, opengles1) { + INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES1 + !isEmpty(QMAKE_LIBDIR_OPENGL_ES1):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL_ES1 + target_qt:LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES1 + else:LIBS += $$QMAKE_LIBS_OPENGL_ES1 +} else:contains(QT_CONFIG, opengles1cl) { + INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES1CL + !isEmpty(QMAKE_LIBDIR_OPENGL_ES1CL):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL_ES1CL + target_qt:LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES1CL + else:LIBS += $$QMAKE_LIBS_OPENGL_ES1CL +} else:contains(QT_CONFIG, opengles2) { + INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES2 + !isEmpty(QMAKE_LIBDIR_OPENGL_ES2):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL_ES2 + target_qt:LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES2 + else:LIBS += $$QMAKE_LIBS_OPENGL_ES2 +} else { + INCLUDEPATH += $$QMAKE_INCDIR_OPENGL + !isEmpty(QMAKE_LIBDIR_OPENGL):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL + target_qt:LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_QT + else:LIBS += $$QMAKE_LIBS_OPENGL +} + diff --git a/src/3rdparty/phonon/ds9/iodevicereader.cpp b/src/3rdparty/phonon/ds9/iodevicereader.cpp index e0c505c..695af59 100644 --- a/src/3rdparty/phonon/ds9/iodevicereader.cpp +++ b/src/3rdparty/phonon/ds9/iodevicereader.cpp @@ -36,17 +36,20 @@ namespace Phonon //these mediatypes define a stream, its type will be autodetected by DirectShow static QVector<AM_MEDIA_TYPE> getMediaTypes() { - AM_MEDIA_TYPE mt = { MEDIATYPE_Stream, MEDIASUBTYPE_NULL, TRUE, FALSE, 1, GUID_NULL, 0, 0, 0}; + //the order here is important because otherwise, + //directshow might not be able to detect the stream type correctly + + AM_MEDIA_TYPE mt = { MEDIATYPE_Stream, MEDIASUBTYPE_Avi, TRUE, FALSE, 1, GUID_NULL, 0, 0, 0}; QVector<AM_MEDIA_TYPE> ret; - //normal auto-detect stream - ret << mt; //AVI stream - mt.subtype = MEDIASUBTYPE_Avi; ret << mt; //WAVE stream mt.subtype = MEDIASUBTYPE_WAVE; ret << mt; + //normal auto-detect stream (must be at the end!) + mt.subtype = MEDIASUBTYPE_NULL; + ret << mt; return ret; } diff --git a/src/3rdparty/phonon/gstreamer/abstractrenderer.cpp b/src/3rdparty/phonon/gstreamer/abstractrenderer.cpp index 924b611..5d88d10 100644 --- a/src/3rdparty/phonon/gstreamer/abstractrenderer.cpp +++ b/src/3rdparty/phonon/gstreamer/abstractrenderer.cpp @@ -17,6 +17,7 @@ #include "abstractrenderer.h" +#ifndef QT_NO_PHONON_VIDEO QT_BEGIN_NAMESPACE namespace Phonon @@ -52,5 +53,5 @@ void AbstractRenderer::movieSizeChanged(const QSize &size) } //namespace Phonon::Gstreamer QT_END_NAMESPACE - +#endif //QT_NO_PHONON_VIDEO diff --git a/src/3rdparty/phonon/gstreamer/abstractrenderer.h b/src/3rdparty/phonon/gstreamer/abstractrenderer.h index 140413d..10a2822 100644 --- a/src/3rdparty/phonon/gstreamer/abstractrenderer.h +++ b/src/3rdparty/phonon/gstreamer/abstractrenderer.h @@ -23,6 +23,7 @@ #include "medianode.h" #include <phonon/videowidget.h> +#ifndef QT_NO_PHONON_VIDEO QT_BEGIN_NAMESPACE class QString; @@ -58,5 +59,5 @@ protected: } //namespace Phonon::Gstreamer QT_END_NAMESPACE - +#endif //QT_NO_PHONON_VIDEO #endif // Phonon_GSTREAMER_ABSTRACTRENDERER_H diff --git a/src/3rdparty/phonon/gstreamer/artssink.cpp b/src/3rdparty/phonon/gstreamer/artssink.cpp index ff56da9..441607d 100644 --- a/src/3rdparty/phonon/gstreamer/artssink.cpp +++ b/src/3rdparty/phonon/gstreamer/artssink.cpp @@ -233,7 +233,7 @@ static void arts_sink_init (ArtsSink * src, ArtsSinkClass * g_class) Q_UNUSED(g_class); GST_DEBUG_OBJECT (src, "initializing artssink"); src->stream = 0; - +#ifndef QT_NO_LIBRARY p_arts_init = (Ptr_arts_init)QLibrary::resolve(QLatin1String("artsc"), 0, "arts_init"); p_arts_play_stream = (Ptr_arts_play_stream)QLibrary::resolve(QLatin1String("artsc"), 0, "arts_play_stream"); p_arts_close_stream = (Ptr_arts_close_stream)QLibrary::resolve(QLatin1String("artsc"), 0, "arts_close_stream"); @@ -250,6 +250,7 @@ static void arts_sink_init (ArtsSink * src, ArtsSinkClass * g_class) } } sinkCount ++; +#endif //QT_NO_LIBRARY } static void arts_sink_dispose (GObject * object) diff --git a/src/3rdparty/phonon/gstreamer/audioeffect.cpp b/src/3rdparty/phonon/gstreamer/audioeffect.cpp index db72c8b..d3d7a35 100644 --- a/src/3rdparty/phonon/gstreamer/audioeffect.cpp +++ b/src/3rdparty/phonon/gstreamer/audioeffect.cpp @@ -23,7 +23,7 @@ #include "gsthelper.h" #include <gst/gst.h> - +#ifndef QT_NO_PHONON_EFFECT QT_BEGIN_NAMESPACE namespace Phonon @@ -75,4 +75,5 @@ GstElement* AudioEffect::createEffectBin() } //namespace Phonon::Gstreamer QT_END_NAMESPACE +#endif //QT_NO_PHONON_EFFECT #include "moc_audioeffect.cpp" diff --git a/src/3rdparty/phonon/gstreamer/audioeffect.h b/src/3rdparty/phonon/gstreamer/audioeffect.h index 3a985e5..f49f8d2 100644 --- a/src/3rdparty/phonon/gstreamer/audioeffect.h +++ b/src/3rdparty/phonon/gstreamer/audioeffect.h @@ -29,8 +29,8 @@ #include <gst/gst.h> +#ifndef QT_NO_PHONON_EFFECT QT_BEGIN_NAMESPACE - namespace Phonon { namespace Gstreamer @@ -49,7 +49,7 @@ namespace Gstreamer QString m_effectName; }; }} //namespace Phonon::Gstreamer - QT_END_NAMESPACE +#endif //QT_NO_PHONON_EFFECT #endif // Phonon_GSTREAMER_AUDIOEFFECT_H diff --git a/src/3rdparty/phonon/gstreamer/backend.cpp b/src/3rdparty/phonon/gstreamer/backend.cpp index cd49454..e1ffd1f 100644 --- a/src/3rdparty/phonon/gstreamer/backend.cpp +++ b/src/3rdparty/phonon/gstreamer/backend.cpp @@ -55,12 +55,13 @@ Backend::Backend(QObject *parent, const QVariantList &) g_error_free(err); qRegisterMetaType<Message>("Message"); - +#ifndef QT_NO_PROPERTIES setProperty("identifier", QLatin1String("phonon_gstreamer")); setProperty("backendName", QLatin1String("Gstreamer")); setProperty("backendComment", QLatin1String("Gstreamer plugin for Phonon")); setProperty("backendVersion", QLatin1String("0.2")); setProperty("backendWebsite", QLatin1String("http://qt.nokia.com/")); +#endif //QT_NO_PROPERTIES //check if we should enable debug output QString debugLevelString = qgetenv("PHONON_GST_DEBUG"); @@ -117,13 +118,15 @@ QObject *Backend::createObject(BackendInterface::Class c, QObject *parent, const m_audioOutputs.append(ao); return ao; } +#ifndef QT_NO_PHONON_EFFECT case EffectClass: return new AudioEffect(this, args[0].toInt(), parent); - +#endif //QT_NO_PHONON_EFFECT case AudioDataOutputClass: logMessage("createObject() : AudioDataOutput not implemented"); break; +#ifndef QT_NO_PHONON_VIDEO case VideoDataOutputClass: logMessage("createObject() : VideoDataOutput not implemented"); break; @@ -132,9 +135,11 @@ QObject *Backend::createObject(BackendInterface::Class c, QObject *parent, const QWidget *widget = qobject_cast<QWidget*>(parent); return new VideoWidget(this, widget); } - +#endif //QT_NO_PHONON_VIDEO +#ifndef QT_NO_PHONON_VOLUMEFADEREFFECT case VolumeFaderEffectClass: return new VolumeFaderEffect(this, parent); +#endif //QT_NO_PHONON_VOLUMEFADEREFFECT case VisualizationClass: //Fall through default: diff --git a/src/3rdparty/phonon/gstreamer/devicemanager.cpp b/src/3rdparty/phonon/gstreamer/devicemanager.cpp index 2240396..60e860f 100644 --- a/src/3rdparty/phonon/gstreamer/devicemanager.cpp +++ b/src/3rdparty/phonon/gstreamer/devicemanager.cpp @@ -72,18 +72,21 @@ DeviceManager::DeviceManager(Backend *backend) : QObject(backend) , m_backend(backend) { + m_audioSink = qgetenv("PHONON_GST_AUDIOSINK"); + m_videoSinkWidget = qgetenv("PHONON_GST_VIDEOMODE"); + +#ifndef QT_NO_SETTINGS QSettings settings(QLatin1String("Trolltech")); settings.beginGroup(QLatin1String("Qt")); - m_audioSink = qgetenv("PHONON_GST_AUDIOSINK"); if (m_audioSink.isEmpty()) { m_audioSink = settings.value(QLatin1String("audiosink"), "Auto").toByteArray().toLower(); } - m_videoSinkWidget = qgetenv("PHONON_GST_VIDEOMODE"); if (m_videoSinkWidget.isEmpty()) { m_videoSinkWidget = settings.value(QLatin1String("videomode"), "Auto").toByteArray().toLower(); } +#endif //QT_NO_SETTINGS if (m_backend->isValid()) updateDeviceList(); @@ -243,6 +246,7 @@ GstElement *DeviceManager::createAudioSink(Category category) return sink; } +#ifndef QT_NO_PHONON_VIDEO AbstractRenderer *DeviceManager::createVideoRenderer(VideoWidget *parent) { #if !defined(QT_NO_OPENGL) && !defined(QT_OPENGL_ES) @@ -265,6 +269,7 @@ AbstractRenderer *DeviceManager::createVideoRenderer(VideoWidget *parent) #endif return new WidgetRenderer(parent); } +#endif //QT_NO_PHONON_VIDEO /* * Returns a positive device id or -1 if device diff --git a/src/3rdparty/phonon/gstreamer/effect.cpp b/src/3rdparty/phonon/gstreamer/effect.cpp index f653535..4937246 100644 --- a/src/3rdparty/phonon/gstreamer/effect.cpp +++ b/src/3rdparty/phonon/gstreamer/effect.cpp @@ -25,8 +25,8 @@ #include <gst/gst.h> +#ifndef QT_NO_PHONON_EFFECT QT_BEGIN_NAMESPACE - namespace Phonon { namespace Gstreamer @@ -241,6 +241,6 @@ void Effect::setParameterValue(const EffectParameter &p, const QVariant &v) } } //namespace Phonon::Gstreamer - QT_END_NAMESPACE +#endif //QT_NO_PHONON_EFFECT #include "moc_effect.cpp" diff --git a/src/3rdparty/phonon/gstreamer/effect.h b/src/3rdparty/phonon/gstreamer/effect.h index dbbb457..51cbe9c 100644 --- a/src/3rdparty/phonon/gstreamer/effect.h +++ b/src/3rdparty/phonon/gstreamer/effect.h @@ -28,8 +28,8 @@ #include <gst/gst.h> +#ifndef QT_NO_PHONON_EFFECT QT_BEGIN_NAMESPACE - namespace Phonon { namespace Gstreamer @@ -58,7 +58,7 @@ namespace Gstreamer QList<Phonon::EffectParameter> m_parameterList; }; }} //namespace Phonon::Gstreamer - QT_END_NAMESPACE +#endif //QT_NO_PHONON_EFFECT #endif // Phonon_GSTREAMER_EFFECT_H diff --git a/src/3rdparty/phonon/gstreamer/mediaobject.cpp b/src/3rdparty/phonon/gstreamer/mediaobject.cpp index 5dcbd42..1c32c3c 100644 --- a/src/3rdparty/phonon/gstreamer/mediaobject.cpp +++ b/src/3rdparty/phonon/gstreamer/mediaobject.cpp @@ -226,6 +226,7 @@ void MediaObject::cb_unknown_type (GstElement *decodebin, GstPad *pad, GstCaps * QString value = "unknown codec"; // These functions require GStreamer > 0.10.12 +#ifndef QT_NO_LIBRARY static Ptr_gst_pb_utils_init p_gst_pb_utils_init = 0; static Ptr_gst_pb_utils_get_codec_description p_gst_pb_utils_get_codec_description = 0; if (!p_gst_pb_utils_init) { @@ -239,10 +240,13 @@ void MediaObject::cb_unknown_type (GstElement *decodebin, GstPad *pad, GstCaps * codecName = p_gst_pb_utils_get_codec_description (caps); value = QString::fromUtf8(codecName); g_free (codecName); - } else { + } else +#endif //QT_NO_LIBRARY + { // For GStreamer versions < 0.10.12 GstStructure *str = gst_caps_get_structure (caps, 0); value = QString::fromUtf8(gst_structure_get_name (str)); + } media->addMissingCodecName(value); } @@ -392,6 +396,7 @@ bool MediaObject::createPipefromURL(const QUrl &url) */ bool MediaObject::createPipefromStream(const MediaSource &source) { +#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM // Remove any existing data source if (m_datasource) { gst_bin_remove(GST_BIN(m_pipeline), m_datasource); @@ -413,6 +418,10 @@ bool MediaObject::createPipefromStream(const MediaSource &source) return false; } return true; +#else //QT_NO_PHONON_ABSTRACTMEDIASTREAM + Q_UNUSED(source); + return false; +#endif } void MediaObject::createPipeline() diff --git a/src/3rdparty/phonon/gstreamer/phononsrc.cpp b/src/3rdparty/phonon/gstreamer/phononsrc.cpp index f893fb5..97d7220 100644 --- a/src/3rdparty/phonon/gstreamer/phononsrc.cpp +++ b/src/3rdparty/phonon/gstreamer/phononsrc.cpp @@ -109,18 +109,25 @@ static void phonon_src_class_init (PhononSrcClass * klass) static void phonon_src_init (PhononSrc * src, PhononSrcClass * g_class) { Q_UNUSED(g_class); +#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM src->device = 0; +#else + Q_UNUSED(src); +#endif } static void phonon_src_finalize (GObject * object) { +#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM PhononSrc *src; src = GST_PHONON_SRC (object); delete src->device; src->device = 0; +#endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM G_OBJECT_CLASS (parent_class)->finalize (object); } +#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM static gboolean phonon_src_set_device(PhononSrc * src, StreamReader* device) { GstState state; @@ -145,6 +152,7 @@ wrong_state: return FALSE; } } +#endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM static void phonon_src_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec) { @@ -153,6 +161,7 @@ static void phonon_src_set_property (GObject * object, guint prop_id, const GVal src = GST_PHONON_SRC (object); switch (prop_id) { +#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM case ARG_PHONONSRC: { StreamReader *dev = (StreamReader*)(g_value_get_pointer(value)); @@ -160,6 +169,9 @@ static void phonon_src_set_property (GObject * object, guint prop_id, const GVal phonon_src_set_device(src, dev); break; } +#else + Q_UNUSED(value); +#endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -174,9 +186,13 @@ static void phonon_src_get_property (GObject * object, guint prop_id, GValue * v src = GST_PHONON_SRC (object); switch (prop_id) { +#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM case ARG_PHONONSRC: g_value_set_pointer(value, src->device); break; +#else //QT_NO_PHONON_ABSTRACTMEDIASTREAM + Q_UNUSED(value); +#endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -185,6 +201,7 @@ static void phonon_src_get_property (GObject * object, guint prop_id, GValue * v static GstFlowReturn phonon_src_create_read (PhononSrc * src, guint64 offset, guint length, GstBuffer ** buffer) { +#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM Q_ASSERT(src->device); if (!src->device) return GST_FLOW_ERROR; @@ -204,6 +221,13 @@ static GstFlowReturn phonon_src_create_read (PhononSrc * src, guint64 offset, gu gst_mini_object_unref(GST_MINI_OBJECT(buf)); return GST_FLOW_ERROR; +#else //QT_NO_PHONON_ABSTRACTMEDIASTREAM + Q_UNUSED(src); + Q_UNUSED(offset); + Q_UNUSED(length); + Q_UNUSED(buffer); + return GST_FLOW_ERROR; +#endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM } static GstFlowReturn phonon_src_create (GstBaseSrc * basesrc, guint64 offset, guint length, GstBuffer ** buffer) @@ -218,19 +242,23 @@ static GstFlowReturn phonon_src_create (GstBaseSrc * basesrc, guint64 offset, gu static gboolean phonon_src_is_seekable (GstBaseSrc * basesrc) { PhononSrc *src = GST_PHONON_SRC (basesrc); +#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM if (src->device) return src->device->streamSeekable(); +#endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM return false; } static gboolean phonon_src_get_size (GstBaseSrc * basesrc, guint64 * size) { +#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM PhononSrc *src; src = GST_PHONON_SRC (basesrc); if (src->device && src->device->streamSeekable()) { *size = src->device->streamSize(); return TRUE; } +#endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM *size = 0; return FALSE; } diff --git a/src/3rdparty/phonon/gstreamer/phononsrc.h b/src/3rdparty/phonon/gstreamer/phononsrc.h index a2cd8b3..a50f8a2 100644 --- a/src/3rdparty/phonon/gstreamer/phononsrc.h +++ b/src/3rdparty/phonon/gstreamer/phononsrc.h @@ -49,7 +49,9 @@ typedef struct _PhononSrcClass PhononSrcClass; // PhononSrc: struct _PhononSrc { GstBaseSrc element; +#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM StreamReader *device; +#endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM }; struct _PhononSrcClass { diff --git a/src/3rdparty/phonon/gstreamer/streamreader.cpp b/src/3rdparty/phonon/gstreamer/streamreader.cpp index 04fa6cc..f8219e6 100644 --- a/src/3rdparty/phonon/gstreamer/streamreader.cpp +++ b/src/3rdparty/phonon/gstreamer/streamreader.cpp @@ -20,7 +20,7 @@ along with this library. If not, see <http://www.gnu.org/licenses/>. #include <phonon/streaminterface.h> QT_BEGIN_NAMESPACE - +#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM namespace Phonon { namespace Gstreamer @@ -49,5 +49,6 @@ bool StreamReader::read(quint64 pos, int length, char * buffer) } } +#endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM QT_END_NAMESPACE diff --git a/src/3rdparty/phonon/gstreamer/streamreader.h b/src/3rdparty/phonon/gstreamer/streamreader.h index c2e61c8..387370c 100644 --- a/src/3rdparty/phonon/gstreamer/streamreader.h +++ b/src/3rdparty/phonon/gstreamer/streamreader.h @@ -23,6 +23,8 @@ along with this library. If not, see <http://www.gnu.org/licenses/>. QT_BEGIN_NAMESPACE +#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM + namespace Phonon { class MediaSource; @@ -91,6 +93,8 @@ private: } } +#endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM + QT_END_NAMESPACE #endif diff --git a/src/3rdparty/phonon/gstreamer/videowidget.cpp b/src/3rdparty/phonon/gstreamer/videowidget.cpp index efc750a..e1f0ec9 100644 --- a/src/3rdparty/phonon/gstreamer/videowidget.cpp +++ b/src/3rdparty/phonon/gstreamer/videowidget.cpp @@ -33,6 +33,7 @@ #include "widgetrenderer.h" #include "x11renderer.h" +#ifndef QT_NO_PHONON_VIDEO QT_BEGIN_NAMESPACE namespace Phonon @@ -383,5 +384,6 @@ void VideoWidget::mediaNodeEvent(const MediaNodeEvent *event) } //namespace Phonon::Gstreamer QT_END_NAMESPACE +#endif //QT_NO_PHONON_VIDEO #include "moc_videowidget.cpp" diff --git a/src/3rdparty/phonon/gstreamer/videowidget.h b/src/3rdparty/phonon/gstreamer/videowidget.h index a0ebe5f..dc0754d 100644 --- a/src/3rdparty/phonon/gstreamer/videowidget.h +++ b/src/3rdparty/phonon/gstreamer/videowidget.h @@ -28,6 +28,7 @@ #include <gst/gst.h> +#ifndef QT_NO_PHONON_VIDEO QT_BEGIN_NAMESPACE class QString; @@ -102,5 +103,5 @@ private: } //namespace Phonon::Gstreamer QT_END_NAMESPACE - +#endif //QT_NO_PHONON_VIDEO #endif // Phonon_GSTREAMER_VIDEOWIDGET_H diff --git a/src/3rdparty/phonon/gstreamer/volumefadereffect.cpp b/src/3rdparty/phonon/gstreamer/volumefadereffect.cpp index d7ee11b..bf0d646 100644 --- a/src/3rdparty/phonon/gstreamer/volumefadereffect.cpp +++ b/src/3rdparty/phonon/gstreamer/volumefadereffect.cpp @@ -21,11 +21,11 @@ QT_BEGIN_NAMESPACE +#ifndef QT_NO_PHONON_VOLUMEFADEREFFECT namespace Phonon { namespace Gstreamer { - VolumeFaderEffect::VolumeFaderEffect(Backend *backend, QObject *parent) : Effect(backend, parent, AudioSource | AudioSink) , m_fadeCurve(Phonon::VolumeFaderEffect::Fade3Decibel) @@ -156,7 +156,7 @@ bool VolumeFaderEffect::event(QEvent *event) } }} //namespace Phonon::Gstreamer - +#endif //QT_NO_PHONON_VOLUMEFADEREFFECT QT_END_NAMESPACE #include "moc_volumefadereffect.cpp" diff --git a/src/3rdparty/phonon/gstreamer/volumefadereffect.h b/src/3rdparty/phonon/gstreamer/volumefadereffect.h index d74014c..748d2d6 100644 --- a/src/3rdparty/phonon/gstreamer/volumefadereffect.h +++ b/src/3rdparty/phonon/gstreamer/volumefadereffect.h @@ -30,7 +30,7 @@ #include <gst/gst.h> QT_BEGIN_NAMESPACE - +#ifndef QT_NO_PHONON_VOLUMEFADEREFFECT namespace Phonon { namespace Gstreamer @@ -64,7 +64,7 @@ namespace Gstreamer QTime m_fadeStartTime; }; }} //namespace Phonon::Gstreamer - +#endif //QT_NO_PHONON_VOLUMEFADEREFFECT QT_END_NAMESPACE #endif // Phonon_GSTREAMER_VOLUMEFADEREFFECT_H diff --git a/src/3rdparty/phonon/gstreamer/widgetrenderer.cpp b/src/3rdparty/phonon/gstreamer/widgetrenderer.cpp index d4a411f..423af9d 100644 --- a/src/3rdparty/phonon/gstreamer/widgetrenderer.cpp +++ b/src/3rdparty/phonon/gstreamer/widgetrenderer.cpp @@ -32,6 +32,7 @@ # define GL_TEXTURE2 0x84C2 #endif +#ifndef QT_NO_PHONON_VIDEO QT_BEGIN_NAMESPACE static void frameRendered() @@ -148,3 +149,4 @@ bool WidgetRenderer::eventFilter(QEvent * event) } //namespace Phonon::Gstreamer QT_END_NAMESPACE +#endif //QT_NO_PHONON_VIDEO diff --git a/src/3rdparty/phonon/gstreamer/widgetrenderer.h b/src/3rdparty/phonon/gstreamer/widgetrenderer.h index ff64fa7..03ee9c0 100644 --- a/src/3rdparty/phonon/gstreamer/widgetrenderer.h +++ b/src/3rdparty/phonon/gstreamer/widgetrenderer.h @@ -26,6 +26,7 @@ #include <QtOpenGL/QGLWidget> #endif +#ifndef QT_NO_PHONON_VIDEO QT_BEGIN_NAMESPACE class QString; @@ -59,5 +60,5 @@ private: } //namespace Phonon::Gstreamer QT_END_NAMESPACE - +#endif //QT_NO_PHONON_VIDEO #endif // Phonon_GSTREAMER_WIDGETRENDERER_H diff --git a/src/3rdparty/phonon/phonon/factory.cpp b/src/3rdparty/phonon/phonon/factory.cpp index 5c3752a..d5010e7 100644 --- a/src/3rdparty/phonon/phonon/factory.cpp +++ b/src/3rdparty/phonon/phonon/factory.cpp @@ -111,6 +111,7 @@ void Factory::setBackend(QObject *b) bool FactoryPrivate::createBackend() { +#ifndef QT_NO_LIBRARY Q_ASSERT(m_backendObject == 0); #ifndef QT_NO_PHONON_PLATFORMPLUGIN PlatformPlugin *f = globalFactory->platformPlugin(); @@ -186,14 +187,20 @@ bool FactoryPrivate::createBackend() SLOT(objectDescriptionChanged(ObjectDescriptionType))); return true; +#else //QT_NO_LIBRARY + pWarning() << Q_FUNC_INFO << "Trying to use Phonon with QT_NO_LIBRARY defined. " + "That is currently not supported"; + return false; +#endif } FactoryPrivate::FactoryPrivate() + : #ifndef QT_NO_PHONON_PLATFORMPLUGIN - : m_platformPlugin(0), - m_noPlatformPlugin(false) + m_platformPlugin(0), + m_noPlatformPlugin(false), #endif //QT_NO_PHONON_PLATFORMPLUGIN - , m_backendObject(0) + m_backendObject(0) { // Add the post routine to make sure that all other global statics (especially the ones from Qt) // are still available. If the FactoryPrivate dtor is called too late many bad things can happen @@ -442,6 +449,7 @@ QObject *Factory::backend(bool createWhenNull) return globalFactory->m_backendObject; } +#ifndef QT_NO_PROPERTIES #define GET_STRING_PROPERTY(name) \ QString Factory::name() \ { \ @@ -457,7 +465,7 @@ GET_STRING_PROPERTY(backendComment) GET_STRING_PROPERTY(backendVersion) GET_STRING_PROPERTY(backendIcon) GET_STRING_PROPERTY(backendWebsite) - +#endif //QT_NO_PROPERTIES QObject *Factory::registerQObject(QObject *o) { if (o) { diff --git a/src/3rdparty/phonon/phonon/globalconfig.cpp b/src/3rdparty/phonon/phonon/globalconfig.cpp index d13e491..3718c6a 100644 --- a/src/3rdparty/phonon/phonon/globalconfig.cpp +++ b/src/3rdparty/phonon/phonon/globalconfig.cpp @@ -38,7 +38,10 @@ QT_BEGIN_NAMESPACE namespace Phonon { -GlobalConfig::GlobalConfig() : m_config(QLatin1String("kde.org"), QLatin1String("libphonon")) +GlobalConfig::GlobalConfig() +#ifndef QT_NO_SETTINGS + : m_config(QLatin1String("kde.org"), QLatin1String("libphonon")) +#endif //QT_NO_SETTINGS { } @@ -82,6 +85,7 @@ static void filter(ObjectDescriptionType type, BackendInterface *backendIface, Q } } +#ifndef QT_NO_PHONON_SETTINGSGROUP static QList<int> listSortedByConfig(const QSettingsGroup &backendConfig, Phonon::Category category, QList<int> &defaultList) { if (defaultList.size() <= 1) { @@ -126,7 +130,9 @@ static QList<int> listSortedByConfig(const QSettingsGroup &backendConfig, Phonon return deviceList; } +#endif //QT_NO_PHONON_SETTINGSGROUP +#ifndef QT_NO_PHONON_SETTINGSGROUP QList<int> GlobalConfig::audioOutputDeviceListFor(Phonon::Category category, int override) const { //The devices need to be stored independently for every backend @@ -172,7 +178,7 @@ QList<int> GlobalConfig::audioOutputDeviceListFor(Phonon::Category category, int return listSortedByConfig(backendConfig, category, defaultList); } - +#endif //QT_NO_SETTINGSGROUPS int GlobalConfig::audioOutputDeviceFor(Phonon::Category category, int override) const { QList<int> ret = audioOutputDeviceListFor(category, override); @@ -184,6 +190,7 @@ int GlobalConfig::audioOutputDeviceFor(Phonon::Category category, int override) #ifndef QT_NO_PHONON_AUDIOCAPTURE QList<int> GlobalConfig::audioCaptureDeviceListFor(Phonon::Category category, int override) const { +#ifndef QT_NO_PHONON_SETTINGSGROUP //The devices need to be stored independently for every backend const QSettingsGroup backendConfig(&m_config, QLatin1String("AudioCaptureDevice")); // + Factory::identifier()); const QSettingsGroup generalGroup(&m_config, QLatin1String("General")); @@ -226,6 +233,9 @@ QList<int> GlobalConfig::audioCaptureDeviceListFor(Phonon::Category category, in } return listSortedByConfig(backendConfig, category, defaultList); +#else //QT_NO_SETTINGSGROUP + return QList<int>(); +#endif //QT_NO_SETTINGSGROUP } int GlobalConfig::audioCaptureDeviceFor(Phonon::Category category, int override) const diff --git a/src/3rdparty/phonon/phonon/globalconfig_p.h b/src/3rdparty/phonon/phonon/globalconfig_p.h index 023858f..034bce3 100644 --- a/src/3rdparty/phonon/phonon/globalconfig_p.h +++ b/src/3rdparty/phonon/phonon/globalconfig_p.h @@ -46,7 +46,9 @@ namespace Phonon AdvancedDevicesFromSettings = 2, HideUnavailableDevices = 4 }; +#ifndef QT_NO_PHONON_SETTINGSGROUP QList<int> audioOutputDeviceListFor(Phonon::Category category, int override = AdvancedDevicesFromSettings) const; +#endif //QT_NO_PHONON_SETTINGSGROUP int audioOutputDeviceFor(Phonon::Category category, int override = AdvancedDevicesFromSettings) const; #ifndef QT_NO_PHONON_AUDIOCAPTURE @@ -55,7 +57,9 @@ namespace Phonon #endif //QT_NO_PHONON_AUDIOCAPTURE protected: +#ifndef QT_NO_SETTINGS QSettings m_config; +#endif //QT_NO_SETTINGS }; } // namespace Phonon diff --git a/src/3rdparty/phonon/phonon/qsettingsgroup_p.h b/src/3rdparty/phonon/phonon/qsettingsgroup_p.h index 95f6c9b..501fe37 100644 --- a/src/3rdparty/phonon/phonon/qsettingsgroup_p.h +++ b/src/3rdparty/phonon/phonon/qsettingsgroup_p.h @@ -27,6 +27,8 @@ #include <QtCore/QString> #include <QtCore/QVariant> +#ifndef QT_NO_PHONON_SETTINGSGROUP + QT_BEGIN_HEADER QT_BEGIN_NAMESPACE @@ -87,5 +89,6 @@ class QSettingsGroup QT_END_NAMESPACE QT_END_HEADER +#endif //QT_NO_PHONON_SETTINGSGROUP #endif // PHONON_QSETTINGSGROUP_P_H diff --git a/src/3rdparty/webkit/WebCore/platform/FileSystem.h b/src/3rdparty/webkit/WebCore/platform/FileSystem.h index 958eb73..d144990 100644 --- a/src/3rdparty/webkit/WebCore/platform/FileSystem.h +++ b/src/3rdparty/webkit/WebCore/platform/FileSystem.h @@ -90,6 +90,17 @@ struct PlatformModuleVersion { { } + bool operator != (const PlatformModuleVersion& rhs) const + { + return mostSig != rhs.mostSig && leastSig != rhs.leastSig; + } + + + bool operator > (const PlatformModuleVersion& rhs) const + { + return mostSig > rhs.mostSig && leastSig > rhs.leastSig; + } + }; #else typedef QLibrary* PlatformModule; diff --git a/src/corelib/animation/qabstractanimation.cpp b/src/corelib/animation/qabstractanimation.cpp index f83c2a1..a4c7e29 100644 --- a/src/corelib/animation/qabstractanimation.cpp +++ b/src/corelib/animation/qabstractanimation.cpp @@ -157,19 +157,7 @@ #ifndef QT_NO_ANIMATION #define DEFAULT_TIMER_INTERVAL 16 - -#ifdef Q_WS_WIN - /// Fix for Qt 4.7 - //on windows if you're currently dragging a widget an inner eventloop was started by the system - //to make sure that this timer is getting fired, we need to make sure to use the system timers - //that will send a WM_TIMER event. We do that by settings the timer interval to 11 - //It is 16 because QEventDispatcherWin32Private::registerTimer specifically checks if the interval - //is greater than 11 to determine if it should use a system timer (or the multimedia timer). -#define STARTSTOP_TIMER_DELAY 16 -#else #define STARTSTOP_TIMER_DELAY 0 -#endif - QT_BEGIN_NAMESPACE @@ -194,15 +182,10 @@ QUnifiedTimer *QUnifiedTimer::instance() return inst; } -void QUnifiedTimer::ensureTimerUpdate(QAbstractAnimation *animation) +void QUnifiedTimer::ensureTimerUpdate() { - if (isPauseTimerActive) { + if (isPauseTimerActive) updateAnimationsTime(); - } else { - // this code is needed when ensureTimerUpdate is called from setState because we update - // the currentTime when an animation starts running (otherwise we could remove it) - animation->setCurrentTime(animation->currentTime()); - } } void QUnifiedTimer::updateAnimationsTime() @@ -381,7 +364,7 @@ void QAbstractAnimationPrivate::setState(QAbstractAnimation::State newState) case QAbstractAnimation::Paused: if (hasRegisteredTimer) // currentTime needs to be updated if pauseTimer is active - QUnifiedTimer::instance()->ensureTimerUpdate(q); + QUnifiedTimer::instance()->ensureTimerUpdate(); if (!guard) return; //here we're sure that we were in running state before and that the @@ -395,9 +378,11 @@ void QAbstractAnimationPrivate::setState(QAbstractAnimation::State newState) // this ensures that the value is updated now that the animation is running if (oldState == QAbstractAnimation::Stopped) { - if (isTopLevel) + if (isTopLevel) { // currentTime needs to be updated if pauseTimer is active - QUnifiedTimer::instance()->ensureTimerUpdate(q); + QUnifiedTimer::instance()->ensureTimerUpdate(); + q->setCurrentTime(totalCurrentTime); + } } } break; @@ -558,7 +543,7 @@ void QAbstractAnimation::setDirection(Direction direction) // the commands order below is important: first we need to setCurrentTime with the old direction, // then update the direction on this and all children and finally restart the pauseTimer if needed if (d->hasRegisteredTimer) - QUnifiedTimer::instance()->ensureTimerUpdate(this); + QUnifiedTimer::instance()->ensureTimerUpdate(); d->direction = direction; updateDirection(direction); diff --git a/src/corelib/animation/qabstractanimation.h b/src/corelib/animation/qabstractanimation.h index 50b07d7..3d608b6 100644 --- a/src/corelib/animation/qabstractanimation.h +++ b/src/corelib/animation/qabstractanimation.h @@ -59,6 +59,8 @@ class QAbstractAnimationPrivate; class Q_CORE_EXPORT QAbstractAnimation : public QObject { Q_OBJECT + Q_ENUMS(State) + Q_ENUMS(Direction) Q_PROPERTY(State state READ state NOTIFY stateChanged) Q_PROPERTY(int loopCount READ loopCount WRITE setLoopCount) Q_PROPERTY(int currentTime READ currentTime WRITE setCurrentTime) diff --git a/src/corelib/animation/qabstractanimation_p.h b/src/corelib/animation/qabstractanimation_p.h index bef0499..f989bce 100644 --- a/src/corelib/animation/qabstractanimation_p.h +++ b/src/corelib/animation/qabstractanimation_p.h @@ -142,7 +142,7 @@ public: this is used for updating the currentTime of all animations in case the pause timer is active or, otherwise, only of the animation passed as parameter. */ - void ensureTimerUpdate(QAbstractAnimation *animation); + void ensureTimerUpdate(); /* this will evaluate the need of restarting the pause timer in case there is still diff --git a/src/corelib/global/qconfig-minimal.h b/src/corelib/global/qconfig-minimal.h index 3d9539e..58565d6 100644 --- a/src/corelib/global/qconfig-minimal.h +++ b/src/corelib/global/qconfig-minimal.h @@ -123,9 +123,6 @@ #endif /* Images */ -#ifndef QT_NO_ICON -# define QT_NO_ICON -#endif #ifndef QT_NO_IMAGEFORMATPLUGIN # define QT_NO_IMAGEFORMATPLUGIN #endif @@ -258,9 +255,6 @@ #ifndef QT_NO_TEXTHTMLPARSER # define QT_NO_TEXTHTMLPARSER #endif -#ifndef QT_NO_THREAD -# define QT_NO_THREAD -#endif #ifndef QT_NO_CONCURRENT # define QT_NO_CONCURRENT #endif diff --git a/src/corelib/global/qfeatures.h b/src/corelib/global/qfeatures.h index 36c2cf9..9b3e817 100644 --- a/src/corelib/global/qfeatures.h +++ b/src/corelib/global/qfeatures.h @@ -43,6 +43,7 @@ * All features and their dependencies. * * This list is generated from $QTDIR/src/corelib/global/qfeatures.txt + * by $QTSRCDIR/util/scripts/make_qfeatures_dot_h */ // QAction @@ -54,6 +55,9 @@ // Color Names //#define QT_NO_COLORNAMES +// QtConcurrent +//#define QT_NO_CONCURRENT + // QCopChannel //#define QT_NO_COP @@ -75,15 +79,15 @@ // Effects //#define QT_NO_EFFECTS +// QFileSystemWatcher +//#define QT_NO_FILESYSTEMWATCHER + // Freetype Font Engine //#define QT_NO_FREETYPE // QGroupBox //#define QT_NO_GROUPBOX -// QIcon -//#define QT_NO_ICON - // QImageIOPlugin //#define QT_NO_IMAGEFORMATPLUGIN @@ -147,15 +151,15 @@ // Phonon::ObjectDescriptionModel //#define QT_NO_PHONON_OBJECTDESCRIPTIONMODEL -// Phonon::PlatformPlugin -//#define QT_NO_PHONON_PLATFORMPLUGIN - // Phonon::VideoWidget //#define QT_NO_PHONON_VIDEO // QPicture //#define QT_NO_PICTURE +// QProcess +//#define QT_NO_PROCESS + // QProgressBar //#define QT_NO_PROGRESSBAR @@ -174,9 +178,6 @@ // Decoration //#define QT_NO_QWS_DECORATION_DEFAULT -// QWSInputMethod -//#define QT_NO_QWS_INPUTMETHODS - // Keyboard //#define QT_NO_QWS_KEYBOARD @@ -261,6 +262,9 @@ // QSystemSemaphore //#define QT_NO_SYSTEMSEMAPHORE +// QSystemTrayIcon +//#define QT_NO_SYSTEMTRAYICON + // QTabletEvent //#define QT_NO_TABLETEVENT @@ -279,9 +283,6 @@ // QTextStream //#define QT_NO_TEXTSTREAM -// QThread -//#define QT_NO_THREAD - // QToolTip //#define QT_NO_TOOLTIP @@ -306,11 +307,6 @@ // //#define QT_NO_XMLSTREAM -// Accessibility -#if !defined(QT_NO_ACCESSIBILITY) && (defined(QT_NO_PROPERTIES)) -#define QT_NO_ACCESSIBILITY -#endif - // Animation #if !defined(QT_NO_ANIMATION) && (defined(QT_NO_PROPERTIES)) #define QT_NO_ANIMATION @@ -331,11 +327,6 @@ #define QT_NO_CODECS #endif -// QtConcurrent -#if !defined(QT_NO_CONCURRENT) && (defined(QT_NO_THREAD)) -#define QT_NO_CONCURRENT -#endif - // QDate/QTime/QDateTime #if !defined(QT_NO_DATESTRING) && (defined(QT_NO_TEXTDATE)) #define QT_NO_DATESTRING @@ -346,9 +337,9 @@ #define QT_NO_DIAL #endif -// QFileSystemWatcher -#if !defined(QT_NO_FILESYSTEMWATCHER) && (defined(QT_NO_THREAD)) -#define QT_NO_FILESYSTEMWATCHER +// QFileSystemModel +#if !defined(QT_NO_FILESYSTEMMODEL) && (defined(QT_NO_FILESYSTEMWATCHER)) +#define QT_NO_FILESYSTEMMODEL #endif // QHostInfo @@ -386,16 +377,6 @@ #define QT_NO_PHONON_VOLUMEFADEREFFECT #endif -// Phonon::VolumeSlider -#if !defined(QT_NO_PHONON_VOLUMESLIDER) && (defined(QT_NO_SLIDER)) -#define QT_NO_PHONON_VOLUMESLIDER -#endif - -// QProcess -#if !defined(QT_NO_PROCESS) && (defined(QT_NO_THREAD)) -#define QT_NO_PROCESS -#endif - // QProgressDialog #if !defined(QT_NO_PROGRESSDIALOG) && (defined(QT_NO_PROGRESSBAR)) #define QT_NO_PROGRESSDIALOG @@ -426,6 +407,16 @@ #define QT_NO_QWS_MANAGER #endif +// QVncTransformed +#if !defined(QT_NO_QWS_TRANSFORMED) && (defined(QT_NO_QWS_PROXYSCREEN)) +#define QT_NO_QWS_TRANSFORMED +#endif + +// QVncScreen +#if !defined(QT_NO_QWS_VNC) && (defined(QT_NO_QWS_PROXYSCREEN)) +#define QT_NO_QWS_VNC +#endif + // QScrollBar #if !defined(QT_NO_SCROLLBAR) && (defined(QT_NO_SLIDER)) #define QT_NO_SCROLLBAR @@ -441,6 +432,11 @@ #define QT_NO_SOCKS5 #endif +// QSoftKeyManager +#if !defined(QT_NO_SOFTKEYMANAGER) && (defined(QT_NO_ACTION)) +#define QT_NO_SOFTKEYMANAGER +#endif + // QSplitter #if !defined(QT_NO_SPLITTER) && (defined(QT_NO_RUBBERBAND)) #define QT_NO_SPLITTER @@ -466,9 +462,9 @@ #define QT_NO_SXE #endif -// QSystemTrayIcon -#if !defined(QT_NO_SYSTEMTRAYICON) && (defined(QT_NO_ICON)) -#define QT_NO_SYSTEMTRAYICON +// QToolButton +#if !defined(QT_NO_TOOLBUTTON) && (defined(QT_NO_ACTION)) +#define QT_NO_TOOLBUTTON #endif // QUndoStack @@ -501,11 +497,6 @@ #define QT_NO_CONTEXTMENU #endif -// QFileSystemModel -#if !defined(QT_NO_FILESYSTEMMODEL) && (defined(QT_NO_FILESYSTEMWATCHER)) -#define QT_NO_FILESYSTEMMODEL -#endif - // File Transfer Protocol #if !defined(QT_NO_FTP) && (defined(QT_NO_URLINFO) || defined(QT_NO_TEXTDATE)) #define QT_NO_FTP @@ -521,9 +512,9 @@ #define QT_NO_LIBRARY #endif -// QPrinter -#if !defined(QT_NO_PRINTER) && (defined(QT_NO_TEXTSTREAM) || defined(QT_NO_PICTURE)) -#define QT_NO_PRINTER +// Phonon::AbstractMediaStream +#if !defined(QT_NO_PHONON_SETTINGSGROUP) && (defined(QT_NO_SETTINGS)) +#define QT_NO_PHONON_SETTINGSGROUP #endif // QScrollArea @@ -531,21 +522,36 @@ #define QT_NO_SCROLLAREA #endif +// QWindowsVistaStyle +#if !defined(QT_NO_STYLE_WINDOWSVISTA) && (defined(QT_NO_STYLE_WINDOWSXP)) +#define QT_NO_STYLE_WINDOWSVISTA +#endif + +// QTabBar +#if !defined(QT_NO_TABBAR) && (defined(QT_NO_TOOLBUTTON)) +#define QT_NO_TABBAR +#endif + // OdfWriter #if !defined(QT_NO_TEXTODFWRITER) && (defined(QT_NO_XMLSTREAMWRITER)) #define QT_NO_TEXTODFWRITER #endif -// QToolButton -#if !defined(QT_NO_TOOLBUTTON) && (defined(QT_NO_ICON) || defined(QT_NO_ACTION)) -#define QT_NO_TOOLBUTTON -#endif - // Translation (UTF-8 representation) #if !defined(QT_NO_TRANSLATION_UTF8) && (defined(QT_NO_TRANSLATION) || defined(QT_NO_TEXTCODEC)) #define QT_NO_TRANSLATION_UTF8 #endif +// QUndoGroup +#if !defined(QT_NO_UNDOGROUP) && (defined(QT_NO_UNDOSTACK)) +#define QT_NO_UNDOGROUP +#endif + +// QWhatsThis +#if !defined(QT_NO_WHATSTHIS) && (defined(QT_NO_TOOLBUTTON)) +#define QT_NO_WHATSTHIS +#endif + // Drag and drop #if !defined(QT_NO_DRAGANDDROP) && (defined(QT_NO_QWS_PROPERTIES) || defined(QT_NO_IMAGEFORMAT_XPM)) #define QT_NO_DRAGANDDROP @@ -556,11 +562,31 @@ #define QT_NO_GRAPHICSVIEW #endif +// QInputContext +#if !defined(QT_NO_IM) && (defined(QT_NO_LIBRARY)) +#define QT_NO_IM +#endif + // QMdiArea #if !defined(QT_NO_MDIAREA) && (defined(QT_NO_SCROLLAREA)) #define QT_NO_MDIAREA #endif +// Phonon::PlatformPlugin +#if !defined(QT_NO_PHONON_PLATFORMPLUGIN) && (defined(QT_NO_LIBRARY)) +#define QT_NO_PHONON_PLATFORMPLUGIN +#endif + +// Phonon::VolumeSlider +#if !defined(QT_NO_PHONON_VOLUMESLIDER) && (defined(QT_NO_SLIDER) || defined(QT_NO_TOOLBUTTON)) +#define QT_NO_PHONON_VOLUMESLIDER +#endif + +// QPrinter +#if !defined(QT_NO_PRINTER) && (defined(QT_NO_TEXTSTREAM) || defined(QT_NO_PICTURE) || defined(QT_NO_TEMPORARYFILE)) +#define QT_NO_PRINTER +#endif + // QSpinBox #if !defined(QT_NO_SPINBOX) && (defined(QT_NO_SPINWIDGET) || defined(QT_NO_LINEEDIT) || defined(QT_NO_VALIDATOR)) #define QT_NO_SPINBOX @@ -591,24 +617,19 @@ #define QT_NO_STYLE_WINDOWSMOBILE #endif -// QWindowsVistaStyle -#if !defined(QT_NO_STYLE_WINDOWSVISTA) && (defined(QT_NO_STYLE_WINDOWS) || defined(QT_NO_STYLE_WINDOWSXP)) -#define QT_NO_STYLE_WINDOWSVISTA -#endif - // QtSvg module #if !defined(QT_NO_SVG) && (defined(QT_NO_XMLSTREAMREADER) || defined(QT_NO_CSSPARSER)) #define QT_NO_SVG #endif -// QTabBar -#if !defined(QT_NO_TABBAR) && (defined(QT_NO_TOOLBUTTON)) -#define QT_NO_TABBAR +// Q3TabDialog +#if !defined(QT_NO_TABDIALOG) && (defined(QT_NO_TABBAR)) +#define QT_NO_TABDIALOG #endif -// QUndoGroup -#if !defined(QT_NO_UNDOGROUP) && (defined(QT_NO_UNDOCOMMAND) || defined(QT_NO_UNDOSTACK)) -#define QT_NO_UNDOGROUP +// QColorDialog +#if !defined(QT_NO_COLORDIALOG) && (defined(QT_NO_SPINBOX)) +#define QT_NO_COLORDIALOG #endif // The Model/View Framework @@ -616,6 +637,16 @@ #define QT_NO_ITEMVIEWS #endif +// QMenuBar +#if !defined(QT_NO_MENUBAR) && (defined(QT_NO_MENU) || defined(QT_NO_TOOLBUTTON)) +#define QT_NO_MENUBAR +#endif + +// QWSInputMethod +#if !defined(QT_NO_QWS_INPUTMETHODS) && (defined(QT_NO_IM)) +#define QT_NO_QWS_INPUTMETHODS +#endif + // Sound Server #if !defined(QT_NO_QWS_SOUNDSERVER) && (defined(QT_NO_SOUND) || defined(QT_NO_HOSTINFO) || defined(QT_NO_QWS_MULTIPROCESS)) #define QT_NO_QWS_SOUNDSERVER @@ -631,9 +662,9 @@ #define QT_NO_SVGRENDERER #endif -// Q3TabDialog -#if !defined(QT_NO_TABDIALOG) && (defined(QT_NO_TABBAR)) -#define QT_NO_TABDIALOG +// QTabWidget +#if !defined(QT_NO_TABWIDGET) && (defined(QT_NO_TABBAR) || defined(QT_NO_STACKEDWIDGET)) +#define QT_NO_TABWIDGET #endif // QTextCodecPlugin @@ -646,16 +677,6 @@ #define QT_NO_TEXTEDIT #endif -// QWhatsThis -#if !defined(QT_NO_WHATSTHIS) && (defined(QT_NO_TOOLBUTTON) || defined(QT_NO_ACTION)) -#define QT_NO_WHATSTHIS -#endif - -// QDirModel -#if !defined(QT_NO_DIRMODEL) && (defined(QT_NO_ITEMVIEWS)) -#define QT_NO_DIRMODEL -#endif - // QErrorMessage #if !defined(QT_NO_ERRORMESSAGE) && (defined(QT_NO_TEXTEDIT)) #define QT_NO_ERRORMESSAGE @@ -666,9 +687,9 @@ #define QT_NO_LISTVIEW #endif -// QMenuBar -#if !defined(QT_NO_MENUBAR) && (defined(QT_NO_MENU) || defined(QT_NO_TOOLBUTTON)) -#define QT_NO_MENUBAR +// QMainWindow +#if !defined(QT_NO_MAINWINDOW) && (defined(QT_NO_MENU) || defined(QT_NO_RESIZEHANDLER) || defined(QT_NO_TOOLBUTTON)) +#define QT_NO_MAINWINDOW #endif // QAbstractProxyModel @@ -701,24 +722,24 @@ #define QT_NO_TABLEVIEW #endif -// QTabWidget -#if !defined(QT_NO_TABWIDGET) && (defined(QT_NO_TABBAR) || defined(QT_NO_STACKEDWIDGET)) -#define QT_NO_TABWIDGET -#endif - // QTextBrowser #if !defined(QT_NO_TEXTBROWSER) && (defined(QT_NO_TEXTEDIT)) #define QT_NO_TEXTBROWSER #endif +// QToolBox +#if !defined(QT_NO_TOOLBOX) && (defined(QT_NO_TOOLBUTTON) || defined(QT_NO_SCROLLAREA)) +#define QT_NO_TOOLBOX +#endif + // QTreeView #if !defined(QT_NO_TREEVIEW) && (defined(QT_NO_ITEMVIEWS)) #define QT_NO_TREEVIEW #endif -// QColorDialog -#if !defined(QT_NO_COLORDIALOG) && (defined(QT_NO_LINEEDIT) || defined(QT_NO_VALIDATOR) || defined(QT_NO_SPINBOX)) -#define QT_NO_COLORDIALOG +// Accessibility +#if !defined(QT_NO_ACCESSIBILITY) && (defined(QT_NO_PROPERTIES) || defined(QT_NO_MENUBAR)) +#define QT_NO_ACCESSIBILITY #endif // QColumnView @@ -731,11 +752,6 @@ #define QT_NO_COMPLETER #endif -// Common UNIX Printing System -#if !defined(QT_NO_CUPS) && (defined(QT_NO_PRINTER) || defined(QT_NO_LIBRARY)) -#define QT_NO_CUPS -#endif - // QDataWidgetMapper #if !defined(QT_NO_DATAWIDGETMAPPER) && (defined(QT_NO_ITEMVIEWS) || defined(QT_NO_PROPERTIES)) #define QT_NO_DATAWIDGETMAPPER @@ -746,11 +762,6 @@ #define QT_NO_LISTWIDGET #endif -// QMainWindow -#if !defined(QT_NO_MAINWINDOW) && (defined(QT_NO_MENU) || defined(QT_NO_RESIZEHANDLER) || defined(QT_NO_TOOLBUTTON)) -#define QT_NO_MAINWINDOW -#endif - // QSortFilterProxyModel #if !defined(QT_NO_SORTFILTERPROXYMODEL) && (defined(QT_NO_PROXYMODEL)) #define QT_NO_SORTFILTERPROXYMODEL @@ -761,24 +772,24 @@ #define QT_NO_TABLEWIDGET #endif +// QToolBar +#if !defined(QT_NO_TOOLBAR) && (defined(QT_NO_MAINWINDOW)) +#define QT_NO_TOOLBAR +#endif + // QTreeWidget #if !defined(QT_NO_TREEWIDGET) && (defined(QT_NO_TREEVIEW)) #define QT_NO_TREEWIDGET #endif -// QPrintPreviewWidget -#if !defined(QT_NO_PRINTPREVIEWWIDGET) && (defined(QT_NO_GRAPHICSVIEW) || defined(QT_NO_PRINTER)) -#define QT_NO_PRINTPREVIEWWIDGET -#endif - -// QToolBar -#if !defined(QT_NO_TOOLBAR) && (defined(QT_NO_MAINWINDOW)) -#define QT_NO_TOOLBAR +// Common UNIX Printing System +#if !defined(QT_NO_CUPS) && (defined(QT_NO_PRINTER) || defined(QT_NO_LIBRARY)) +#define QT_NO_CUPS #endif -// QToolBox -#if !defined(QT_NO_TOOLBOX) && (defined(QT_NO_ICON) || defined(QT_NO_TOOLBUTTON) || defined(QT_NO_SCROLLAREA)) -#define QT_NO_TOOLBOX +// QDirModel +#if !defined(QT_NO_DIRMODEL) && (defined(QT_NO_ITEMVIEWS) || defined(QT_NO_FILESYSTEMMODEL)) +#define QT_NO_DIRMODEL #endif // QDockwidget @@ -791,6 +802,11 @@ #define QT_NO_UNDOVIEW #endif +// QCompleter +#if !defined(QT_NO_FSCOMPLETER) && (defined(QT_NO_FILESYSTEMMODEL) || defined(QT_NO_COMPLETER)) +#define QT_NO_FSCOMPLETER +#endif + // QGraphicsSvgItem #if !defined(QT_NO_GRAPHICSSVGITEM) && (defined(QT_NO_SVGRENDERER) || defined(QT_NO_GRAPHICSVIEW)) #define QT_NO_GRAPHICSSVGITEM @@ -801,6 +817,16 @@ #define QT_NO_COMBOBOX #endif +// QWorkSpace +#if !defined(QT_NO_WORKSPACE) && (defined(QT_NO_SCROLLBAR) || defined(QT_NO_MAINWINDOW) || defined(QT_NO_MENUBAR)) +#define QT_NO_WORKSPACE +#endif + +// QPrintPreviewWidget +#if !defined(QT_NO_PRINTPREVIEWWIDGET) && (defined(QT_NO_GRAPHICSVIEW) || defined(QT_NO_PRINTER) || defined(QT_NO_MAINWINDOW)) +#define QT_NO_PRINTPREVIEWWIDGET +#endif + // QCalendarWidget #if !defined(QT_NO_CALENDARWIDGET) && (defined(QT_NO_TABLEVIEW) || defined(QT_NO_MENU) || defined(QT_NO_TEXTDATE) || defined(QT_NO_SPINBOX) || defined(QT_NO_TOOLBUTTON)) #define QT_NO_CALENDARWIDGET @@ -831,23 +857,18 @@ #define QT_NO_FONTDIALOG #endif -// QWorkSpace -#if !defined(QT_NO_WORKSPACE) && (defined(QT_NO_SCROLLBAR) || defined(QT_NO_RESIZEHANDLER) || defined(QT_NO_MENU) || defined(QT_NO_TOOLBUTTON) || defined(QT_NO_MAINWINDOW) || defined(QT_NO_TOOLBAR) || defined(QT_NO_MENUBAR)) -#define QT_NO_WORKSPACE -#endif - // QPrintDialog -#if !defined(QT_NO_PRINTDIALOG) && (defined(QT_NO_PRINTER) || defined(QT_NO_COMBOBOX) || defined(QT_NO_BUTTONGROUP) || defined(QT_NO_SPINBOX) || defined(QT_NO_TREEVIEW) || defined(QT_NO_STACKEDWIDGET) || defined(QT_NO_TABWIDGET)) +#if !defined(QT_NO_PRINTDIALOG) && (defined(QT_NO_PRINTER) || defined(QT_NO_COMBOBOX) || defined(QT_NO_BUTTONGROUP) || defined(QT_NO_SPINBOX) || defined(QT_NO_TREEVIEW) || defined(QT_NO_TABWIDGET)) #define QT_NO_PRINTDIALOG #endif // QFileDialog -#if !defined(QT_NO_FILEDIALOG) && (defined(QT_NO_DIRMODEL) || defined(QT_NO_TREEVIEW) || defined(QT_NO_COMBOBOX) || defined(QT_NO_TOOLBUTTON) || defined(QT_NO_BUTTONGROUP) || defined(QT_NO_TOOLTIP) || defined(QT_NO_SPLITTER) || defined(QT_NO_STACKEDWIDGET) || defined(QT_NO_FILESYSTEMMODEL)) +#if !defined(QT_NO_FILEDIALOG) && (defined(QT_NO_DIRMODEL) || defined(QT_NO_TREEVIEW) || defined(QT_NO_COMBOBOX) || defined(QT_NO_TOOLBUTTON) || defined(QT_NO_BUTTONGROUP) || defined(QT_NO_TOOLTIP) || defined(QT_NO_SPLITTER) || defined(QT_NO_STACKEDWIDGET) || defined(QT_NO_PROXYMODEL)) #define QT_NO_FILEDIALOG #endif // QPrintPreviewDialog -#if !defined(QT_NO_PRINTPREVIEWDIALOG) && (defined(QT_NO_PRINTPREVIEWWIDGET) || defined(QT_NO_PRINTDIALOG) || defined(QT_NO_MAINWINDOW)) +#if !defined(QT_NO_PRINTPREVIEWDIALOG) && (defined(QT_NO_PRINTPREVIEWWIDGET) || defined(QT_NO_PRINTDIALOG) || defined(QT_NO_TOOLBAR)) #define QT_NO_PRINTPREVIEWDIALOG #endif diff --git a/src/corelib/global/qfeatures.txt b/src/corelib/global/qfeatures.txt index ec47883..ff34006 100644 --- a/src/corelib/global/qfeatures.txt +++ b/src/corelib/global/qfeatures.txt @@ -28,17 +28,10 @@ Requires: Name: CssParser SeeAlso: ??? -Feature: THREAD -Description: Supports multithreaded programming. -Section: Kernel -Requires: -Name: QThread -SeeAlso: ??? - Feature: CONCURRENT Description: Provides a high-level multi-threaded APIs Section: Kernel -Requires: THREAD +Requires: Name: QtConcurrent SeeAlso: ??? @@ -70,6 +63,13 @@ Requires: Name: QAction SeeAlso: ??? +Feature: SOFTKEYMANAGER +Description: Supports softkeys. +Section: Gui +Requires: ACTION +Name: QSoftKeyManager +SeeAlso: ??? + Feature: CURSOR Description: Supports mouse cursors. Section: Kernel @@ -147,6 +147,12 @@ Requires: XMLSTREAM Name: QXmlStreamWriter SeeAlso: ??? +Feature: IM +Description: Inputmethods with QInputContext +Section: Kernel +Requires: LIBRARY +Name: QInputContext +SeeAlso: ??? # Data structures Feature: STL @@ -182,7 +188,7 @@ SeeAlso: ??? Feature: PROCESS Description: Supports external process invocation. Section: File I/O -Requires: THREAD +Requires: Name: QProcess SeeAlso: ??? @@ -232,7 +238,7 @@ Feature: FILESYSTEMWATCHER Description: Provides an interface for monitoring files and directories for modications. Section: File I/O -Requires: THREAD +Requires: Name: QFileSystemWatcher SeeAlso: ??? @@ -339,7 +345,7 @@ SeeAlso: ??? Feature: COMBOBOX Description: Supports comboboxes presenting a list of options to the user. Section: Widgets -Requires: LINEEDIT STANDARDITEMMODEL LISTVIEW +Requires: LINEEDIT STANDARDITEMMODEL LISTVIEW Name: QComboBox SeeAlso: ??? @@ -353,7 +359,7 @@ SeeAlso: ??? Feature: TOOLBUTTON Description: Supports quick-access buttons to commands and options. Section: Widgets -Requires: ICON ACTION +Requires: ACTION Name: QToolButton SeeAlso: ??? @@ -367,7 +373,7 @@ SeeAlso: ??? Feature: TOOLBOX Description: Supports columns of tabbed widget items. Section: Widgets -Requires: ICON TOOLBUTTON SCROLLAREA +Requires: TOOLBUTTON SCROLLAREA Name: QToolBox SeeAlso: ??? @@ -403,7 +409,7 @@ SeeAlso: ??? Feature: WORKSPACE Description: Supports workspace windows, e.g. used in an MDI application. Section: Widgets -Requires: SCROLLBAR RESIZEHANDLER MENU TOOLBUTTON MAINWINDOW TOOLBAR MENUBAR +Requires: SCROLLBAR MAINWINDOW MENUBAR Name: QWorkSpace SeeAlso: ??? @@ -537,7 +543,7 @@ SeeAlso: ??? Feature: WHATSTHIS Description: Supports displaying "What's this" help. Section: Widgets -Requires: TOOLBUTTON ACTION +Requires: TOOLBUTTON Name: QWhatsThis SeeAlso: ??? @@ -567,7 +573,7 @@ Feature: PRINTPREVIEWWIDGET Description: Provides a widget for previewing page layouts for printer output. a date. Section: Widgets -Requires: GRAPHICSVIEW PRINTER +Requires: GRAPHICSVIEW PRINTER MAINWINDOW Name: QPrintPreviewWidget SeeAlso: ??? @@ -584,14 +590,14 @@ SeeAlso: ??? Feature: COLORDIALOG Description: Supports a dialog widget for specifying colors. Section: Dialogs -Requires: LINEEDIT VALIDATOR SPINBOX +Requires: SPINBOX Name: QColorDialog SeeAlso: ??? Feature: FILEDIALOG Description: Supports a dialog widget for selecting files or directories. Section: Dialogs -Requires: DIRMODEL TREEVIEW COMBOBOX TOOLBUTTON BUTTONGROUP TOOLTIP SPLITTER STACKEDWIDGET FILESYSTEMMODEL +Requires: DIRMODEL TREEVIEW COMBOBOX TOOLBUTTON BUTTONGROUP TOOLTIP SPLITTER STACKEDWIDGET PROXYMODEL Name: QFileDialog SeeAlso: ??? @@ -605,14 +611,14 @@ SeeAlso: ??? Feature: PRINTDIALOG Description: Supports a dialog widget for specifying printer configuration. Section: Dialogs -Requires: PRINTER COMBOBOX BUTTONGROUP SPINBOX TREEVIEW STACKEDWIDGET TABWIDGET +Requires: PRINTER COMBOBOX BUTTONGROUP SPINBOX TREEVIEW TABWIDGET Name: QPrintDialog SeeAlso: ??? Feature: PRINTPREVIEWDIALOG Description: Provides a dialog for previewing and configuring page layouts for printer output. Section: Dialogs -Requires: PRINTPREVIEWWIDGET PRINTDIALOG MAINWINDOW +Requires: PRINTPREVIEWWIDGET PRINTDIALOG TOOLBAR Name: QPrintPreviewDialog SeeAlso: ??? @@ -664,7 +670,7 @@ SeeAlso: ??? Feature: DIRMODEL Description: Supports a data model for the local filesystem. Section: ItemViews -Requires: ITEMVIEWS +Requires: ITEMVIEWS FILESYSTEMMODEL Name: QDirModel SeeAlso: ??? @@ -772,7 +778,7 @@ SeeAlso: ??? Feature: STYLE_WINDOWSVISTA Description: Supports a Microsoft WindowsVista-like look and feel. Section: Styles -Requires: STYLE_WINDOWS STYLE_WINDOWSXP +Requires: STYLE_WINDOWSXP Name: QWindowsVistaStyle SeeAlso: ??? @@ -813,13 +819,6 @@ Requires: Name: QImageIOPlugin SeeAlso: ??? -Feature: ICON -Description: Supports scalable icons in different modes and states. -Section: Images -Requires: -Name: QIcon -SeeAlso: ??? - Feature: MOVIE Description: Supports animated images. Section: Images @@ -910,7 +909,7 @@ SeeAlso: ??? Feature: PRINTER Description: Supports printing Section: Painting -Requires: TEXTSTREAM PICTURE +Requires: TEXTSTREAM PICTURE TEMPORARYFILE Name: QPrinter SeeAlso: ??? @@ -1014,7 +1013,7 @@ SeeAlso: ??? Feature: QWS_INPUTMETHODS Description: Supports international input methods. Section: Internationalization -Requires: +Requires: IM Name: QWSInputMethod SeeAlso: ??? @@ -1101,6 +1100,13 @@ Requires: PROXYMODEL Name: QCompleter SeeAlso: ??? +Feature: FSCOMPLETER +Description: Provides completions based on an item model. +Section: Utilities +Requires: FILESYSTEMMODEL COMPLETER +Name: QCompleter +SeeAlso: ??? + Feature: DESKTOPSERVICES Description: Provides methods for accessing common desktop services. Section: Utilities @@ -1111,7 +1117,7 @@ SeeAlso: ??? Feature: SYSTEMTRAYICON Description: Provides an icon for an application in the system tray. Section: Utilities -Requires: ICON +Requires: Name: QSystemTrayIcon SeeAlso: ??? @@ -1132,7 +1138,7 @@ SeeAlso: ??? Feature: UNDOGROUP Description: Section: Utilities -Requires: UNDOCOMMAND UNDOSTACK +Requires: UNDOSTACK Name: QUndoGroup SeeAlso: ??? @@ -1146,7 +1152,7 @@ SeeAlso: ??? Feature: ACCESSIBILITY Description: Provides accessibility support. Section: Utilities -Requires: PROPERTIES +Requires: PROPERTIES MENUBAR Name: Accessibility SeeAlso: ??? @@ -1317,6 +1323,20 @@ Requires: Name: QProxyScreen SeeAlso: ??? +Feature: QWS_VNC +Description: Provides VNC screen driver +Section: Qt for Embedded Linux +Requires: QWS_PROXYSCREEN +Name: QVncScreen +SeeAlso: ??? + +Feature: QWS_TRANSFORMED +Description: Provides Transformed screen driver +Section: Qt for Embedded Linux +Requires: QWS_PROXYSCREEN +Name: QVncTransformed +SeeAlso: ??? + Feature: QWS_DYNAMICSCREENTRANSFORMATION Description: Enables dynamic setting of screen transformation/rotation. Section: Qt for Embedded Linux @@ -1338,7 +1358,7 @@ SeeAlso: ??? Feature: PHONON_PLATFORMPLUGIN Description: Support for platform plugin Section: Phonon -Requires: +Requires: LIBRARY Name: Phonon::PlatformPlugin SeeAlso: ??? @@ -1403,7 +1423,7 @@ SeeAlso: ??? Feature: PHONON_VOLUMESLIDER Description: Support for the Volume Slider class Section: Phonon -Requires: SLIDER +Requires: SLIDER TOOLBUTTON Name: Phonon::VolumeSlider SeeAlso: ??? @@ -1420,3 +1440,10 @@ Section: Phonon Requires: Name: Phonon::AbstractMediaStream SeeAlso: ??? + +Feature: PHONON_SETTINGSGROUP +Description: Phonon settingsgroup +Section: Phonon +Requires: SETTINGS +Name: Phonon::AbstractMediaStream +SeeAlso: ??? diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp index 7d47944..33c6a34 100644 --- a/src/corelib/global/qglobal.cpp +++ b/src/corelib/global/qglobal.cpp @@ -2513,10 +2513,19 @@ Q_GLOBAL_STATIC(SeedStorage, randTLS) // Thread Local Storage for seed value void qsrand(uint seed) { #if defined(Q_OS_UNIX) && !defined(QT_NO_THREAD) && !defined(Q_OS_SYMBIAN) - SeedStorageType *pseed = randTLS()->localData(); - if (!pseed) - randTLS()->setLocalData(pseed = new SeedStorageType); - *pseed = seed; + SeedStorage *seedStorage = randTLS(); + if (seedStorage) { + SeedStorageType *pseed = seedStorage->localData(); + if (!pseed) + seedStorage->setLocalData(pseed = new SeedStorageType); + *pseed = seed; + } else { + //golbal static seed storage should always exist, + //except after being deleted by QGlobalStaticDeleter. + //But since it still can be called from destructor of another + //global static object, fallback to sqrand(seed) + srand(seed); + } #else // On Windows srand() and rand() already use Thread-Local-Storage // to store the seed between calls @@ -2536,21 +2545,24 @@ void qsrand(uint seed) void qsrand() { #if (defined(Q_OS_UNIX) || defined(Q_OS_WIN)) && !defined(QT_NO_THREAD) && !defined(Q_OS_SYMBIAN) - SeedStorageType *pseed = randTLS()->localData(); - if (pseed) { - // already seeded - return; - } - randTLS()->setLocalData(pseed = new SeedStorageType); - // start beyond 1 to avoid the sequence reset - static QBasicAtomicInt serial = Q_BASIC_ATOMIC_INITIALIZER(2); - *pseed = QDateTime::currentDateTime().toTime_t() - + quintptr(&pseed) - + serial.fetchAndAddRelaxed(1); + SeedStorage *seedStorage = randTLS(); + if (seedStorage) { + SeedStorageType *pseed = seedStorage->localData(); + if (pseed) { + // already seeded + return; + } + seedStorage->setLocalData(pseed = new SeedStorageType); + // start beyond 1 to avoid the sequence reset + static QBasicAtomicInt serial = Q_BASIC_ATOMIC_INITIALIZER(2); + *pseed = QDateTime::currentDateTime().toTime_t() + + quintptr(&pseed) + + serial.fetchAndAddRelaxed(1); #if defined(Q_OS_WIN) - // for Windows the srand function must still be called. - srand(*pseed); + // for Windows the srand function must still be called. + srand(*pseed); #endif + } #elif defined(Q_OS_WIN) static unsigned int seed = 0; @@ -2584,12 +2596,21 @@ void qsrand() int qrand() { #if defined(Q_OS_UNIX) && !defined(QT_NO_THREAD) && !defined(Q_OS_SYMBIAN) - SeedStorageType *pseed = randTLS()->localData(); - if (!pseed) { - randTLS()->setLocalData(pseed = new SeedStorageType); - *pseed = 1; + SeedStorage *seedStorage = randTLS(); + if (seedStorage) { + SeedStorageType *pseed = seedStorage->localData(); + if (!pseed) { + seedStorage->setLocalData(pseed = new SeedStorageType); + *pseed = 1; + } + return rand_r(pseed); + } else { + //golbal static seed storage should always exist, + //except after being deleted by QGlobalStaticDeleter. + //But since it still can be called from destructor of another + //global static object, fallback to qrand() + return rand(); } - return rand_r(pseed); #else // On Windows srand() and rand() already use Thread-Local-Storage // to store the seed between calls diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h index 5ee1815..cbb8fda 100644 --- a/src/corelib/global/qglobal.h +++ b/src/corelib/global/qglobal.h @@ -2065,6 +2065,9 @@ Q_DECLARE_TYPEINFO(long double, Q_PRIMITIVE_TYPE); Q_CORE_EXPORT void *qMalloc(size_t size); Q_CORE_EXPORT void qFree(void *ptr); Q_CORE_EXPORT void *qRealloc(void *ptr, size_t size); +Q_CORE_EXPORT void *qMallocAligned(size_t size, size_t alignment); +Q_CORE_EXPORT void *qReallocAligned(void *ptr, size_t size, size_t oldsize, size_t alignment); +Q_CORE_EXPORT void qFreeAligned(void *ptr); Q_CORE_EXPORT void *qMemCopy(void *dest, const void *src, size_t n); Q_CORE_EXPORT void *qMemSet(void *dest, int c, size_t n); diff --git a/src/corelib/global/qmalloc.cpp b/src/corelib/global/qmalloc.cpp index a9f103c..4aab1bd 100644 --- a/src/corelib/global/qmalloc.cpp +++ b/src/corelib/global/qmalloc.cpp @@ -65,4 +65,62 @@ void *qRealloc(void *ptr, size_t size) return ::realloc(ptr, size); } +void *qMallocAligned(size_t size, size_t alignment) +{ + return qReallocAligned(0, size, 0, alignment); +} + +void *qReallocAligned(void *oldptr, size_t newsize, size_t oldsize, size_t alignment) +{ + // fake an aligned allocation + Q_UNUSED(oldsize); + + void *actualptr = oldptr ? static_cast<void **>(oldptr)[-1] : 0; + if (alignment <= sizeof(void*)) { + // special, fast case + void **newptr = static_cast<void **>(qRealloc(actualptr, newsize + sizeof(void*))); + if (!newptr) + return 0; + if (newptr == actualptr) { + // realloc succeeded without reallocating + return oldptr; + } + + *newptr = newptr; + return newptr + 1; + } + + union { void *ptr; void **pptr; quintptr n; } real, faked; + + // qMalloc returns pointers aligned at least at sizeof(size_t) boundaries + // but usually more (8- or 16-byte boundaries). + // So we overallocate by alignment-sizeof(size_t) bytes, so we're guaranteed to find a + // somewhere within the first alignment-sizeof(size_t) that is properly aligned. + + // However, we need to store the actual pointer, so we need to allocate actually size + + // alignment anyway. + + real.ptr = qRealloc(actualptr, newsize + alignment); + if (!real.ptr) + return 0; + + faked.n = real.n + alignment; + faked.n &= ~(alignment - 1); + + // now save the value of the real pointer at faked-sizeof(void*) + // by construction, alignment > sizeof(void*) and is a power of 2, so + // faked-sizeof(void*) is properly aligned for a pointer + faked.pptr[-1] = real.ptr; + + return faked.ptr; +} + +void qFreeAligned(void *ptr) +{ + if (!ptr) + return; + void **ptr2 = static_cast<void **>(ptr); + free(ptr2[-1]); +} + QT_END_NAMESPACE diff --git a/src/corelib/global/qnamespace.h b/src/corelib/global/qnamespace.h index 2b62c6b..aeaca54 100644 --- a/src/corelib/global/qnamespace.h +++ b/src/corelib/global/qnamespace.h @@ -909,12 +909,10 @@ public: Key_Dead_Horn = 0x01001262, // multimedia/internet keys - ignored by default - see QKeyEvent c'tor - Key_Back = 0x01000061, Key_Forward = 0x01000062, Key_Stop = 0x01000063, Key_Refresh = 0x01000064, - Key_VolumeDown = 0x01000070, Key_VolumeMute = 0x01000071, Key_VolumeUp = 0x01000072, @@ -923,7 +921,6 @@ public: Key_BassDown = 0x01000075, Key_TrebleUp = 0x01000076, Key_TrebleDown = 0x01000077, - Key_MediaPlay = 0x01000080, Key_MediaStop = 0x01000081, Key_MediaPrevious = 0x01000082, @@ -932,13 +929,11 @@ public: #endif Key_MediaNext = 0x01000083, Key_MediaRecord = 0x01000084, - Key_HomePage = 0x01000090, Key_Favorites = 0x01000091, Key_Search = 0x01000092, Key_Standby = 0x01000093, Key_OpenUrl = 0x01000094, - Key_LaunchMail = 0x010000a0, Key_LaunchMedia = 0x010000a1, Key_Launch0 = 0x010000a2, @@ -957,6 +952,98 @@ public: Key_LaunchD = 0x010000af, Key_LaunchE = 0x010000b0, Key_LaunchF = 0x010000b1, + Key_MonBrightnessUp = 0x010000b2, + Key_MonBrightnessDown = 0x010000b3, + Key_KeyboardLightOnOff = 0x010000b4, + Key_KeyboardBrightnessUp = 0x010000b5, + Key_KeyboardBrightnessDown = 0x010000b6, + Key_PowerOff = 0x010000b7, + Key_WakeUp = 0x010000b8, + Key_Eject = 0x010000b9, + Key_ScreenSaver = 0x010000ba, + Key_WWW = 0x010000bb, + Key_Memo = 0x010000bc, + Key_LightBulb = 0x010000bd, + Key_Shop = 0x010000be, + Key_History = 0x010000bf, + Key_AddFavorite = 0x010000c0, + Key_HotLinks = 0x010000c1, + Key_BrightnessAdjust = 0x010000c2, + Key_Finance = 0x010000c3, + Key_Community = 0x010000c4, + Key_AudioRewind = 0x010000c5, + Key_BackForward = 0x010000c6, + Key_ApplicationLeft = 0x010000c7, + Key_ApplicationRight = 0x010000c8, + Key_Book = 0x010000c9, + Key_CD = 0x010000ca, + Key_Calculator = 0x010000cb, + Key_ToDoList = 0x010000cc, + Key_ClearGrab = 0x010000cd, + Key_Close = 0x010000ce, + Key_Copy = 0x010000cf, + Key_Cut = 0x010000d0, + Key_Display = 0x010000d1, + Key_DOS = 0x010000d2, + Key_Documents = 0x010000d3, + Key_Excel = 0x010000d4, + Key_Explorer = 0x010000d5, + Key_Game = 0x010000d6, + Key_Go = 0x010000d7, + Key_iTouch = 0x010000d8, + Key_LogOff = 0x010000d9, + Key_Market = 0x010000da, + Key_Meeting = 0x010000db, + Key_MenuKB = 0x010000dc, + Key_MenuPB = 0x010000dd, + Key_MySites = 0x010000de, + Key_News = 0x010000df, + Key_OfficeHome = 0x010000e0, + Key_Option = 0x010000e1, + Key_Paste = 0x010000e2, + Key_Phone = 0x010000e3, + Key_Calendar = 0x010000e4, + Key_Reply = 0x010000e5, + Key_Reload = 0x010000e6, + Key_RotateWindows = 0x010000e7, + Key_RotationPB = 0x010000e8, + Key_RotationKB = 0x010000e9, + Key_Save = 0x010000ea, + Key_Send = 0x010000eb, + Key_Spell = 0x010000ec, + Key_SplitScreen = 0x010000ed, + Key_Support = 0x010000ee, + Key_TaskPane = 0x010000ef, + Key_Terminal = 0x010000f0, + Key_Tools = 0x010000f1, + Key_Travel = 0x010000f2, + Key_Video = 0x010000f3, + Key_Word = 0x010000f4, + Key_Xfer = 0x010000f5, + Key_ZoomIn = 0x010000f6, + Key_ZoomOut = 0x010000f7, + Key_Away = 0x010000f8, + Key_Messenger = 0x010000f9, + Key_WebCam = 0x010000fa, + Key_MailForward = 0x010000fb, + Key_Pictures = 0x010000fc, + Key_Music = 0x010000fd, + Key_Battery = 0x010000fe, + Key_Bluetooth = 0x010000ff, + Key_WLAN = 0x01000100, + Key_UWB = 0x01000101, + Key_AudioForward = 0x01000102, + Key_AudioRepeat = 0x01000103, + Key_AudioRandomPlay = 0x01000104, + Key_Subtitle = 0x01000105, + Key_AudioCycleTrack = 0x01000106, + Key_Time = 0x01000107, + Key_Hibernate = 0x01000108, + Key_View = 0x01000109, + Key_TopMenu = 0x0100010a, + Key_PowerDown = 0x0100010b, + Key_Suspend = 0x0100010c, + Key_ContrastAdjust = 0x0100010d, Key_MediaLast = 0x0100ffff, diff --git a/src/corelib/global/qnamespace.qdoc b/src/corelib/global/qnamespace.qdoc index 5f9d01d..4e369c9 100644 --- a/src/corelib/global/qnamespace.qdoc +++ b/src/corelib/global/qnamespace.qdoc @@ -1609,6 +1609,98 @@ \value Key_LaunchD \value Key_LaunchE \value Key_LaunchF + \value Key_MonBrightnessUp + \value Key_MonBrightnessDown + \value Key_KeyboardLightOnOff + \value Key_KeyboardBrightnessUp + \value Key_KeyboardBrightnessDown + \value Key_PowerOff + \value Key_WakeUp + \value Key_Eject + \value Key_ScreenSaver + \value Key_WWW + \value Key_Memo + \value Key_LightBulb + \value Key_Shop + \value Key_History + \value Key_AddFavorite + \value Key_HotLinks + \value Key_BrightnessAdjust + \value Key_Finance + \value Key_Community + \value Key_AudioRewind + \value Key_BackForward + \value Key_ApplicationLeft + \value Key_ApplicationRight + \value Key_Book + \value Key_CD + \value Key_Calculator + \value Key_ToDoList + \value Key_ClearGrab + \value Key_Close + \value Key_Copy + \value Key_Cut + \value Key_Display + \value Key_DOS + \value Key_Documents + \value Key_Excel + \value Key_Explorer + \value Key_Game + \value Key_Go + \value Key_iTouch + \value Key_LogOff + \value Key_Market + \value Key_Meeting + \value Key_MenuKB + \value Key_MenuPB + \value Key_MySites + \value Key_News + \value Key_OfficeHome + \value Key_Option + \value Key_Paste + \value Key_Phone + \value Key_Calendar + \value Key_Reply + \value Key_Reload + \value Key_RotateWindows + \value Key_RotationPB + \value Key_RotationKB + \value Key_Save + \value Key_Send + \value Key_Spell + \value Key_SplitScreen + \value Key_Support + \value Key_TaskPane + \value Key_Terminal + \value Key_Tools + \value Key_Travel + \value Key_Video + \value Key_Word + \value Key_Xfer + \value Key_ZoomIn + \value Key_ZoomOut + \value Key_Away + \value Key_Messenger + \value Key_WebCam + \value Key_MailForward + \value Key_Pictures + \value Key_Music + \value Key_Battery + \value Key_Bluetooth + \value Key_WLAN + \value Key_UWB + \value Key_AudioForward + \value Key_AudioRepeat + \value Key_AudioRandomPlay + \value Key_Subtitle + \value Key_AudioCycleTrack + \value Key_Time + \value Key_Hibernate + \value Key_View + \value Key_TopMenu + \value Key_PowerDown + \value Key_Suspend + \value Key_ContrastAdjust \value Key_MediaLast \value Key_unknown @@ -2509,7 +2601,7 @@ \value DisplayRole The key data to be rendered in the form of text. (QString) \value DecorationRole The data to be rendered as a decoration in the form - of an icon. (QColor) + of an icon. (QColor, QIcon or QPixmap) \value EditRole The data in a form suitable for editing in an editor. (QString) \value ToolTipRole The data displayed in the item's tooltip. (QString) diff --git a/src/corelib/io/qprocess_unix.cpp b/src/corelib/io/qprocess_unix.cpp index 99296c7..f040d16 100644 --- a/src/corelib/io/qprocess_unix.cpp +++ b/src/corelib/io/qprocess_unix.cpp @@ -108,6 +108,10 @@ QT_END_NAMESPACE QT_BEGIN_NAMESPACE +// POSIX requires PIPE_BUF to be 512 or larger +// so we will use 512 +static const int errorBufferMax = 512; + #ifdef Q_OS_INTEGRITY static inline char *strdup(const char *data) { @@ -752,18 +756,19 @@ void QProcessPrivate::execChild(const char *workingDir, char **path, char **argv } // notify failure + QString error = qt_error_string(errno); #if defined (QPROCESS_DEBUG) - fprintf(stderr, "QProcessPrivate::execChild() failed, notifying parent process\n"); + fprintf(stderr, "QProcessPrivate::execChild() failed (%s), notifying parent process\n", qPrintable(error)); #endif - qt_safe_write(childStartedPipe[1], "", 1); + qt_safe_write(childStartedPipe[1], error.data(), error.length() * sizeof(QChar)); qt_safe_close(childStartedPipe[1]); childStartedPipe[1] = -1; } bool QProcessPrivate::processStarted() { - char c; - int i = qt_safe_read(childStartedPipe[0], &c, 1); + ushort buf[errorBufferMax]; + int i = qt_safe_read(childStartedPipe[0], &buf, sizeof buf); if (startupSocketNotifier) { startupSocketNotifier->setEnabled(false); startupSocketNotifier->deleteLater(); @@ -775,6 +780,11 @@ bool QProcessPrivate::processStarted() #if defined (QPROCESS_DEBUG) qDebug("QProcessPrivate::processStarted() == %s", i <= 0 ? "true" : "false"); #endif + + // did we read an error message? + if (i > 0) + q_func()->setErrorString(QString::fromUtf16(buf, i / sizeof(QChar))); + return i <= 0; } diff --git a/src/corelib/kernel/qeventdispatcher_win.cpp b/src/corelib/kernel/qeventdispatcher_win.cpp index 1e6402f..d13e1d1 100644 --- a/src/corelib/kernel/qeventdispatcher_win.cpp +++ b/src/corelib/kernel/qeventdispatcher_win.cpp @@ -64,6 +64,15 @@ extern uint qGlobalPostedEventsCount(); # define TIME_KILL_SYNCHRONOUS 0x0100 #endif +#ifndef QS_RAWINPUT +# define QS_RAWINPUT 0x0400 +#endif + +enum { + WM_QT_SOCKETNOTIFIER = WM_USER, + WM_QT_SENDPOSTEDEVENTS = WM_USER + 1 +}; + #if defined(Q_OS_WINCE) QT_BEGIN_INCLUDE_NAMESPACE #include <winsock.h> @@ -327,6 +336,11 @@ public: // internal window handle used for socketnotifiers/timers/etc HWND internalHwnd; + // for controlling when to send posted events + QAtomicInt serialNumber; + int lastSerialNumber; + QAtomicInt wakeUps; + // timers WinTimerVec timerVec; WinTimerDict timerDict; @@ -340,9 +354,6 @@ public: QSNDict sn_except; void doWsaAsyncSelect(int socket); - // event notifier - QWinEventNotifier wakeUpNotifier; - QList<QWinEventNotifier *> winEventNotifierList; void activateEventNotifier(QWinEventNotifier * wen); @@ -351,19 +362,13 @@ public: }; QEventDispatcherWin32Private::QEventDispatcherWin32Private() - : threadId(GetCurrentThreadId()), interrupt(false), internalHwnd(0) + : threadId(GetCurrentThreadId()), interrupt(false), internalHwnd(0), serialNumber(0), lastSerialNumber(0), wakeUps(0) { resolveTimerAPI(); - - wakeUpNotifier.setHandle(CreateEvent(0, FALSE, FALSE, 0)); - if (!wakeUpNotifier.handle()) - qWarning("QEventDispatcher: Creating QEventDispatcherWin32Private wakeup event failed"); } QEventDispatcherWin32Private::~QEventDispatcherWin32Private() { - wakeUpNotifier.setEnabled(false); - CloseHandle(wakeUpNotifier.handle()); if (internalHwnd) DestroyWindow(internalHwnd); QString className = QLatin1String("QEventDispatcherWin32_Internal_Widget") + QString::number(quintptr(qt_internal_proc)); @@ -408,22 +413,35 @@ void WINAPI CALLBACK qt_fast_timer_proc(uint timerId, uint /*reserved*/, DWORD_P LRESULT CALLBACK qt_internal_proc(HWND hwnd, UINT message, WPARAM wp, LPARAM lp) { - if (message == WM_NCCREATE) { - return true; - } else if (message == WM_USER) { + if (message == WM_NCCREATE) + return true; - // socket notifier message - MSG msg; - msg.hwnd = hwnd; - msg.message = message; - msg.wParam = wp; - msg.lParam = lp; + MSG msg; + msg.hwnd = hwnd; + msg.message = message; + msg.wParam = wp; + msg.lParam = lp; + QCoreApplication *app = QCoreApplication::instance(); + long result; + if (!app) { + if (message == WM_TIMER) + KillTimer(hwnd, wp); + return 0; + } else if (app->filterEvent(&msg, &result)) { + return result; + } - QCoreApplication *app = QCoreApplication::instance(); - long result; - if (app && app->filterEvent(&msg, &result)) - return result; +#ifdef GWLP_USERDATA + QEventDispatcherWin32 *q = (QEventDispatcherWin32 *) GetWindowLongPtr(hwnd, GWLP_USERDATA); +#else + QEventDispatcherWin32 *q = (QEventDispatcherWin32 *) GetWindowLong(hwnd, GWL_USERDATA); +#endif + QEventDispatcherWin32Private *d = 0; + if (q != 0) + d = q->d_func(); + if (message == WM_QT_SOCKETNOTIFIER) { + // socket notifier message int type = -1; switch (WSAGETSELECTEVENT(lp)) { case FD_READ: @@ -440,56 +458,50 @@ LRESULT CALLBACK qt_internal_proc(HWND hwnd, UINT message, WPARAM wp, LPARAM lp) break; } if (type >= 0) { - - #ifdef GWLP_USERDATA - QEventDispatcherWin32 *eventDispatcher = - (QEventDispatcherWin32 *) GetWindowLongPtr(hwnd, GWLP_USERDATA); - #else - QEventDispatcherWin32 *eventDispatcher = - (QEventDispatcherWin32 *) GetWindowLong(hwnd, GWL_USERDATA); - #endif - if (eventDispatcher) { - QEventDispatcherWin32Private *d = eventDispatcher->d_func(); - QSNDict *sn_vec[3] = { &d->sn_read, &d->sn_write, &d->sn_except }; - QSNDict *dict = sn_vec[type]; - - QSockNot *sn = dict ? dict->value(wp) : 0; - if (sn) { - QEvent event(QEvent::SockAct); - QCoreApplication::sendEvent(sn->obj, &event); - } + Q_ASSERT(d != 0); + QSNDict *sn_vec[3] = { &d->sn_read, &d->sn_write, &d->sn_except }; + QSNDict *dict = sn_vec[type]; + + QSockNot *sn = dict ? dict->value(wp) : 0; + if (sn) { + QEvent event(QEvent::SockAct); + QCoreApplication::sendEvent(sn->obj, &event); } } return 0; - - } else if (message == WM_TIMER) { - - MSG msg; - msg.hwnd = hwnd; - msg.message = message; - msg.wParam = wp; - msg.lParam = lp; - - QCoreApplication *app = QCoreApplication::instance(); - Q_ASSERT_X(app, "qt_interal_proc", "Timer fired, but no QCoreApplication"); - if (!app) { - KillTimer(hwnd, wp); - return 0; + } else if (message == WM_TIMER) { + if (wp == ~0u) { + KillTimer(d->internalHwnd, wp); + int localSerialNumber = d->serialNumber; + (void) d->wakeUps.fetchAndStoreRelease(0); + if (localSerialNumber != d->lastSerialNumber) { + PostMessage(d->internalHwnd, WM_QT_SENDPOSTEDEVENTS, 0, 0); + } + } else { + Q_ASSERT(d != 0); + d->sendTimerEvent(wp); + } + return 0; + } else if (message == WM_QT_SENDPOSTEDEVENTS) { + int localSerialNumber = d->serialNumber; + + if (GetQueueStatus(QS_INPUT | QS_RAWINPUT | QS_TIMER) != 0) { + // delay the next pass of sendPostedEvents() until we get the special + // WM_TIMER, which allows all pending Windows messages to be processed + SetTimer(d->internalHwnd, ~0u, 0, 0); + } else { + // nothing pending in the queue, let sendPostedEvents go through + d->wakeUps.fetchAndStoreRelease(0); } - long result; - if (app->filterEvent(&msg, &result)) - return result; - - QEventDispatcherWin32 *eventDispatcher = - qobject_cast<QEventDispatcherWin32 *>(QAbstractEventDispatcher::instance()); - Q_ASSERT(eventDispatcher != 0); - QEventDispatcherWin32Private *d = eventDispatcher->d_func(); - d->sendTimerEvent(wp); + if (localSerialNumber != d->lastSerialNumber) { + d->lastSerialNumber = localSerialNumber; + QCoreApplicationPrivate::sendPostedEvents(0, 0, d->threadData); + } return 0; } - return DefWindowProc(hwnd, message, wp, lp); + return DefWindowProc(hwnd, message, wp, lp); } static HWND qt_create_internal_window(const QEventDispatcherWin32 *eventDispatcher) @@ -538,11 +550,6 @@ void QEventDispatcherWin32Private::registerTimer(WinTimerInfo *t) Q_Q(QEventDispatcherWin32); int ok = 0; - - //in the animation api, we delay the start of the animation - //for the dock widgets, we need to use a system timer because dragging a native window - //makes Windows start its own event loop. - //So if this threshold changes, please change STARTSTOP_TIMER_DELAY in qabstractanimation.cpp accordingly. if (t->interval > 15 || !t->interval || !qtimeSetEvent) { ok = 1; if (!t->interval) // optimization for single-shot-zero-timer @@ -608,7 +615,7 @@ void QEventDispatcherWin32Private::doWsaAsyncSelect(int socket) sn_event |= FD_OOB; // BoundsChecker may emit a warning for WSAAsyncSelect when sn_event == 0 // This is a BoundsChecker bug and not a Qt bug - WSAAsyncSelect(socket, internalHwnd, sn_event ? WM_USER : 0, sn_event); + WSAAsyncSelect(socket, internalHwnd, sn_event ? WM_QT_SOCKETNOTIFIER : 0, sn_event); } void QEventDispatcherWin32::createInternalHwnd() @@ -630,6 +637,9 @@ void QEventDispatcherWin32::createInternalHwnd() // start all normal timers for (int i = 0; i < d->timerVec.count(); ++i) d->registerTimer(d->timerVec.at(i)); + + // trigger a call to sendPostedEvents() + wakeUp(); } QEventDispatcherWin32::QEventDispatcherWin32(QObject *parent) @@ -653,9 +663,9 @@ bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags) bool canWait; bool retVal = false; + bool seenWM_QT_SENDPOSTEDEVENTS = false; + bool needWM_QT_SENDPOSTEDEVENTS = false; do { - QCoreApplicationPrivate::sendPostedEvents(0, 0, d->threadData); - DWORD waitRet = 0; HANDLE pHandles[MAXIMUM_WAIT_OBJECTS - 1]; QVarLengthArray<MSG> processedTimers; @@ -689,7 +699,7 @@ bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags) d->queuedUserInputEvents.append(msg); } if (haveMessage && (flags & QEventLoop::ExcludeSocketNotifiers) - && (msg.message == WM_USER && msg.hwnd == d->internalHwnd)) { + && (msg.message == WM_QT_SOCKETNOTIFIER && msg.hwnd == d->internalHwnd)) { // queue socket events for later processing haveMessage = false; d->queuedSocketEvents.append(msg); @@ -706,7 +716,13 @@ bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags) } } if (haveMessage) { - if (msg.message == WM_TIMER) { + if (msg.message == WM_QT_SENDPOSTEDEVENTS && !(flags & QEventLoop::EventLoopExec)) { + if (seenWM_QT_SENDPOSTEDEVENTS) { + needWM_QT_SENDPOSTEDEVENTS = true; + continue; + } + seenWM_QT_SENDPOSTEDEVENTS = true; + } else if (msg.message == WM_TIMER) { // avoid live-lock by keeping track of the timers we've already sent bool found = false; for (int i = 0; !found && i < processedTimers.count(); ++i) { @@ -736,9 +752,7 @@ bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags) } // still nothing - wait for message or signalled objects - QThreadData *data = d->threadData; canWait = (!retVal - && data->canWait && !d->interrupt && (flags & QEventLoop::WaitForMoreEvents)); if (canWait) { @@ -757,6 +771,9 @@ bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags) } } while (canWait); + if (needWM_QT_SENDPOSTEDEVENTS) + PostMessage(d->internalHwnd, WM_QT_SENDPOSTEDEVENTS, 0, 0); + return retVal; } @@ -990,7 +1007,11 @@ void QEventDispatcherWin32::activateEventNotifiers() void QEventDispatcherWin32::wakeUp() { Q_D(QEventDispatcherWin32); - SetEvent(d->wakeUpNotifier.handle()); + d->serialNumber.ref(); + if (d->internalHwnd && d->wakeUps.testAndSetAcquire(0, 1)) { + // post a WM_QT_SENDPOSTEDEVENTS to this thread if there isn't one already pending + PostMessage(d->internalHwnd, WM_QT_SENDPOSTEDEVENTS, 0, 0); + } } void QEventDispatcherWin32::interrupt() @@ -1003,13 +1024,8 @@ void QEventDispatcherWin32::interrupt() void QEventDispatcherWin32::flush() { } - void QEventDispatcherWin32::startingUp() -{ - Q_D(QEventDispatcherWin32); - - if (d->wakeUpNotifier.handle()) d->wakeUpNotifier.setEnabled(true); -} +{ } void QEventDispatcherWin32::closingDown() { diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp index f98c449..71afc5b 100644 --- a/src/corelib/kernel/qmetaobject.cpp +++ b/src/corelib/kernel/qmetaobject.cpp @@ -574,8 +574,8 @@ int QMetaObjectPrivate::indexOfSignalRelative(const QMetaObject **baseObject, co if (i >= 0 && m && m->d.superdata) { int conflict = m->d.superdata->indexOfMethod(signal); if (conflict >= 0) - qWarning("QMetaObject::indexOfSignal:%s: Conflict with %s::%s", - m->d.stringdata, m->d.superdata->d.stringdata, signal); + qWarning("QMetaObject::indexOfSignal: signal %s from %s redefined in %s", + signal, m->d.superdata->d.stringdata, m->d.stringdata); } #endif return i; diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index 7be19b3..5303975 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -835,14 +835,7 @@ QObject::QObject(QObjectPrivate &dd, QObject *parent) QObject::~QObject() { Q_D(QObject); - if (d->wasDeleted) { -#if defined(QT_DEBUG) - qWarning("QObject: Double deletion detected"); -#endif - return; - } d->wasDeleted = true; - d->blockSig = 0; // unblock signals so we always emit destroyed() if (!d->isWidget) { diff --git a/src/corelib/kernel/qsharedmemory_unix.cpp b/src/corelib/kernel/qsharedmemory_unix.cpp index 1165fb1..40b9f04 100644 --- a/src/corelib/kernel/qsharedmemory_unix.cpp +++ b/src/corelib/kernel/qsharedmemory_unix.cpp @@ -49,8 +49,6 @@ #include <errno.h> -#ifndef QT_NO_SHAREDMEMORY - #include <sys/types.h> #include <sys/ipc.h> #include <sys/shm.h> @@ -61,6 +59,7 @@ #include "private/qcore_unix_p.h" +#ifndef QT_NO_SHAREDMEMORY QT_BEGIN_NAMESPACE QSharedMemoryPrivate::QSharedMemoryPrivate() diff --git a/src/corelib/kernel/qvariant.h b/src/corelib/kernel/qvariant.h index eb4fb56..3c10788 100644 --- a/src/corelib/kernel/qvariant.h +++ b/src/corelib/kernel/qvariant.h @@ -456,10 +456,11 @@ template <typename T> inline void qVariantSetValue(QVariant &v, const T &t) { //if possible we reuse the current QVariant private - const int type = qMetaTypeId<T>(reinterpret_cast<T *>(0)); + const uint type = qMetaTypeId<T>(reinterpret_cast<T *>(0)); QVariant::Private &d = v.data_ptr(); - if (v.isDetached() && (type <= int(QVariant::Char) || type == d.type)) { + if (v.isDetached() && (type <= uint(QVariant::Char) || type == d.type)) { d.type = type; + d.is_null = false; T *old = reinterpret_cast<T*>(d.is_shared ? d.data.shared->ptr : &d.data.ptr); if (QTypeInfo<T>::isComplex) old->~T(); @@ -469,6 +470,13 @@ inline void qVariantSetValue(QVariant &v, const T &t) } } +template <> +inline void qVariantSetValue<QVariant>(QVariant &v, const QVariant &t) +{ + v = t; +} + + inline QVariant::QVariant() {} inline bool QVariant::isValid() const { return d.type != Invalid; } @@ -558,9 +566,7 @@ inline bool operator!=(const QVariant &v1, const QVariantComparisonHelper &v2) #endif #ifndef QT_MOC -#if !defined qdoc && defined Q_CC_MSVC && _MSC_VER < 1300 - -template<typename T> T qvariant_cast(const QVariant &v, T * = 0) +template<typename T> inline T qvariant_cast(const QVariant &v) { const int vid = qMetaTypeId<T>(static_cast<T *>(0)); if (vid == v.userType()) @@ -573,28 +579,12 @@ template<typename T> T qvariant_cast(const QVariant &v, T * = 0) return T(); } -template<typename T> -inline T qVariantValue(const QVariant &variant, T *t = 0) -{ return qvariant_cast<T>(variant, t); } - -template<typename T> -inline bool qVariantCanConvert(const QVariant &variant, T *t = 0) -{ - return variant.canConvert(static_cast<QVariant::Type>(qMetaTypeId<T>(t))); -} -#else - -template<typename T> T qvariant_cast(const QVariant &v) +template<> inline QVariant qvariant_cast<QVariant>(const QVariant &v) { - const int vid = qMetaTypeId<T>(static_cast<T *>(0)); + static const int vid = qRegisterMetaType<QVariant>("QVariant"); if (vid == v.userType()) - return *reinterpret_cast<const T *>(v.constData()); - if (vid < int(QMetaType::User)) { - T t; - if (qvariant_cast_helper(v, QVariant::Type(vid), &t)) - return t; - } - return T(); + return *reinterpret_cast<const QVariant *>(v.constData()); + return v; } template<typename T> @@ -608,7 +598,6 @@ inline bool qVariantCanConvert(const QVariant &variant) qMetaTypeId<T>(static_cast<T *>(0)))); } #endif -#endif Q_DECLARE_SHARED(QVariant) Q_DECLARE_TYPEINFO(QVariant, Q_MOVABLE_TYPE); diff --git a/src/corelib/plugin/qlibrary.cpp b/src/corelib/plugin/qlibrary.cpp index 2b463a1..6496876 100644 --- a/src/corelib/plugin/qlibrary.cpp +++ b/src/corelib/plugin/qlibrary.cpp @@ -659,7 +659,10 @@ bool QLibraryPrivate::isPlugin(QSettings *settings) #endif if (!pHnd) { #ifdef Q_OS_WIN + //avoid 'Bad Image' message box + UINT oldmode = SetErrorMode(SEM_FAILCRITICALERRORS|SEM_NOOPENFILEERRORBOX); hTempModule = ::LoadLibraryEx((wchar_t*)QDir::toNativeSeparators(fileName).utf16(), 0, DONT_RESOLVE_DLL_REFERENCES); + SetErrorMode(oldmode); #else # if defined(Q_OS_SYMBIAN) //Guard against accidentally trying to load non-plugin libraries by making sure the stub exists diff --git a/src/corelib/tools/qalgorithms.h b/src/corelib/tools/qalgorithms.h index a68ce27..f70821a 100644 --- a/src/corelib/tools/qalgorithms.h +++ b/src/corelib/tools/qalgorithms.h @@ -295,23 +295,12 @@ template <typename RandomAccessIterator, typename T> Q_OUTOFLINE_TEMPLATE RandomAccessIterator qBinaryFind(RandomAccessIterator begin, RandomAccessIterator end, const T &value) { // Implementation is duplicated from QAlgorithmsPrivate. - qint64 l = 0; - qint64 r = end - begin - 1; - if (r < 0) - return end; - qint64 i = (l + r + 1) / 2; - - while (r != l) { - if (value < begin[i]) - r = i - 1; - else - l = i; - i = (l + r + 1) / 2; - } - if (begin[i] < value || value < begin[i]) + RandomAccessIterator it = qLowerBound(begin, end, value); + + if (it == end || value < *it) return end; - else - return begin + i; + + return it; } template <typename RandomAccessIterator, typename T, typename LessThan> @@ -520,23 +509,12 @@ Q_OUTOFLINE_TEMPLATE RandomAccessIterator qUpperBoundHelper(RandomAccessIterator template <typename RandomAccessIterator, typename T, typename LessThan> Q_OUTOFLINE_TEMPLATE RandomAccessIterator qBinaryFindHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) { - qint64 l = 0; - qint64 r = end - begin - 1; - if (r < 0) - return end; - qint64 i = (l + r + 1) / 2; - - while (r != l) { - if (lessThan(value, begin[i])) - r = i - 1; - else - l = i; - i = (l + r + 1) / 2; - } - if (lessThan(begin[i], value) || lessThan(value, begin[i])) + RandomAccessIterator it = qLowerBoundHelper(begin, end, value, lessThan); + + if (it == end || lessThan(value, *it)) return end; - else - return begin + i; + + return it; } } //namespace QAlgorithmsPrivate diff --git a/src/corelib/tools/qcontiguouscache.cpp b/src/corelib/tools/qcontiguouscache.cpp index b0ed701..dd7cab6 100644 --- a/src/corelib/tools/qcontiguouscache.cpp +++ b/src/corelib/tools/qcontiguouscache.cpp @@ -56,6 +56,16 @@ void QContiguousCacheData::dump() const } #endif +QContiguousCacheData *QContiguousCacheData::allocate(int size, int alignment) +{ + return static_cast<QContiguousCacheData *>(qMallocAligned(size, alignment)); +} + +void QContiguousCacheData::free(QContiguousCacheData *data) +{ + qFreeAligned(data); +} + /*! \class QContiguousCache \brief The QContiguousCache class is a template class that provides a contiguous cache. \ingroup tools diff --git a/src/corelib/tools/qcontiguouscache.h b/src/corelib/tools/qcontiguouscache.h index ad78d1f..3785938 100644 --- a/src/corelib/tools/qcontiguouscache.h +++ b/src/corelib/tools/qcontiguouscache.h @@ -62,6 +62,15 @@ struct Q_CORE_EXPORT QContiguousCacheData int start; int offset; uint sharable : 1; + uint reserved : 31; + + // total is 24 bytes (HP-UX aCC: 40 bytes) + // the next entry is already aligned to 8 bytes + // there will be an 8 byte gap here if T requires 16-byte alignment + // (such as long double on 64-bit platforms, __int128, __float128) + + static QContiguousCacheData *allocate(int size, int alignment); + static void free(QContiguousCacheData *data); #ifdef QT_QCONTIGUOUSCACHE_DEBUG void dump() const; @@ -69,33 +78,32 @@ struct Q_CORE_EXPORT QContiguousCacheData }; template <typename T> -struct QContiguousCacheTypedData +struct QContiguousCacheTypedData: private QContiguousCacheData { - QBasicAtomicInt ref; - int alloc; - int count; - int start; - int offset; - uint sharable : 1; - // uint unused : 31; - - // total is 24 bytes (HP-UX aCC: 40 bytes) - // the next entry is already aligned to 8 bytes - // there will be an 8 byte gap here if T requires 16-byte alignment - // (such as long double on 64-bit platforms, __int128, __float128) - + // private inheritance to avoid aliasing warningss T array[1]; + + static inline void free(QContiguousCacheTypedData *data) { QContiguousCacheData::free(data); } }; template<typename T> class QContiguousCache { typedef QContiguousCacheTypedData<T> Data; - union { QContiguousCacheData *p; QContiguousCacheTypedData<T> *d; }; + union { QContiguousCacheData *d; QContiguousCacheTypedData<T> *p; }; public: + // STL compatibility + typedef T value_type; + typedef value_type* pointer; + typedef const value_type* const_pointer; + typedef value_type& reference; + typedef const value_type& const_reference; + typedef ptrdiff_t difference_type; + typedef int size_type; + explicit QContiguousCache(int capacity = 0); QContiguousCache(const QContiguousCache<T> &v) : d(v.d) { d->ref.ref(); if (!d->sharable) detach_helper(); } - inline ~QContiguousCache() { if (!d) return; if (!d->ref.deref()) free(d); } + inline ~QContiguousCache() { if (!d) return; if (!d->ref.deref()) free(p); } inline void detach() { if (d->ref != 1) detach_helper(); } inline bool isDetached() const { return d->ref == 1; } @@ -128,10 +136,10 @@ public: inline int firstIndex() const { return d->offset; } inline int lastIndex() const { return d->offset + d->count - 1; } - inline const T &first() const { Q_ASSERT(!isEmpty()); return d->array[d->start]; } - inline const T &last() const { Q_ASSERT(!isEmpty()); return d->array[(d->start + d->count -1) % d->alloc]; } - inline T &first() { Q_ASSERT(!isEmpty()); detach(); return d->array[d->start]; } - inline T &last() { Q_ASSERT(!isEmpty()); detach(); return d->array[(d->start + d->count -1) % d->alloc]; } + inline const T &first() const { Q_ASSERT(!isEmpty()); return p->array[d->start]; } + inline const T &last() const { Q_ASSERT(!isEmpty()); return p->array[(d->start + d->count -1) % d->alloc]; } + inline T &first() { Q_ASSERT(!isEmpty()); detach(); return p->array[d->start]; } + inline T &last() { Q_ASSERT(!isEmpty()); detach(); return p->array[(d->start + d->count -1) % d->alloc]; } void removeFirst(); T takeFirst(); @@ -156,23 +164,32 @@ private: // count the padding at the end return reinterpret_cast<const char *>(&(reinterpret_cast<const Data *>(this))->array[1]) - reinterpret_cast<const char *>(this); } + int alignOfTypedData() const + { +#ifdef Q_ALIGNOF + return qMax<int>(sizeof(void*), Q_ALIGNOF(Data)); +#else + return 0; +#endif + } }; template <typename T> void QContiguousCache<T>::detach_helper() { - union { QContiguousCacheData *p; QContiguousCacheTypedData<T> *d; } x; + union { QContiguousCacheData *d; QContiguousCacheTypedData<T> *p; } x; - x.p = malloc(d->alloc); + x.d = malloc(d->alloc); x.d->ref = 1; x.d->count = d->count; x.d->start = d->start; x.d->offset = d->offset; x.d->alloc = d->alloc; x.d->sharable = true; + x.d->reserved = 0; - T *dest = x.d->array + x.d->start; - T *src = d->array + d->start; + T *dest = x.p->array + x.d->start; + T *src = p->array + d->start; int oldcount = x.d->count; while (oldcount--) { if (QTypeInfo<T>::isComplex) { @@ -181,15 +198,15 @@ void QContiguousCache<T>::detach_helper() *dest = *src; } dest++; - if (dest == x.d->array + x.d->alloc) - dest = x.d->array; + if (dest == x.p->array + x.d->alloc) + dest = x.p->array; src++; - if (src == d->array + d->alloc) - src = d->array; + if (src == p->array + d->alloc) + src = p->array; } if (!d->ref.deref()) - free(d); + free(p); d = x.d; } @@ -199,14 +216,14 @@ void QContiguousCache<T>::setCapacity(int asize) if (asize == d->alloc) return; detach(); - union { QContiguousCacheData *p; QContiguousCacheTypedData<T> *d; } x; - x.p = malloc(asize); + union { QContiguousCacheData *d; QContiguousCacheTypedData<T> *p; } x; + x.d = malloc(asize); x.d->alloc = asize; x.d->count = qMin(d->count, asize); x.d->offset = d->offset + d->count - x.d->count; x.d->start = x.d->offset % x.d->alloc; - T *dest = x.d->array + (x.d->start + x.d->count-1) % x.d->alloc; - T *src = d->array + (d->start + d->count-1) % d->alloc; + T *dest = x.p->array + (x.d->start + x.d->count-1) % x.d->alloc; + T *src = p->array + (d->start + d->count-1) % d->alloc; int oldcount = x.d->count; while (oldcount--) { if (QTypeInfo<T>::isComplex) { @@ -214,15 +231,15 @@ void QContiguousCache<T>::setCapacity(int asize) } else { *dest = *src; } - if (dest == x.d->array) - dest = x.d->array + x.d->alloc; + if (dest == x.p->array) + dest = x.p->array + x.d->alloc; dest--; - if (src == d->array) - src = d->array + d->alloc; + if (src == p->array) + src = p->array + d->alloc; src--; } /* free old */ - free(d); + free(p); d = x.d; } @@ -232,24 +249,24 @@ void QContiguousCache<T>::clear() if (d->ref == 1) { if (QTypeInfo<T>::isComplex) { int oldcount = d->count; - T * i = d->array + d->start; - T * e = d->array + d->alloc; + T * i = p->array + d->start; + T * e = p->array + d->alloc; while (oldcount--) { i->~T(); i++; if (i == e) - i = d->array; + i = p->array; } } d->count = d->start = d->offset = 0; } else { - union { QContiguousCacheData *p; QContiguousCacheTypedData<T> *d; } x; - x.p = malloc(d->alloc); + union { QContiguousCacheData *d; QContiguousCacheTypedData<T> *p; } x; + x.d = malloc(d->alloc); x.d->ref = 1; x.d->alloc = d->alloc; x.d->count = x.d->start = x.d->offset = 0; x.d->sharable = true; - if (!d->ref.deref()) free(d); + if (!d->ref.deref()) free(p); d = x.d; } } @@ -257,13 +274,13 @@ void QContiguousCache<T>::clear() template <typename T> inline QContiguousCacheData *QContiguousCache<T>::malloc(int aalloc) { - return static_cast<QContiguousCacheData *>(qMalloc(sizeOfTypedData() + (aalloc - 1) * sizeof(T))); + return QContiguousCacheData::allocate(sizeOfTypedData() + (aalloc - 1) * sizeof(T), alignOfTypedData()); } template <typename T> QContiguousCache<T>::QContiguousCache(int cap) { - p = malloc(cap); + d = malloc(cap); d->ref = 1; d->alloc = cap; d->count = d->start = d->offset = 0; @@ -303,16 +320,16 @@ void QContiguousCache<T>::free(Data *x) { if (QTypeInfo<T>::isComplex) { int oldcount = d->count; - T * i = d->array + d->start; - T * e = d->array + d->alloc; + T * i = p->array + d->start; + T * e = p->array + d->alloc; while (oldcount--) { i->~T(); i++; if (i == e) - i = d->array; + i = p->array; } } - qFree(x); + x->free(x); } template <typename T> void QContiguousCache<T>::append(const T &value) @@ -320,10 +337,10 @@ void QContiguousCache<T>::append(const T &value) detach(); if (QTypeInfo<T>::isComplex) { if (d->count == d->alloc) - (d->array + (d->start+d->count) % d->alloc)->~T(); - new (d->array + (d->start+d->count) % d->alloc) T(value); + (p->array + (d->start+d->count) % d->alloc)->~T(); + new (p->array + (d->start+d->count) % d->alloc) T(value); } else { - d->array[(d->start+d->count) % d->alloc] = value; + p->array[(d->start+d->count) % d->alloc] = value; } if (d->count == d->alloc) { @@ -349,12 +366,12 @@ void QContiguousCache<T>::prepend(const T &value) d->count++; else if (d->count == d->alloc) - (d->array + d->start)->~T(); + (p->array + d->start)->~T(); if (QTypeInfo<T>::isComplex) - new (d->array + d->start) T(value); + new (p->array + d->start) T(value); else - d->array[d->start] = value; + p->array[d->start] = value; } template<typename T> @@ -364,9 +381,9 @@ void QContiguousCache<T>::insert(int pos, const T &value) detach(); if (containsIndex(pos)) { if(QTypeInfo<T>::isComplex) - new (d->array + pos % d->alloc) T(value); + new (p->array + pos % d->alloc) T(value); else - d->array[pos % d->alloc] = value; + p->array[pos % d->alloc] = value; } else if (pos == d->offset-1) prepend(value); else if (pos == d->offset+d->count) @@ -378,18 +395,18 @@ void QContiguousCache<T>::insert(int pos, const T &value) d->start = pos % d->alloc; d->count = 1; if (QTypeInfo<T>::isComplex) - new (d->array + d->start) T(value); + new (p->array + d->start) T(value); else - d->array[d->start] = value; + p->array[d->start] = value; } } template <typename T> inline const T &QContiguousCache<T>::at(int pos) const -{ Q_ASSERT_X(pos >= d->offset && pos - d->offset < d->count, "QContiguousCache<T>::at", "index out of range"); return d->array[pos % d->alloc]; } +{ Q_ASSERT_X(pos >= d->offset && pos - d->offset < d->count, "QContiguousCache<T>::at", "index out of range"); return p->array[pos % d->alloc]; } template <typename T> inline const T &QContiguousCache<T>::operator[](int pos) const -{ Q_ASSERT_X(pos >= d->offset && pos - d->offset < d->count, "QContiguousCache<T>::at", "index out of range"); return d->array[pos % d->alloc]; } +{ Q_ASSERT_X(pos >= d->offset && pos - d->offset < d->count, "QContiguousCache<T>::at", "index out of range"); return p->array[pos % d->alloc]; } template <typename T> inline T &QContiguousCache<T>::operator[](int pos) @@ -397,7 +414,7 @@ inline T &QContiguousCache<T>::operator[](int pos) detach(); if (!containsIndex(pos)) insert(pos, T()); - return d->array[pos % d->alloc]; + return p->array[pos % d->alloc]; } template <typename T> @@ -407,7 +424,7 @@ inline void QContiguousCache<T>::removeFirst() detach(); d->count--; if (QTypeInfo<T>::isComplex) - (d->array + d->start)->~T(); + (p->array + d->start)->~T(); d->start = (d->start + 1) % d->alloc; d->offset++; } @@ -419,7 +436,7 @@ inline void QContiguousCache<T>::removeLast() detach(); d->count--; if (QTypeInfo<T>::isComplex) - (d->array + (d->start + d->count) % d->alloc)->~T(); + (p->array + (d->start + d->count) % d->alloc)->~T(); } template <typename T> diff --git a/src/corelib/tools/qhash.cpp b/src/corelib/tools/qhash.cpp index f33aba9..c82c389 100644 --- a/src/corelib/tools/qhash.cpp +++ b/src/corelib/tools/qhash.cpp @@ -166,29 +166,38 @@ static int countBits(int hint) const int MinNumBits = 4; QHashData QHashData::shared_null = { - 0, 0, Q_BASIC_ATOMIC_INITIALIZER(1), 0, 0, MinNumBits, 0, 0, true + 0, 0, Q_BASIC_ATOMIC_INITIALIZER(1), 0, 0, MinNumBits, 0, 0, true, false, 0 }; void *QHashData::allocateNode() { - void *ptr = qMalloc(nodeSize); + return allocateNode(0); +} + +void *QHashData::allocateNode(int nodeAlign) +{ + void *ptr = strictAlignment ? qMallocAligned(nodeSize, nodeAlign) : qMalloc(nodeSize); Q_CHECK_PTR(ptr); return ptr; } void QHashData::freeNode(void *node) { - qFree(node); + if (strictAlignment) + qFreeAligned(node); + else + qFree(node); } QHashData *QHashData::detach_helper(void (*node_duplicate)(Node *, void *), int nodeSize) { - return detach_helper( node_duplicate, 0, nodeSize ); + return detach_helper2( node_duplicate, 0, nodeSize, 0 ); } -QHashData *QHashData::detach_helper(void (*node_duplicate)(Node *, void *), - void (*node_delete)(Node *), - int nodeSize) +QHashData *QHashData::detach_helper2(void (*node_duplicate)(Node *, void *), + void (*node_delete)(Node *), + int nodeSize, + int nodeAlign) { union { QHashData *d; @@ -204,6 +213,8 @@ QHashData *QHashData::detach_helper(void (*node_duplicate)(Node *, void *), d->numBits = numBits; d->numBuckets = numBuckets; d->sharable = true; + d->strictAlignment = nodeAlign > 8; + d->reserved = 0; if (numBuckets) { QT_TRY { @@ -222,7 +233,7 @@ QHashData *QHashData::detach_helper(void (*node_duplicate)(Node *, void *), Node *oldNode = buckets[i]; while (oldNode != this_e) { QT_TRY { - Node *dup = static_cast<Node *>(allocateNode()); + Node *dup = static_cast<Node *>(allocateNode(nodeAlign)); QT_TRY { node_duplicate(oldNode, dup); @@ -262,6 +273,7 @@ void QHashData::free_helper(void (*node_delete)(Node *)) while (cur != this_e) { Node *next = cur->next; node_delete(cur); + freeNode(cur); cur = next; } } diff --git a/src/corelib/tools/qhash.h b/src/corelib/tools/qhash.h index b65f1d3..1918229 100644 --- a/src/corelib/tools/qhash.h +++ b/src/corelib/tools/qhash.h @@ -125,12 +125,15 @@ struct Q_CORE_EXPORT QHashData short numBits; int numBuckets; uint sharable : 1; + uint strictAlignment : 1; + uint reserved : 30; - void *allocateNode(); + void *allocateNode(); // ### Qt5 remove me + void *allocateNode(int nodeAlign); void freeNode(void *node); QHashData *detach_helper(void (*node_duplicate)(Node *, void *), int nodeSize); // ### Qt5 remove me - QHashData *detach_helper(void (*node_duplicate)(Node *, void *), void (*node_delete)(Node *), - int nodeSize); + QHashData *detach_helper2(void (*node_duplicate)(Node *, void *), void (*node_delete)(Node *), + int nodeSize, int nodeAlign); void mightGrow(); bool willGrow(); void hasShrunk(); @@ -267,6 +270,14 @@ class QHash return reinterpret_cast<Node *>(node); } +#ifdef Q_ALIGNOF + static inline int alignOfNode() { return qMax<int>(sizeof(void*), Q_ALIGNOF(Node)); } + static inline int alignOfDummyNode() { return qMax<int>(sizeof(void*), Q_ALIGNOF(DummyNode)); } +#else + static inline int alignOfNode() { return 0; } + static inline int alignOfDummyNode() { return 0; } +#endif + public: inline QHash() : d(&QHashData::shared_null) { d->ref.ref(); } inline QHash(const QHash<Key, T> &other) : d(other.d) { d->ref.ref(); if (!d->sharable) detach(); } @@ -483,7 +494,7 @@ private: Node **findNode(const Key &key, uint *hp = 0) const; Node *createNode(uint h, const Key &key, const T &value, Node **nextNode); void deleteNode(Node *node); - static void deleteNode(QHashData::Node *node); + static void deleteNode2(QHashData::Node *node); static void duplicateNode(QHashData::Node *originalNode, void *newNode); }; @@ -492,12 +503,12 @@ private: template <class Key, class T> Q_INLINE_TEMPLATE void QHash<Key, T>::deleteNode(Node *node) { - deleteNode(reinterpret_cast<QHashData::Node*>(node)); + deleteNode2(reinterpret_cast<QHashData::Node*>(node)); + d->freeNode(node); } - template <class Key, class T> -Q_INLINE_TEMPLATE void QHash<Key, T>::deleteNode(QHashData::Node *node) +Q_INLINE_TEMPLATE void QHash<Key, T>::deleteNode2(QHashData::Node *node) { #ifdef Q_CC_BOR concrete(node)->~QHashNode<Key, T>(); @@ -506,7 +517,6 @@ Q_INLINE_TEMPLATE void QHash<Key, T>::deleteNode(QHashData::Node *node) #else concrete(node)->~Node(); #endif - qFree(node); } template <class Key, class T> @@ -527,9 +537,9 @@ QHash<Key, T>::createNode(uint ah, const Key &akey, const T &avalue, Node **anex Node *node; if (QTypeInfo<T>::isDummy) { - node = reinterpret_cast<Node *>(new (d->allocateNode()) DummyNode(akey)); + node = reinterpret_cast<Node *>(new (d->allocateNode(alignOfDummyNode())) DummyNode(akey)); } else { - node = new (d->allocateNode()) Node(akey, avalue); + node = new (d->allocateNode(alignOfNode())) Node(akey, avalue); } node->h = ah; @@ -554,7 +564,7 @@ Q_INLINE_TEMPLATE QHash<Key, T> &QHash<Key, T>::unite(const QHash<Key, T> &other template <class Key, class T> Q_OUTOFLINE_TEMPLATE void QHash<Key, T>::freeData(QHashData *x) { - x->free_helper(deleteNode); + x->free_helper(deleteNode2); } template <class Key, class T> @@ -566,8 +576,9 @@ Q_INLINE_TEMPLATE void QHash<Key, T>::clear() template <class Key, class T> Q_OUTOFLINE_TEMPLATE void QHash<Key, T>::detach_helper() { - QHashData *x = d->detach_helper(duplicateNode, deleteNode, - QTypeInfo<T>::isDummy ? sizeof(DummyNode) : sizeof(Node)); + QHashData *x = d->detach_helper2(duplicateNode, deleteNode2, + QTypeInfo<T>::isDummy ? sizeof(DummyNode) : sizeof(Node), + QTypeInfo<T>::isDummy ? alignOfDummyNode() : alignOfNode()); if (!d->ref.deref()) freeData(d); d = x; diff --git a/src/corelib/tools/qlocale_symbian.cpp b/src/corelib/tools/qlocale_symbian.cpp index 1660e95..1273d06 100644 --- a/src/corelib/tools/qlocale_symbian.cpp +++ b/src/corelib/tools/qlocale_symbian.cpp @@ -873,9 +873,11 @@ QVariant QSystemLocale::query(QueryType type, QVariant in = QVariant()) const } case NegativeSign: case PositiveSign: + break; case AMText: + return qt_TDes2QString(TAmPmName(TAmPm(EAm))); case PMText: - break; + return qt_TDes2QString(TAmPmName(TAmPm(EPm))); default: break; } diff --git a/src/corelib/tools/qmap.cpp b/src/corelib/tools/qmap.cpp index 1385810..3b48c3f 100644 --- a/src/corelib/tools/qmap.cpp +++ b/src/corelib/tools/qmap.cpp @@ -53,11 +53,16 @@ QT_BEGIN_NAMESPACE QMapData QMapData::shared_null = { &shared_null, { &shared_null, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - Q_BASIC_ATOMIC_INITIALIZER(1), 0, 0, 0, false, true + Q_BASIC_ATOMIC_INITIALIZER(1), 0, 0, 0, false, true, false, 0 }; QMapData *QMapData::createData() { + return createData(0); +} + +QMapData *QMapData::createData(int alignment) +{ QMapData *d = new QMapData; Q_CHECK_PTR(d); Node *e = reinterpret_cast<Node *>(d); @@ -69,6 +74,8 @@ QMapData *QMapData::createData() d->randomBits = 0; d->insertInOrder = false; d->sharable = true; + d->strictAlignment = alignment > 8; + d->reserved = 0; return d; } @@ -80,11 +87,19 @@ void QMapData::continueFreeData(int offset) while (cur != e) { prev = cur; cur = cur->forward[0]; - qFree(reinterpret_cast<char *>(prev) - offset); + if (strictAlignment) + qFreeAligned(reinterpret_cast<char *>(prev) - offset); + else + qFree(reinterpret_cast<char *>(prev) - offset); } delete this; } +QMapData::Node *QMapData::node_create(Node *update[], int offset) +{ + return node_create(update, offset, 0); +} + /*! Creates a new node inside the data structure. @@ -94,10 +109,12 @@ void QMapData::continueFreeData(int offset) \a offset is an amount of bytes that needs to reserved just before the QMapData::Node structure. + \a alignment dictates the alignment for the data. + \internal \since 4.6 */ -QMapData::Node *QMapData::node_create(Node *update[], int offset) +QMapData::Node *QMapData::node_create(Node *update[], int offset, int alignment) { int level = 0; uint mask = (1 << Sparseness) - 1; @@ -118,7 +135,9 @@ QMapData::Node *QMapData::node_create(Node *update[], int offset) if (level == 3 && !insertInOrder) randomBits = qrand(); - void *concreteNode = qMalloc(offset + sizeof(Node) + level * sizeof(Node *)); + void *concreteNode = strictAlignment ? + qMallocAligned(offset + sizeof(Node) + level * sizeof(Node *), alignment) : + qMalloc(offset + sizeof(Node) + level * sizeof(Node *)); Q_CHECK_PTR(concreteNode); Node *abstractNode = reinterpret_cast<Node *>(reinterpret_cast<char *>(concreteNode) + offset); @@ -145,7 +164,10 @@ void QMapData::node_delete(Node *update[], int offset, Node *node) update[i]->forward[i] = node->forward[i]; } --size; - qFree(reinterpret_cast<char *>(node) - offset); + if (strictAlignment) + qFreeAligned(reinterpret_cast<char *>(node) - offset); + else + qFree(reinterpret_cast<char *>(node) - offset); } #ifdef QT_QMAP_DEBUG diff --git a/src/corelib/tools/qmap.h b/src/corelib/tools/qmap.h index 688aca6..65c3d2a 100644 --- a/src/corelib/tools/qmap.h +++ b/src/corelib/tools/qmap.h @@ -74,10 +74,14 @@ struct Q_CORE_EXPORT QMapData uint randomBits; uint insertInOrder : 1; uint sharable : 1; + uint strictAlignment : 1; + uint reserved : 29; - static QMapData *createData(); + static QMapData *createData(); // ### Qt5 remove me + static QMapData *createData(int alignment); void continueFreeData(int offset); - Node *node_create(Node *update[], int offset); + Node *node_create(Node *update[], int offset); // ### Qt5 remove me + Node *node_create(Node *update[], int offset, int alignment); void node_delete(Node *update[], int offset, Node *node); #ifdef QT_QMAP_DEBUG uint adjust_ptr(Node *node); @@ -145,6 +149,13 @@ class QMap }; static inline int payload() { return sizeof(PayloadNode) - sizeof(QMapData::Node *); } + static inline int alignment() { +#ifdef Q_ALIGNOF + return qMax(sizeof(void*), Q_ALIGNOF(Node)); +#else + return 0; +#endif + } static inline Node *concrete(QMapData::Node *node) { return reinterpret_cast<Node *>(reinterpret_cast<char *>(node) - payload()); } @@ -414,7 +425,7 @@ template <class Key, class T> Q_INLINE_TEMPLATE typename QMapData::Node * QMap<Key, T>::node_create(QMapData *adt, QMapData::Node *aupdate[], const Key &akey, const T &avalue) { - QMapData::Node *abstractNode = adt->node_create(aupdate, payload()); + QMapData::Node *abstractNode = adt->node_create(aupdate, payload(), alignment()); QT_TRY { Node *concreteNode = concrete(abstractNode); new (&concreteNode->key) Key(akey); @@ -715,7 +726,7 @@ template <class Key, class T> Q_OUTOFLINE_TEMPLATE void QMap<Key, T>::detach_helper() { union { QMapData *d; QMapData::Node *e; } x; - x.d = QMapData::createData(); + x.d = QMapData::createData(alignment()); if (d->size) { x.d->insertInOrder = true; QMapData::Node *update[QMapData::LastLevel + 1]; @@ -905,7 +916,7 @@ Q_OUTOFLINE_TEMPLATE bool QMap<Key, T>::operator==(const QMap<Key, T> &other) co template <class Key, class T> Q_OUTOFLINE_TEMPLATE QMap<Key, T>::QMap(const std::map<Key, T> &other) { - d = QMapData::createData(); + d = QMapData::createData(alignment()); d->insertInOrder = true; typename std::map<Key,T>::const_iterator it = other.end(); while (it != other.begin()) { diff --git a/src/corelib/tools/qvector.cpp b/src/corelib/tools/qvector.cpp index 20f3a80..8bb1074 100644 --- a/src/corelib/tools/qvector.cpp +++ b/src/corelib/tools/qvector.cpp @@ -45,7 +45,14 @@ QT_BEGIN_NAMESPACE -QVectorData QVectorData::shared_null = { Q_BASIC_ATOMIC_INITIALIZER(1), 0, 0, true, false }; +static inline int alignmentThreshold() +{ + // malloc on 32-bit platforms should return pointers that are 8-byte aligned or more + // while on 64-bit platforms they should be 16-byte aligned or more + return 2 * sizeof(void*); +} + +QVectorData QVectorData::shared_null = { Q_BASIC_ATOMIC_INITIALIZER(1), 0, 0, true, false, 0 }; QVectorData *QVectorData::malloc(int sizeofTypedData, int size, int sizeofT, QVectorData *init) { @@ -55,6 +62,26 @@ QVectorData *QVectorData::malloc(int sizeofTypedData, int size, int sizeofT, QVe return p; } +QVectorData *QVectorData::allocate(int size, int alignment) +{ + return static_cast<QVectorData *>(alignment > alignmentThreshold() ? qMallocAligned(size, alignment) : qMalloc(size)); +} + +QVectorData *QVectorData::reallocate(QVectorData *x, int newsize, int oldsize, int alignment) +{ + if (alignment > alignmentThreshold()) + return static_cast<QVectorData *>(qReallocAligned(x, newsize, oldsize, alignment)); + return static_cast<QVectorData *>(qRealloc(x, newsize)); +} + +void QVectorData::free(QVectorData *x, int alignment) +{ + if (alignment > alignmentThreshold()) + qFreeAligned(x); + else + qFree(x); +} + int QVectorData::grow(int sizeofTypedData, int size, int sizeofT, bool excessive) { if (excessive) diff --git a/src/corelib/tools/qvector.h b/src/corelib/tools/qvector.h index b77b53a..7402d77 100644 --- a/src/corelib/tools/qvector.h +++ b/src/corelib/tools/qvector.h @@ -72,6 +72,7 @@ struct Q_CORE_EXPORT QVectorData #else uint sharable : 1; uint capacity : 1; + uint reserved : 30; #endif static QVectorData shared_null; @@ -79,6 +80,9 @@ struct Q_CORE_EXPORT QVectorData // some debugges when the QVector is member of a class within an unnamed namespace. // ### Qt 5: can be removed completely. (Ralf) static QVectorData *malloc(int sizeofTypedData, int size, int sizeofT, QVectorData *init); + static QVectorData *allocate(int size, int alignment); + static QVectorData *reallocate(QVectorData *old, int newsize, int oldsize, int alignment); + static void free(QVectorData *data, int alignment); static int grow(int sizeofTypedData, int size, int sizeofT, bool excessive); }; @@ -87,6 +91,8 @@ struct QVectorTypedData : private QVectorData { // private inheritance as we must not access QVectorData member thought QVectorTypedData // as this would break strict aliasing rules. (in the case of shared_null) T array[1]; + + static inline void free(QVectorTypedData *x, int alignment) { QVectorData::free(x, alignment); } }; class QRegion; @@ -302,6 +308,14 @@ private: // count the padding at the end return reinterpret_cast<const char *>(&(reinterpret_cast<const Data *>(this))->array[1]) - reinterpret_cast<const char *>(this); } + inline int alignOfTypedData() const + { +#ifdef Q_ALIGNOF + return qMax<int>(sizeof(void*), Q_ALIGNOF(Data)); +#else + return 0; +#endif + } }; template <typename T> @@ -373,7 +387,7 @@ QVector<T> &QVector<T>::operator=(const QVector<T> &v) template <typename T> inline QVectorData *QVector<T>::malloc(int aalloc) { - QVectorData *vectordata = static_cast<QVectorData *>(qMalloc(sizeOfTypedData() + (aalloc - 1) * sizeof(T))); + QVectorData *vectordata = QVectorData::allocate(sizeOfTypedData() + (aalloc - 1) * sizeof(T), alignOfTypedData()); Q_CHECK_PTR(vectordata); return vectordata; } @@ -420,7 +434,7 @@ void QVector<T>::free(Data *x) while (i-- != b) i->~T(); } - qFree(x); + x->free(x, alignOfTypedData()); } template <typename T> @@ -459,7 +473,8 @@ void QVector<T>::realloc(int asize, int aalloc) } } else { QT_TRY { - QVectorData *mem = static_cast<QVectorData *>(qRealloc(p, sizeOfTypedData() + (aalloc - 1) * sizeof(T))); + QVectorData *mem = QVectorData::reallocate(d, sizeOfTypedData() + (aalloc - 1) * sizeof(T), + sizeOfTypedData() + (d->alloc - 1) * sizeof(T), alignOfTypedData()); Q_CHECK_PTR(mem); x.d = d = mem; x.d->size = d->size; @@ -472,6 +487,7 @@ void QVector<T>::realloc(int asize, int aalloc) x.d->alloc = aalloc; x.d->sharable = true; x.d->capacity = d->capacity; + x.d->reserved = 0; } if (QTypeInfo<T>::isComplex) { diff --git a/src/corelib/xml/qxmlstream.g b/src/corelib/xml/qxmlstream.g index 3bf0e7d..6c0c0cf 100644 --- a/src/corelib/xml/qxmlstream.g +++ b/src/corelib/xml/qxmlstream.g @@ -243,7 +243,7 @@ public: class QXmlStreamEntityResolver; - +#ifndef QT_NO_XMLSTREAMREADER class QXmlStreamReaderPrivate : public QXmlStreamReader_Table, public QXmlStreamPrivateTagStack{ QXmlStreamReader *q_ptr; Q_DECLARE_PUBLIC(QXmlStreamReader) @@ -1840,4 +1840,6 @@ nmtoken ::= COLON; } return false; } +#endif //QT_NO_XMLSTREAMREADER.xml + ./ diff --git a/src/corelib/xml/qxmlstream_p.h b/src/corelib/xml/qxmlstream_p.h index ed65409..eee3a13 100644 --- a/src/corelib/xml/qxmlstream_p.h +++ b/src/corelib/xml/qxmlstream_p.h @@ -736,9 +736,9 @@ public: } }; - class QXmlStreamEntityResolver; +#ifndef QT_NO_XMLSTREAMREADER class QXmlStreamReaderPrivate : public QXmlStreamReader_Table, public QXmlStreamPrivateTagStack{ QXmlStreamReader *q_ptr; Q_DECLARE_PUBLIC(QXmlStreamReader) @@ -1959,5 +1959,6 @@ bool QXmlStreamReaderPrivate::parse() return false; } +#endif //QT_NO_XMLSTREAMREADER #endif // QXMLSTREAM_P_H diff --git a/src/dbus/dbus.pro b/src/dbus/dbus.pro index 57c6a58..9ab3920 100644 --- a/src/dbus/dbus.pro +++ b/src/dbus/dbus.pro @@ -1,77 +1,87 @@ -TARGET = QtDBus -QPRO_PWD = $$PWD -QT = core xml -CONFIG += link_pkgconfig -DEFINES += QDBUS_MAKEDLL DBUS_API_SUBJECT_TO_CHANGE +TARGET = QtDBus +QPRO_PWD = $$PWD +QT = core \ + xml +CONFIG += link_pkgconfig +DEFINES += QDBUS_MAKEDLL \ + DBUS_API_SUBJECT_TO_CHANGE QMAKE_CXXFLAGS += $$QT_CFLAGS_DBUS - -contains(QT_CONFIG, dbus-linked) { +contains(QT_CONFIG, dbus-linked) { LIBS_PRIVATE += $$QT_LIBS_DBUS - DEFINES += QT_LINKED_LIBDBUS + DEFINES += QT_LINKED_LIBDBUS } -#INCLUDEPATH += . - -unix { - QMAKE_PKGCONFIG_DESCRIPTION = Qt DBus module - QMAKE_PKGCONFIG_REQUIRES = QtCore QtXml +# INCLUDEPATH += . +unix { + QMAKE_PKGCONFIG_DESCRIPTION = Qt \ + DBus \ + module + QMAKE_PKGCONFIG_REQUIRES = QtCore \ + QtXml } - -win32 { - LIBS_PRIVATE += -lws2_32 -ladvapi32 -lnetapi32 -luser32 - CONFIG(debug, debug|release):LIBS_PRIVATE += -ldbus-1d - else:LIBS_PRIVATE += -ldbus-1 +win32 { + LIBS_PRIVATE += -lws2_32 \ + -ladvapi32 \ + -lnetapi32 \ + -luser32 + CONFIG(debug, debug|release):LIBS_PRIVATE += -ldbus-1d + else:LIBS_PRIVATE += -ldbus-1 } - include(../qbase.pri) - -PUB_HEADERS = qdbusargument.h \ - qdbusconnectioninterface.h \ - qdbusmacros.h \ - qdbuserror.h \ - qdbusextratypes.h \ - qdbusmessage.h \ - qdbusserver.h \ - qdbusconnection.h \ - qdbusabstractinterface.h \ - qdbusinterface.h \ - qdbusabstractadaptor.h \ - qdbusreply.h \ - qdbusmetatype.h \ - qdbuspendingcall.h \ - qdbuspendingreply.h \ - qdbuscontext.h - +PUB_HEADERS = qdbusargument.h \ + qdbusconnectioninterface.h \ + qdbusmacros.h \ + qdbuserror.h \ + qdbusextratypes.h \ + qdbusmessage.h \ + qdbusserver.h \ + qdbusconnection.h \ + qdbusabstractinterface.h \ + qdbusinterface.h \ + qdbusabstractadaptor.h \ + qdbusreply.h \ + qdbusmetatype.h \ + qdbuspendingcall.h \ + qdbuspendingreply.h \ + qdbuscontext.h HEADERS += $$PUB_HEADERS \ - qdbusconnection_p.h qdbusmessage_p.h \ - qdbusinterface_p.h qdbusxmlparser_p.h qdbusabstractadaptor_p.h \ - qdbusargument_p.h qdbusutil_p.h qdbusabstractinterface_p.h \ - qdbuscontext_p.h qdbusthreaddebug_p.h qdbusintegrator_p.h \ - qdbuspendingcall_p.h qdbus_symbols_p.h - -SOURCES += qdbusconnection.cpp \ - qdbusconnectioninterface.cpp \ - qdbuserror.cpp \ - qdbusintegrator.cpp \ - qdbusmessage.cpp \ - qdbusserver.cpp \ - qdbusabstractinterface.cpp \ - qdbusinterface.cpp \ - qdbusxmlparser.cpp \ - qdbusutil.cpp \ - qdbusintrospection.cpp \ - qdbusabstractadaptor.cpp \ - qdbusinternalfilters.cpp \ - qdbusmetaobject.cpp \ - qdbusxmlgenerator.cpp \ - qdbusmisc.cpp \ - qdbusargument.cpp \ - qdbusreply.cpp \ - qdbusmetatype.cpp \ - qdbusextratypes.cpp \ - qdbusmarshaller.cpp \ - qdbuscontext.cpp \ - qdbuspendingcall.cpp \ - qdbuspendingreply.cpp \ - qdbus_symbols.cpp - + qdbusconnection_p.h \ + qdbusmessage_p.h \ + qdbusinterface_p.h \ + qdbusxmlparser_p.h \ + qdbusabstractadaptor_p.h \ + qdbusargument_p.h \ + qdbusutil_p.h \ + qdbusabstractinterface_p.h \ + qdbuscontext_p.h \ + qdbusthreaddebug_p.h \ + qdbusintegrator_p.h \ + qdbuspendingcall_p.h \ + qdbus_symbols_p.h \ + qdbusservicewatcher.h +SOURCES += qdbusconnection.cpp \ + qdbusconnectioninterface.cpp \ + qdbuserror.cpp \ + qdbusintegrator.cpp \ + qdbusmessage.cpp \ + qdbusserver.cpp \ + qdbusabstractinterface.cpp \ + qdbusinterface.cpp \ + qdbusxmlparser.cpp \ + qdbusutil.cpp \ + qdbusintrospection.cpp \ + qdbusabstractadaptor.cpp \ + qdbusinternalfilters.cpp \ + qdbusmetaobject.cpp \ + qdbusxmlgenerator.cpp \ + qdbusmisc.cpp \ + qdbusargument.cpp \ + qdbusreply.cpp \ + qdbusmetatype.cpp \ + qdbusextratypes.cpp \ + qdbusmarshaller.cpp \ + qdbuscontext.cpp \ + qdbuspendingcall.cpp \ + qdbuspendingreply.cpp \ + qdbus_symbols.cpp \ + qdbusservicewatcher.cpp diff --git a/src/dbus/qdbusabstractinterface.cpp b/src/dbus/qdbusabstractinterface.cpp index 61a9d95..994da10 100644 --- a/src/dbus/qdbusabstractinterface.cpp +++ b/src/dbus/qdbusabstractinterface.cpp @@ -279,9 +279,17 @@ QDBusAbstractInterface::QDBusAbstractInterface(QDBusAbstractInterfacePrivate &d, : QDBusAbstractInterfaceBase(d, parent) { // keep track of the service owner - if (!d_func()->currentOwner.isEmpty()) - QObject::connect(d_func()->connectionPrivate(), SIGNAL(serviceOwnerChanged(QString,QString,QString)), - this, SLOT(_q_serviceOwnerChanged(QString,QString,QString))); + if (d.isValid && + d.connection.isConnected() + && !d.service.isEmpty() + && !d.service.startsWith(QLatin1Char(':'))) + d_func()->connection.connect(QLatin1String(DBUS_SERVICE_DBUS), // service + QString(), // path + QLatin1String(DBUS_INTERFACE_DBUS), // interface + QLatin1String("NameOwnerChanged"), + QStringList() << d.service, + QString(), // signature + this, SLOT(_q_serviceOwnerChanged(QString,QString,QString))); } /*! @@ -296,9 +304,17 @@ QDBusAbstractInterface::QDBusAbstractInterface(const QString &service, const QSt con, false), parent) { // keep track of the service owner - if (d_func()->connection.isConnected()) - QObject::connect(d_func()->connectionPrivate(), SIGNAL(serviceOwnerChanged(QString,QString,QString)), - this, SLOT(_q_serviceOwnerChanged(QString,QString,QString))); + if (d_func()->isValid && + d_func()->connection.isConnected() + && !service.isEmpty() + && !service.startsWith(QLatin1Char(':'))) + d_func()->connection.connect(QLatin1String(DBUS_SERVICE_DBUS), // service + QString(), // path + QLatin1String(DBUS_INTERFACE_DBUS), // interface + QLatin1String("NameOwnerChanged"), + QStringList() << service, + QString(), //signature + this, SLOT(_q_serviceOwnerChanged(QString,QString,QString))); } /*! @@ -544,9 +560,16 @@ void QDBusAbstractInterface::connectNotify(const char *signal) return; QDBusConnectionPrivate *conn = d->connectionPrivate(); - if (conn) - conn->connectRelay(d->service, d->currentOwner, d->path, d->interface, + if (conn) { + // do we know what our owner is? + QString owner; + if (!d->service.isEmpty() && d->currentOwner.isNull()) + owner = QLatin1String(""); + else + owner = d->currentOwner; + conn->connectRelay(d->service, owner, d->path, d->interface, this, signal); + } } /*! diff --git a/src/dbus/qdbusconnection.cpp b/src/dbus/qdbusconnection.cpp index bb0d06f..d7088ff 100644 --- a/src/dbus/qdbusconnection.cpp +++ b/src/dbus/qdbusconnection.cpp @@ -557,42 +557,61 @@ QDBusPendingCall QDBusConnection::asyncCall(const QDBusMessage &message, int tim bool QDBusConnection::connect(const QString &service, const QString &path, const QString& interface, const QString &name, QObject *receiver, const char *slot) { - return connect(service, path, interface, name, QString(), receiver, slot); + return connect(service, path, interface, name, QStringList(), QString(), receiver, slot); } /*! - Disconnects the signal specified by the \a service, \a path, \a interface and \a name parameters from - the slot \a slot in object \a receiver. The arguments \a service and \a path can be empty, - denoting a disconnection from all signals of the (\a interface, \a name) pair, from all remote - applications. + \overload - Returns true if the disconnection was successful. + Connects the signal to the slot \a slot in object \a + receiver. Unlike the previous connect() overload, this function + allows one to specify the parameter signature to be connected + using the \a signature variable. The function will then verify + that this signature can be delivered to the slot specified by \a + slot and return false otherwise. + + Returns true if the connection was successful. + + \note This function verifies that the signal signature matches the + slot's parameters, but it does not verify that the actual + signal exists with the given signature in the remote + service. */ -bool QDBusConnection::disconnect(const QString &service, const QString &path, const QString &interface, - const QString &name, QObject *receiver, const char *slot) +bool QDBusConnection::connect(const QString &service, const QString &path, const QString& interface, + const QString &name, const QString &signature, + QObject *receiver, const char *slot) { - return disconnect(service, path, interface, name, QString(), receiver, slot); + return connect(service, path, interface, name, QStringList(), signature, receiver, slot); } /*! \overload + \since 4.6 Connects the signal to the slot \a slot in object \a - receiver. Unlike the other connect() overload, this function + receiver. Unlike the previous connect() overload, this function allows one to specify the parameter signature to be connected using the \a signature variable. The function will then verify that this signature can be delivered to the slot specified by \a slot and return false otherwise. + The \a argumentMatch parameter lists the string parameters to be matched, + in sequential order. Note that, to match an empty string, you need to + pass a QString that is empty but not null (i.e., QString("")). A null + QString skips matching at that position. + + Returns true if the connection was successful. + \note This function verifies that the signal signature matches the slot's parameters, but it does not verify that the actual signal exists with the given signature in the remote service. */ bool QDBusConnection::connect(const QString &service, const QString &path, const QString& interface, - const QString &name, const QString &signature, + const QString &name, const QStringList &argumentMatch, const QString &signature, QObject *receiver, const char *slot) { + if (!receiver || !slot || !d || !d->connection) return false; if (!interface.isEmpty() && !QDBusUtil::isValidInterfaceName(interface)) @@ -600,53 +619,57 @@ bool QDBusConnection::connect(const QString &service, const QString &path, const if (interface.isEmpty() && name.isEmpty()) return false; - // check the slot - QDBusConnectionPrivate::SignalHook hook; - QString key; - QString name2 = name; - if (name2.isNull()) - name2.detach(); - QString owner = d->getNameOwner(service); // we don't care if the owner is empty - hook.signature = signature; // it might get started later - if (!d->prepareHook(hook, key, service, owner, path, interface, name, receiver, slot, 0, false)) - return false; // don't connect - - // avoid duplicating: + // it might get started later QDBusWriteLocker locker(ConnectAction, d); - QDBusConnectionPrivate::SignalHookHash::ConstIterator it = d->signalHooks.find(key); - QDBusConnectionPrivate::SignalHookHash::ConstIterator end = d->signalHooks.constEnd(); - for ( ; it != end && it.key() == key; ++it) { - const QDBusConnectionPrivate::SignalHook &entry = it.value(); - if (entry.service == hook.service && - entry.owner == hook.owner && - entry.path == hook.path && - entry.signature == hook.signature && - entry.obj == hook.obj && - entry.midx == hook.midx) { - // no need to compare the parameters if it's the same slot - return true; // already there - } - } + return d->connectSignal(service, owner, path, interface, name, argumentMatch, signature, receiver, slot); +} + +/*! + Disconnects the signal specified by the \a service, \a path, \a interface + and \a name parameters from the slot \a slot in object \a receiver. The + arguments must be the same as passed to the connect() function. - d->connectSignal(key, hook); - return true; + Returns true if the disconnection was successful. +*/ +bool QDBusConnection::disconnect(const QString &service, const QString &path, const QString &interface, + const QString &name, QObject *receiver, const char *slot) +{ + return disconnect(service, path, interface, name, QStringList(), QString(), receiver, slot); } /*! \overload - Disconnects the signal from the slot \a slot in object \a - receiver. Unlike the other disconnect() overload, this function - allows one to specify the parameter signature to be disconnected - using the \a signature variable. The function will then verify - that this signature is connected to the slot specified by \a slot - and return false otherwise. + Disconnects the signal specified by the \a service, \a path, \a + interface, \a name, and \a signature parameters from the slot \a slot in + object \a receiver. The arguments must be the same as passed to the + connect() function. + + Returns true if the disconnection was successful. */ bool QDBusConnection::disconnect(const QString &service, const QString &path, const QString& interface, const QString &name, const QString &signature, QObject *receiver, const char *slot) { + return disconnect(service, path, interface, name, QStringList(), signature, receiver, slot); +} + +/*! + \overload + \since 4.6 + + Disconnects the signal specified by the \a service, \a path, \a + interface, \a name, \a argumentMatch, and \a signature parameters from + the slot \a slot in object \a receiver. The arguments must be the same as + passed to the connect() function. + + Returns true if the disconnection was successful. +*/ +bool QDBusConnection::disconnect(const QString &service, const QString &path, const QString& interface, + const QString &name, const QStringList &argumentMatch, const QString &signature, + QObject *receiver, const char *slot) +{ if (!receiver || !slot || !d || !d->connection) return false; if (!interface.isEmpty() && !QDBusUtil::isValidInterfaceName(interface)) @@ -654,38 +677,8 @@ bool QDBusConnection::disconnect(const QString &service, const QString &path, co if (interface.isEmpty() && name.isEmpty()) return false; - // check the slot - QDBusConnectionPrivate::SignalHook hook; - QString key; - QString name2 = name; - if (name2.isNull()) - name2.detach(); - - QString owner = d->getNameOwner(service); // we don't care of owner is empty - hook.signature = signature; - if (!d->prepareHook(hook, key, service, owner, path, interface, name, receiver, slot, 0, false)) - return false; // don't disconnect - - // avoid duplicating: QDBusWriteLocker locker(DisconnectAction, d); - QDBusConnectionPrivate::SignalHookHash::Iterator it = d->signalHooks.find(key); - QDBusConnectionPrivate::SignalHookHash::Iterator end = d->signalHooks.end(); - for ( ; it != end && it.key() == key; ++it) { - const QDBusConnectionPrivate::SignalHook &entry = it.value(); - if (entry.service == hook.service && - entry.owner == hook.owner && - entry.path == hook.path && - entry.signature == hook.signature && - entry.obj == hook.obj && - entry.midx == hook.midx) { - // no need to compare the parameters if it's the same slot - d->disconnectSignal(it); - return true; // it was there - } - } - - // the slot was not found - return false; + return d->disconnectSignal(service, path, interface, name, argumentMatch, signature, receiver, slot); } /*! @@ -1012,14 +1005,10 @@ void QDBusConnectionPrivate::setBusService(const QDBusConnection &connection) busService = new QDBusConnectionInterface(connection, this); ref.deref(); // busService has increased the refcounting to us // avoid cyclic refcounting -// if (mode != PeerMode) - QObject::connect(busService, SIGNAL(serviceOwnerChanged(QString,QString,QString)), - this, SIGNAL(serviceOwnerChanged(QString,QString,QString))); QObject::connect(this, SIGNAL(callWithCallbackFailed(QDBusError,QDBusMessage)), busService, SIGNAL(callWithCallbackFailed(QDBusError,QDBusMessage)), Qt::QueuedConnection); - } /*! diff --git a/src/dbus/qdbusconnection.h b/src/dbus/qdbusconnection.h index 85fc7c2..82ae726 100644 --- a/src/dbus/qdbusconnection.h +++ b/src/dbus/qdbusconnection.h @@ -132,15 +132,21 @@ public: bool connect(const QString &service, const QString &path, const QString &interface, const QString &name, QObject *receiver, const char *slot); - bool disconnect(const QString &service, const QString &path, const QString &interface, - const QString &name, QObject *receiver, const char *slot); - bool connect(const QString &service, const QString &path, const QString &interface, const QString &name, const QString& signature, QObject *receiver, const char *slot); + bool connect(const QString &service, const QString &path, const QString &interface, + const QString &name, const QStringList &argumentMatch, const QString& signature, + QObject *receiver, const char *slot); + + bool disconnect(const QString &service, const QString &path, const QString &interface, + const QString &name, QObject *receiver, const char *slot); bool disconnect(const QString &service, const QString &path, const QString &interface, const QString &name, const QString& signature, QObject *receiver, const char *slot); + bool disconnect(const QString &service, const QString &path, const QString &interface, + const QString &name, const QStringList &argumentMatch, const QString& signature, + QObject *receiver, const char *slot); bool registerObject(const QString &path, QObject *object, RegisterOptions options = ExportAdaptors); diff --git a/src/dbus/qdbusconnection_p.h b/src/dbus/qdbusconnection_p.h index ab96457..ed29e4e 100644 --- a/src/dbus/qdbusconnection_p.h +++ b/src/dbus/qdbusconnection_p.h @@ -154,6 +154,7 @@ public: typedef QMultiHash<QString, SignalHook> SignalHookHash; typedef QHash<QString, QDBusMetaObject* > MetaObjectHash; typedef QHash<QByteArray, int> MatchRefCountHash; + typedef QHash<QString, int> WatchedServicesHash; public: // public methods are entry points from other objects @@ -175,8 +176,14 @@ public: QDBusPendingCallPrivate *sendWithReplyAsync(const QDBusMessage &message, int timeout = -1); int sendWithReplyAsync(const QDBusMessage &message, QObject *receiver, const char *returnMethod, const char *errorMethod, int timeout = -1); + bool connectSignal(const QString &service, const QString &owner, const QString &path, const QString& interface, + const QString &name, const QStringList &argumentMatch, const QString &signature, + QObject *receiver, const char *slot); void connectSignal(const QString &key, const SignalHook &hook); SignalHookHash::Iterator disconnectSignal(SignalHookHash::Iterator &it); + bool disconnectSignal(const QString &service, const QString &path, const QString& interface, + const QString &name, const QStringList &argumentMatch, const QString &signature, + QObject *receiver, const char *slot); void registerObject(const ObjectTreeNode *node); void connectRelay(const QString &service, const QString ¤tOwner, const QString &path, const QString &interface, @@ -264,6 +271,7 @@ public: QDBusError lastError; QStringList serviceNames; + WatchedServicesHash watchedServiceNames; SignalHookHash signalHooks; MatchRefCountHash matchRefCounts; ObjectTreeNode rootNode; @@ -278,6 +286,7 @@ public: static bool prepareHook(QDBusConnectionPrivate::SignalHook &hook, QString &key, const QString &service, const QString &owner, const QString &path, const QString &interface, const QString &name, + const QStringList &argMatch, QObject *receiver, const char *signal, int minMIdx, bool buildSignature); static DBusHandlerResult messageFilter(DBusConnection *, DBusMessage *, void *); diff --git a/src/dbus/qdbusconnectioninterface.cpp b/src/dbus/qdbusconnectioninterface.cpp index 8670ed5..414d318 100644 --- a/src/dbus/qdbusconnectioninterface.cpp +++ b/src/dbus/qdbusconnectioninterface.cpp @@ -336,8 +336,14 @@ void QDBusConnectionInterface::connectNotify(const char *signalName) else if (qstrcmp(signalName, SIGNAL(serviceUnregistered(QString))) == 0) QDBusAbstractInterface::connectNotify(SIGNAL(NameLost(QString))); - else if (qstrcmp(signalName, SIGNAL(serviceOwnerChanged(QString,QString,QString))) == 0) + else if (qstrcmp(signalName, SIGNAL(serviceOwnerChanged(QString,QString,QString))) == 0) { + static bool warningPrinted = false; + if (!warningPrinted) { + qWarning("Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)"); + warningPrinted = true; + } QDBusAbstractInterface::connectNotify(SIGNAL(NameOwnerChanged(QString,QString,QString))); + } } /*! diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp index fb2dd77..c7538c3 100644 --- a/src/dbus/qdbusintegrator.cpp +++ b/src/dbus/qdbusintegrator.cpp @@ -392,7 +392,7 @@ static void qDBusNewConnection(DBusServer *server, DBusConnection *connection, v static QByteArray buildMatchRule(const QString &service, const QString & /*owner*/, const QString &objectPath, const QString &interface, - const QString &member, const QString & /*signature*/) + const QString &member, const QStringList &argMatch, const QString & /*signature*/) { QString result = QLatin1String("type='signal',"); QString keyValue = QLatin1String("%1='%2',"); @@ -406,6 +406,14 @@ static QByteArray buildMatchRule(const QString &service, const QString & /*owner if (!member.isEmpty()) result += keyValue.arg(QLatin1String("member"), member); + // add the argument string-matching now + if (!argMatch.isEmpty()) { + keyValue = QLatin1String("arg%1='%2',"); + for (int i = 0; i < argMatch.count(); ++i) + if (!argMatch.at(i).isNull()) + result += keyValue.arg(i).arg(argMatch.at(i)); + } + result.chop(1); // remove ending comma return result.toLatin1(); } @@ -493,6 +501,11 @@ static QObject *findChildObject(const QDBusConnectionPrivate::ObjectTreeNode *ro return 0; } +static bool shouldWatchService(const QString &service) +{ + return !service.isEmpty() && !service.startsWith(QLatin1Char(':')); +} + extern QDBUS_EXPORT void qDBusAddSpyHook(QDBusSpyHook); void qDBusAddSpyHook(QDBusSpyHook hook) { @@ -933,6 +946,7 @@ QDBusConnectionPrivate::QDBusConnectionPrivate(QObject *p) QDBusMetaTypeId::init(); rootNode.flags = 0; + watchedServiceNames[QLatin1String(DBUS_SERVICE_DBUS)] = 1; connect(this, SIGNAL(serviceOwnerChanged(QString,QString,QString)), this, SLOT(_q_serviceOwnerChanged(QString,QString,QString))); @@ -1195,6 +1209,7 @@ int QDBusConnectionPrivate::findSlot(QObject* obj, const QByteArray &normalizedN bool QDBusConnectionPrivate::prepareHook(QDBusConnectionPrivate::SignalHook &hook, QString &key, const QString &service, const QString &owner, const QString &path, const QString &interface, const QString &name, + const QStringList &argMatch, QObject *receiver, const char *signal, int minMIdx, bool buildSignature) { @@ -1235,7 +1250,7 @@ bool QDBusConnectionPrivate::prepareHook(QDBusConnectionPrivate::SignalHook &hoo hook.signature += QLatin1String( QDBusMetaType::typeToSignature( hook.params.at(i) ) ); } - hook.matchRule = buildMatchRule(service, owner, path, interface, mname, hook.signature); + hook.matchRule = buildMatchRule(service, owner, path, interface, mname, argMatch, hook.signature); return true; // connect to this signal } @@ -1478,7 +1493,7 @@ void QDBusConnectionPrivate::handleSignal(const QString &key, const QDBusMessage //qDBusDebug() << signalHooks.keys(); for ( ; it != end && it.key() == key; ++it) { const SignalHook &hook = it.value(); - if (!hook.owner.isEmpty() && hook.owner != msg.service()) + if (!hook.owner.isNull() && hook.owner != msg.service()) continue; if (!hook.path.isEmpty() && hook.path != msg.path()) continue; @@ -1933,6 +1948,42 @@ int QDBusConnectionPrivate::sendWithReplyAsync(const QDBusMessage &message, QObj return 1; } +bool QDBusConnectionPrivate::connectSignal(const QString &service, const QString &owner, + const QString &path, const QString &interface, const QString &name, + const QStringList &argumentMatch, const QString &signature, + QObject *receiver, const char *slot) +{ + // check the slot + QDBusConnectionPrivate::SignalHook hook; + QString key; + QString name2 = name; + if (name2.isNull()) + name2.detach(); + + hook.signature = signature; + if (!prepareHook(hook, key, service, owner, path, interface, name, argumentMatch, receiver, slot, 0, false)) + return false; // don't connect + + // avoid duplicating: + QDBusConnectionPrivate::SignalHookHash::ConstIterator it = signalHooks.find(key); + QDBusConnectionPrivate::SignalHookHash::ConstIterator end = signalHooks.constEnd(); + for ( ; it != end && it.key() == key; ++it) { + const QDBusConnectionPrivate::SignalHook &entry = it.value(); + if (entry.service == hook.service && + entry.owner == hook.owner && + entry.path == hook.path && + entry.signature == hook.signature && + entry.obj == hook.obj && + entry.midx == hook.midx) { + // no need to compare the parameters if it's the same slot + return true; // already there + } + } + + connectSignal(key, hook); + return true; +} + void QDBusConnectionPrivate::connectSignal(const QString &key, const SignalHook &hook) { signalHooks.insertMulti(key, hook); @@ -1960,15 +2011,81 @@ void QDBusConnectionPrivate::connectSignal(const QString &key, const SignalHook hook.obj->metaObject()->method(hook.midx).signature(), qPrintable(qerror.name()), qPrintable(qerror.message())); Q_ASSERT(false); + } else { + // Successfully connected the signal + // Do we need to watch for this name? + if (shouldWatchService(hook.service)) { + WatchedServicesHash::Iterator it = watchedServiceNames.find(hook.service); + if (it != watchedServiceNames.end()) { + // already watching + ++it.value(); + } else { + // we need to watch for this service changing + QString dbusServerService = QLatin1String(DBUS_SERVICE_DBUS); + connectSignal(dbusServerService, dbusServerService, QString(), QLatin1String(DBUS_INTERFACE_DBUS), + QLatin1String("NameOwnerChanged"), QStringList() << hook.service, QString(), + this, SLOT(_q_serviceOwnerChanged(QString,QString,QString))); + } + } } } } +bool QDBusConnectionPrivate::disconnectSignal(const QString &service, + const QString &path, const QString &interface, const QString &name, + const QStringList &argumentMatch, const QString &signature, + QObject *receiver, const char *slot) +{ + // check the slot + QDBusConnectionPrivate::SignalHook hook; + QString key; + QString name2 = name; + if (name2.isNull()) + name2.detach(); + + hook.signature = signature; + if (!prepareHook(hook, key, service, QString(), path, interface, name, argumentMatch, receiver, slot, 0, false)) + return false; // don't disconnect + + // avoid duplicating: + QDBusConnectionPrivate::SignalHookHash::Iterator it = signalHooks.find(key); + QDBusConnectionPrivate::SignalHookHash::Iterator end = signalHooks.end(); + for ( ; it != end && it.key() == key; ++it) { + const QDBusConnectionPrivate::SignalHook &entry = it.value(); + if (entry.service == hook.service && + //entry.owner == hook.owner && + entry.path == hook.path && + entry.signature == hook.signature && + entry.obj == hook.obj && + entry.midx == hook.midx) { + // no need to compare the parameters if it's the same slot + disconnectSignal(it); + return true; // it was there + } + } + + // the slot was not found + return false; +} + QDBusConnectionPrivate::SignalHookHash::Iterator QDBusConnectionPrivate::disconnectSignal(SignalHookHash::Iterator &it) { const SignalHook &hook = it.value(); + WatchedServicesHash::Iterator sit = watchedServiceNames.find(hook.service); + if (sit != watchedServiceNames.end()) { + if (sit.value() == 1) { + watchedServiceNames.erase(sit); + QString dbusServerService = QLatin1String(DBUS_SERVICE_DBUS); + disconnectSignal(dbusServerService, QString(), QLatin1String(DBUS_INTERFACE_DBUS), + QLatin1String("NameOwnerChanged"), QStringList() << hook.service, QString(), + this, SLOT(_q_serviceOwnerChanged(QString,QString,QString))); + } else { + --sit.value(); + } + } + bool erase = false; MatchRefCountHash::iterator i = matchRefCounts.find(hook.matchRule); if (i == matchRefCounts.end()) { @@ -2027,7 +2144,7 @@ void QDBusConnectionPrivate::connectRelay(const QString &service, const QString SignalHook hook; QString key; - if (!prepareHook(hook, key, service, owner, path, interface, QString(), receiver, signal, + if (!prepareHook(hook, key, service, owner, path, interface, QString(), QStringList(), receiver, signal, QDBusAbstractInterface::staticMetaObject.methodCount(), true)) return; // don't connect @@ -2059,7 +2176,7 @@ void QDBusConnectionPrivate::disconnectRelay(const QString &service, const QStri SignalHook hook; QString key; - if (!prepareHook(hook, key, service, owner, path, interface, QString(), receiver, signal, + if (!prepareHook(hook, key, service, owner, path, interface, QString(), QStringList(), receiver, signal, QDBusAbstractInterface::staticMetaObject.methodCount(), true)) return; // don't connect diff --git a/src/dbus/qdbusservicewatcher.cpp b/src/dbus/qdbusservicewatcher.cpp new file mode 100644 index 0000000..4872732 --- /dev/null +++ b/src/dbus/qdbusservicewatcher.cpp @@ -0,0 +1,374 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDBus module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qdbusservicewatcher.h" +#include "qdbusconnection.h" +#include "qdbus_symbols_p.h" + +#include <QStringList> + +#include <private/qobject_p.h> + +Q_GLOBAL_STATIC_WITH_ARGS(QString, busService, (QLatin1String(DBUS_SERVICE_DBUS))) +Q_GLOBAL_STATIC_WITH_ARGS(QString, busPath, (QLatin1String(DBUS_PATH_DBUS))) +Q_GLOBAL_STATIC_WITH_ARGS(QString, busInterface, (QLatin1String(DBUS_INTERFACE_DBUS))) +Q_GLOBAL_STATIC_WITH_ARGS(QString, signalName, (QLatin1String("NameOwnerChanged"))) + +class QDBusServiceWatcherPrivate: public QObjectPrivate +{ + Q_DECLARE_PUBLIC(QDBusServiceWatcher) +public: + QDBusServiceWatcherPrivate(const QDBusConnection &c, QDBusServiceWatcher::WatchMode wm) + : connection(c), watchMode(wm) + { + } + + QStringList servicesWatched; + QDBusConnection connection; + QDBusServiceWatcher::WatchMode watchMode; + + void _q_serviceOwnerChanged(const QString &, const QString &, const QString &); + void setConnection(const QStringList &services, const QDBusConnection &c, QDBusServiceWatcher::WatchMode watchMode); + + QStringList matchArgsForService(const QString &service); + void addService(const QString &service); + void removeService(const QString &service); +}; + +void QDBusServiceWatcherPrivate::_q_serviceOwnerChanged(const QString &service, const QString &oldOwner, const QString &newOwner) +{ + Q_Q(QDBusServiceWatcher); + emit q->serviceOwnerChanged(service, oldOwner, newOwner); + if (oldOwner.isEmpty()) + emit q->serviceRegistered(service); + else if (newOwner.isEmpty()) + emit q->serviceUnregistered(service); +} + +void QDBusServiceWatcherPrivate::setConnection(const QStringList &s, const QDBusConnection &c, QDBusServiceWatcher::WatchMode wm) +{ + if (connection.isConnected()) { + // remove older rules + foreach (const QString &s, servicesWatched) + removeService(s); + } + + connection = c; + watchMode = wm; + servicesWatched = s; + + if (connection.isConnected()) { + // add new rules + foreach (const QString &s, servicesWatched) + addService(s); + } +} + +QStringList QDBusServiceWatcherPrivate::matchArgsForService(const QString &service) +{ + QStringList matchArgs; + matchArgs << service; + + switch (watchMode) { + case QDBusServiceWatcher::WatchForOwnerChange: + break; + + case QDBusServiceWatcher::WatchForRegistration: + matchArgs << QString::fromLatin1("", 0); + break; + + case QDBusServiceWatcher::WatchForUnregistration: + matchArgs << QString() << QString::fromLatin1("", 0); + break; + } + return matchArgs; +} + +void QDBusServiceWatcherPrivate::addService(const QString &service) +{ + QStringList matchArgs = matchArgsForService(service); + connection.connect(*busService(), *busPath(), *busInterface(), *signalName(), + matchArgs, QString(), q_func(), + SLOT(_q_serviceOwnerChanged(QString,QString,QString))); +} + +void QDBusServiceWatcherPrivate::removeService(const QString &service) +{ + QStringList matchArgs = matchArgsForService(service); + connection.disconnect(*busService(), *busPath(), *busInterface(), *signalName(), + matchArgs, QString(), q_func(), + SLOT(_q_serviceOwnerChanged(QString,QString,QString))); +} + +/*! + \class QDBusServiceWatcher + \since 4.6 + \inmodule QtDBus + + \brief The QDBusServiceWatcher class allows the user to watch for a bus service change. + + A QDBusServiceWatcher object can be used to notify the application about + an ownership change of a service name on the bus. It has three watch + modes: + + \list + \o watching for service registration only + \o watching for service unregistration only + \o watching for any kind of service ownership change (the default mode) + \endlist + + Besides being created or deleted, services may change owners without a + unregister/register operation happening. So the \ref serviceRegistered() + and \ref serviceUnregistered() signals may not be emitted if that + happens. + + This class is more efficient than using the + QDBusConnectionInterface::serviceOwnerChanged() signal because it allows + one to receive only the signals for which the class is interested in. + + \sa QDBusConnection +*/ + +/*! + \enum QDBusServiceWatcher::WatchModeFlag + + QDBusServiceWatcher supports three different watch modes, which are configured by this flag: + + \value WatchForRegistration watch for service registration only, ignoring + any signals related to other service ownership change. + + \value WatchForUnregistration watch for service unregistration only, + ignoring any signals related to other service ownership change. + + \value WatchForOwnerChange watch for any kind of service ownership + change. +*/ + +/*! + \property QDBusServiceWatcher::watchMode + + The \c watchMode property holds the current watch mode for this + QDBusServiceWatcher object. The default value for this property is + QDBusServiceWatcher::WatchForOwnershipChange. +*/ + +/*! + \property QDBusServiceWatcher::watchedServices + + The \c servicesWatched property holds the list of services watched. + + Note that modifying this list with setServicesWatched() is an expensive + operation. If you can, prefer to change it by way of addWatchedService() + and removeWatchedService(). +*/ + +/*! + \fn void QDBusServiceWatcher::serviceRegistered(const QString &serviceName) + + This signal is emitted whenever this object detects that the service \a + serviceName became available on the bus. + + \sa serviceUnregistered(), serviceOwnerChanged() +*/ + +/*! + \fn void QDBusServiceWatcher::serviceUnregistered(const QString &serviceName) + + This signal is emitted whenever this object detects that the service \a + serviceName was unregistered from the bus and is no longer available. + + \sa serviceRegistered(), serviceOwnerChanged() +*/ + +/*! + \fn void QDBusServiceWatcher::serviceOwnerChanged(const QString &serviceName, const QString &oldOwner, const QString &newOwner) + + This signal is emitted whenever this object detects that there was a + service ownership change relating to the \a serviceName service. The \a + oldOwner parameter contains the old owner name and \a newOwner is the new + owner. Both \a oldOwner and \a newOwner are unique connection names. + + Note that this signal is also emitted whenever the \a serviceName service + was registered or unregistered. If it was registered, \a oldOwner will + contain an empty string, whereas if it was unregistered, \a newOwner will + contain an empty string. + + If you need only to find out if the service is registered or unregistered + only, without being notified that the ownership changed, consider using + the specific modes for those operations. This class is more efficient if + you use the more specific modes. + + \sa serviceRegistered(), serviceUnregistered() +*/ + +/*! + Creates a QDBusServiceWatcher object. Note that until you set a + connection with setConnection(), this object will not emit any signals. + + The \a parent parameter is passed to QObject to set the parent of this + object. +*/ +QDBusServiceWatcher::QDBusServiceWatcher(QObject *parent) + : QObject(*new QDBusServiceWatcherPrivate(QDBusConnection(QString()), WatchForOwnerChange), parent) +{ +} + +/*! + Creates a QDBusServiceWatcher object and attaches it to the \a connection + connection. Also, this function immediately starts watching for \a + watchMode changes to service \a service. + + The \a parent parameter is passed to QObject to set the parent of this + object. +*/ +QDBusServiceWatcher::QDBusServiceWatcher(const QString &service, const QDBusConnection &connection, WatchMode watchMode, QObject *parent) + : QObject(*new QDBusServiceWatcherPrivate(connection, watchMode), parent) +{ + d_func()->setConnection(QStringList() << service, connection, watchMode); +} + +/*! + Destroys the QDBusServiceWatcher object and releases any resources + associated with it. +*/ +QDBusServiceWatcher::~QDBusServiceWatcher() +{ +} + +/*! + Returns the list of D-Bus services that are being watched. + + \sa setWatchedServices() +*/ +QStringList QDBusServiceWatcher::watchedServices() const +{ + return d_func()->servicesWatched; +} + +/*! + Sets the list of D-Bus services being watched to be \a services. + + Note that setting the entire list means removing all previous rules for + watching services and adding new ones. This is an expensive operation and + should be avoided, if possible. Instead, use addWatchedService() and + removeWatchedService() if you can to manipulate entries in the list. +*/ +void QDBusServiceWatcher::setWatchedServices(const QStringList &services) +{ + Q_D(QDBusServiceWatcher); + if (services == d->servicesWatched) + return; + d->setConnection(services, d->connection, d->watchMode); +} + +/*! + Adds \a newService to the list of services to be watched by this object. + This function is more efficient than setWatchedServices() and should be + used whenever possible to add services. +*/ +void QDBusServiceWatcher::addWatchedService(const QString &newService) +{ + Q_D(QDBusServiceWatcher); + if (d->servicesWatched.contains(newService)) + return; + d->addService(newService); + d->servicesWatched << newService; +} + +/*! + Removes the \a service from the list of services being watched by this + object. Note that D-Bus notifications are asynchronous, so there may + still be signals pending delivery about \a service. Those signals will + still be emitted whenever the D-Bus messages are processed. + + This function returns true if any services were removed. +*/ +bool QDBusServiceWatcher::removeWatchedService(const QString &service) +{ + Q_D(QDBusServiceWatcher); + d->removeService(service); + return d->servicesWatched.removeOne(service); +} + +QDBusServiceWatcher::WatchMode QDBusServiceWatcher::watchMode() const +{ + return d_func()->watchMode; +} + +void QDBusServiceWatcher::setWatchMode(WatchMode mode) +{ + Q_D(QDBusServiceWatcher); + if (mode == d->watchMode) + return; + d->setConnection(d->servicesWatched, d->connection, mode); +} + +/*! + Returns the QDBusConnection that this object is attached to. + + \sa setConnection() +*/ +QDBusConnection QDBusServiceWatcher::connection() const +{ + return d_func()->connection; +} + +/*! + Sets the D-Bus connection that this object is attached to be \a + connection. All services watched will be transferred to this connection. + + Note that QDBusConnection objects are reference counted: + QDBusServiceWatcher will keep a reference for this connection while it + exists. The connection is not closed until the reference count drops to + zero, so this will ensure that any notifications are received while this + QDBusServiceWatcher object exists. + + \sa connection() +*/ +void QDBusServiceWatcher::setConnection(const QDBusConnection &connection) +{ + Q_D(QDBusServiceWatcher); + if (connection.name() == d->connection.name()) + return; + d->setConnection(d->servicesWatched, connection, d->watchMode); +} + +#include "moc_qdbusservicewatcher.cpp" diff --git a/src/dbus/qdbusservicewatcher.h b/src/dbus/qdbusservicewatcher.h new file mode 100644 index 0000000..a968a9c --- /dev/null +++ b/src/dbus/qdbusservicewatcher.h @@ -0,0 +1,103 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDBus module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QDBUSSERVICEWATCHER_H +#define QDBUSSERVICEWATCHER_H + +#include <QtCore/qobject.h> +#include <QtDBus/qdbusmacros.h> + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(DBus) + +class QDBusConnection; + +class QDBusServiceWatcherPrivate; +class QDBUS_EXPORT QDBusServiceWatcher: public QObject +{ + Q_OBJECT + Q_PROPERTY(QStringList watchedServices READ watchedServices WRITE setWatchedServices) + Q_PROPERTY(WatchMode watchMode READ watchMode WRITE setWatchMode) +public: + enum WatchModeFlag { + WatchForRegistration = 0x01, + WatchForUnregistration = 0x02, + WatchForOwnerChange = 0x03 + }; + Q_DECLARE_FLAGS(WatchMode, WatchModeFlag) + + explicit QDBusServiceWatcher(QObject *parent = 0); + QDBusServiceWatcher(const QString &service, const QDBusConnection &connection, + WatchMode watchMode = WatchForOwnerChange, QObject *parent = 0); + ~QDBusServiceWatcher(); + + QStringList watchedServices() const; + void setWatchedServices(const QStringList &services); + void addWatchedService(const QString &newService); + bool removeWatchedService(const QString &service); + + WatchMode watchMode() const; + void setWatchMode(WatchMode mode); + + QDBusConnection connection() const; + void setConnection(const QDBusConnection &connection); + +Q_SIGNALS: + void serviceRegistered(const QString &service); + void serviceUnregistered(const QString &service); + void serviceOwnerChanged(const QString &service, const QString &oldOwner, const QString &newOwner); + +private: + Q_PRIVATE_SLOT(d_func(), void _q_serviceOwnerChanged(QString,QString,QString)) + Q_DISABLE_COPY(QDBusServiceWatcher) + Q_DECLARE_PRIVATE(QDBusServiceWatcher) +}; + +Q_DECLARE_OPERATORS_FOR_FLAGS(QDBusServiceWatcher::WatchMode) + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif // QDBUSSERVICEWATCHER_H diff --git a/src/gui/dialogs/qfiledialog.cpp b/src/gui/dialogs/qfiledialog.cpp index 50823cd..6bc6b76 100644 --- a/src/gui/dialogs/qfiledialog.cpp +++ b/src/gui/dialogs/qfiledialog.cpp @@ -777,7 +777,7 @@ void QFileDialog::setDirectory(const QString &directory) QModelIndex root = d->model->setRootPath(newDirectory); d->qFileDialogUi->newFolderButton->setEnabled(d->model->flags(root) & Qt::ItemIsDropEnabled); if (root != d->rootIndex()) { -#ifndef QT_NO_COMPLETER +#ifndef QT_NO_FSCOMPLETER if (directory.endsWith(QLatin1Char('/'))) d->completer->setCompletionPrefix(newDirectory); else @@ -2177,12 +2177,12 @@ void QFileDialogPrivate::createWidgets() #ifndef QT_NO_SHORTCUT qFileDialogUi->fileNameLabel->setBuddy(qFileDialogUi->fileNameEdit); #endif -#ifndef QT_NO_COMPLETER +#ifndef QT_NO_FSCOMPLETER completer = new QFSCompleter(model, q); qFileDialogUi->fileNameEdit->setCompleter(completer); QObject::connect(qFileDialogUi->fileNameEdit, SIGNAL(textChanged(QString)), q, SLOT(_q_autoCompleteFileName(QString))); -#endif // QT_NO_COMPLETER +#endif // QT_NO_FSCOMPLETER QObject::connect(qFileDialogUi->fileNameEdit, SIGNAL(textChanged(QString)), q, SLOT(_q_updateOkButton())); @@ -2302,7 +2302,7 @@ void QFileDialog::setProxyModel(QAbstractProxyModel *proxyModel) proxyModel->setSourceModel(d->model); d->qFileDialogUi->listView->setModel(d->proxyModel); d->qFileDialogUi->treeView->setModel(d->proxyModel); -#ifndef QT_NO_COMPLETER +#ifndef QT_NO_FSCOMPLETER d->completer->setModel(d->proxyModel); d->completer->proxyModel = d->proxyModel; #endif @@ -2312,7 +2312,7 @@ void QFileDialog::setProxyModel(QAbstractProxyModel *proxyModel) d->proxyModel = 0; d->qFileDialogUi->listView->setModel(d->model); d->qFileDialogUi->treeView->setModel(d->model); -#ifndef QT_NO_COMPLETER +#ifndef QT_NO_FSCOMPLETER d->completer->setModel(d->model); d->completer->sourceModel = d->model; d->completer->proxyModel = 0; @@ -3228,7 +3228,7 @@ void QFileDialogLineEdit::keyPressEvent(QKeyEvent *e) } } -#ifndef QT_NO_COMPLETER +#ifndef QT_NO_FSCOMPLETER QString QFSCompleter::pathFromIndex(const QModelIndex &index) const { diff --git a/src/gui/dialogs/qfiledialog_p.h b/src/gui/dialogs/qfiledialog_p.h index 32cd397..0e447a3 100644 --- a/src/gui/dialogs/qfiledialog_p.h +++ b/src/gui/dialogs/qfiledialog_p.h @@ -234,9 +234,9 @@ public: QStringList watching; QFileSystemModel *model; -#ifndef QT_NO_COMPLETER +#ifndef QT_NO_FSCOMPLETER QFSCompleter *completer; -#endif //QT_NO_COMPLETER +#endif //QT_NO_FSCOMPLETER QFileDialog::FileMode fileMode; QFileDialog::AcceptMode acceptMode; diff --git a/src/gui/dialogs/qfscompleter_p.h b/src/gui/dialogs/qfscompleter_p.h index cb1b427..1edab2d 100644 --- a/src/gui/dialogs/qfscompleter_p.h +++ b/src/gui/dialogs/qfscompleter_p.h @@ -56,7 +56,7 @@ #include "qcompleter.h" #include <QtGui/qfilesystemmodel.h> QT_BEGIN_NAMESPACE -#ifndef QT_NO_COMPLETER +#ifndef QT_NO_FSCOMPLETER /*! QCompleter that can deal with QFileSystemModel @@ -76,7 +76,7 @@ public: QAbstractProxyModel *proxyModel; QFileSystemModel *sourceModel; }; -#endif // QT_NO_COMPLETER +#endif // QT_NO_FSCOMPLETER QT_END_NAMESPACE #endif // QFSCOMPLETOR_P_H diff --git a/src/gui/dialogs/qprintdialog_unix.cpp b/src/gui/dialogs/qprintdialog_unix.cpp index 7daa273..6fc270d 100644 --- a/src/gui/dialogs/qprintdialog_unix.cpp +++ b/src/gui/dialogs/qprintdialog_unix.cpp @@ -696,7 +696,7 @@ QUnixPrintWidgetPrivate::QUnixPrintWidgetPrivate(QUnixPrintWidget *p) #ifndef QT_NO_FILESYSTEMMODEL QFileSystemModel *fsm = new QFileSystemModel(widget.filename); fsm->setRootPath(QDir::homePath()); -#if !defined(QT_NO_COMPLETER) && !defined(QT_NO_FILEDIALOG) +#if !defined(QT_NO_FSCOMPLETER) && !defined(QT_NO_FILEDIALOG) widget.filename->setCompleter(new QFSCompleter(fsm, widget.filename)); #endif #endif diff --git a/src/gui/effects/qgraphicseffect.cpp b/src/gui/effects/qgraphicseffect.cpp index 3a6bab5..3815b60 100644 --- a/src/gui/effects/qgraphicseffect.cpp +++ b/src/gui/effects/qgraphicseffect.cpp @@ -1042,66 +1042,36 @@ void QGraphicsOpacityEffect::draw(QPainter *painter, QGraphicsEffectSource *sour return; } - painter->save(); - painter->setOpacity(d->opacity); QPoint offset; - if (source->isPixmap()) { - // No point in drawing in device coordinates (pixmap will be scaled anyways). - if (!d->hasOpacityMask) { - const QPixmap pixmap = source->pixmap(Qt::LogicalCoordinates, &offset, - QGraphicsEffectSource::NoExpandPadMode); - painter->drawPixmap(offset, pixmap); - } else { - QRect srcBrect = source->boundingRect().toAlignedRect(); - offset = srcBrect.topLeft(); - QPixmap pixmap(srcBrect.size()); - pixmap.fill(Qt::transparent); - - QPainter pixmapPainter(&pixmap); - pixmapPainter.setRenderHints(painter->renderHints()); - pixmapPainter.translate(-offset); - source->draw(&pixmapPainter); - pixmapPainter.setCompositionMode(QPainter::CompositionMode_DestinationIn); - pixmapPainter.fillRect(srcBrect, d->opacityMask); - pixmapPainter.end(); - - painter->drawPixmap(offset, pixmap); - } - } else { - // Draw pixmap in device coordinates to avoid pixmap scaling; - if (!d->hasOpacityMask) { - const QPixmap pixmap = source->pixmap(Qt::DeviceCoordinates, &offset, - QGraphicsEffectSource::NoExpandPadMode); - painter->setWorldTransform(QTransform()); - painter->drawPixmap(offset, pixmap); - } else { - QTransform worldTransform = painter->worldTransform(); - - // Calculate source bounding rect in logical and device coordinates. - QRectF srcBrect = source->boundingRect(); - QRect srcDeviceBrect = worldTransform.mapRect(srcBrect).toAlignedRect(); - srcDeviceBrect &= source->deviceRect(); + Qt::CoordinateSystem system = source->isPixmap() ? Qt::LogicalCoordinates : Qt::DeviceCoordinates; + QPixmap pixmap = source->pixmap(system, &offset, QGraphicsEffectSource::NoExpandPadMode); + if (pixmap.isNull()) + return; - offset = srcDeviceBrect.topLeft(); - worldTransform *= QTransform::fromTranslate(-srcDeviceBrect.x(), -srcDeviceBrect.y()); - QPixmap pixmap(srcDeviceBrect.size()); - pixmap.fill(Qt::transparent); + painter->save(); + painter->setOpacity(d->opacity); - QPainter pixmapPainter(&pixmap); - pixmapPainter.setRenderHints(painter->renderHints()); + if (d->hasOpacityMask) { + QPainter pixmapPainter(&pixmap); + pixmapPainter.setRenderHints(painter->renderHints()); + pixmapPainter.setCompositionMode(QPainter::CompositionMode_DestinationIn); + if (system == Qt::DeviceCoordinates) { + QTransform worldTransform = painter->worldTransform(); + worldTransform *= QTransform::fromTranslate(-offset.x(), -offset.y()); pixmapPainter.setWorldTransform(worldTransform); - source->draw(&pixmapPainter); - pixmapPainter.setCompositionMode(QPainter::CompositionMode_DestinationIn); - pixmapPainter.fillRect(srcBrect, d->opacityMask); - pixmapPainter.end(); - - painter->setWorldTransform(QTransform()); - painter->drawPixmap(offset, pixmap); + pixmapPainter.fillRect(source->boundingRect(), d->opacityMask); + } else { + pixmapPainter.translate(-offset); + pixmapPainter.fillRect(pixmap.rect(), d->opacityMask); } } + if (system == Qt::DeviceCoordinates) + painter->setWorldTransform(QTransform()); + + painter->drawPixmap(offset, pixmap); painter->restore(); } diff --git a/src/gui/egl/egl.pri b/src/gui/egl/egl.pri index ba991bd..627d511 100644 --- a/src/gui/egl/egl.pri +++ b/src/gui/egl/egl.pri @@ -6,7 +6,7 @@ SOURCES += \ egl/qegl.cpp \ egl/qeglproperties.cpp -contains(QT_CONFIG, wince*): SOURCES += egl/qegl_wince.cpp +wince*: SOURCES += egl/qegl_wince.cpp unix { embedded { diff --git a/src/gui/egl/qeglproperties.cpp b/src/gui/egl/qeglproperties.cpp index c61e1d3..2d37edb 100644 --- a/src/gui/egl/qeglproperties.cpp +++ b/src/gui/egl/qeglproperties.cpp @@ -88,8 +88,12 @@ int QEglProperties::value(int name) const #if defined(EGL_ALPHA_MASK_SIZE) case EGL_ALPHA_MASK_SIZE: return 0; #endif +#if defined(EGL_BIND_TO_TEXTURE_RGB) case EGL_BIND_TO_TEXTURE_RGB: return EGL_DONT_CARE; +#endif +#if defined(EGL_BIND_TO_TEXTURE_RGBA) case EGL_BIND_TO_TEXTURE_RGBA: return EGL_DONT_CARE; +#endif #if defined(EGL_COLOR_BUFFER_TYPE) case EGL_COLOR_BUFFER_TYPE: return EGL_RGB_BUFFER; #endif diff --git a/src/gui/graphicsview/qgraphicsanchorlayout.cpp b/src/gui/graphicsview/qgraphicsanchorlayout.cpp index e21cd99..56d70e1 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout.cpp +++ b/src/gui/graphicsview/qgraphicsanchorlayout.cpp @@ -123,7 +123,7 @@ */ #include "qgraphicsanchorlayout_p.h" - +#ifndef QT_NO_GRAPHICSVIEW QT_BEGIN_NAMESPACE QGraphicsAnchor::QGraphicsAnchor(QGraphicsAnchorLayout *parentLayout) @@ -420,7 +420,7 @@ void QGraphicsAnchorLayout::setSpacing(qreal spacing) qreal QGraphicsAnchorLayout::horizontalSpacing() const { Q_D(const QGraphicsAnchorLayout); - return d->effectiveSpacing(QGraphicsAnchorLayoutPrivate::Horizontal); + return d->styleInfo().defaultSpacing(Qt::Horizontal); } /*! @@ -431,7 +431,7 @@ qreal QGraphicsAnchorLayout::horizontalSpacing() const qreal QGraphicsAnchorLayout::verticalSpacing() const { Q_D(const QGraphicsAnchorLayout); - return d->effectiveSpacing(QGraphicsAnchorLayoutPrivate::Vertical); + return d->styleInfo().defaultSpacing(Qt::Vertical); } /*! @@ -501,7 +501,8 @@ void QGraphicsAnchorLayout::invalidate() { Q_D(QGraphicsAnchorLayout); QGraphicsLayout::invalidate(); - d->calculateGraphCacheDirty = 1; + d->calculateGraphCacheDirty = true; + d->styleInfoDirty = true; } /*! @@ -535,3 +536,4 @@ QSizeF QGraphicsAnchorLayout::sizeHint(Qt::SizeHint which, const QSizeF &constra } QT_END_NAMESPACE +#endif //QT_NO_GRAPHICSVIEW diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp index 8c8c303..41aa8aa 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp @@ -40,6 +40,7 @@ ****************************************************************************/ #include <QtGui/qwidget.h> +#include <QtGui/qapplication.h> #include <QtCore/qlinkedlist.h> #include <QtCore/qstack.h> @@ -48,7 +49,7 @@ #endif #include "qgraphicsanchorlayout_p.h" - +#ifndef QT_NO_GRAPHICSVIEW QT_BEGIN_NAMESPACE @@ -141,34 +142,25 @@ static void internalSizeHints(QSizePolicy::Policy policy, *expSize = *prefSize; } -void AnchorData::refreshSizeHints(qreal effectiveSpacing) +bool AnchorData::refreshSizeHints(const QLayoutStyleInfo *styleInfo) { - const bool isInternalAnchor = from->m_item == to->m_item; - QSizePolicy::Policy policy; qreal minSizeHint; qreal prefSizeHint; qreal maxSizeHint; - if (isInternalAnchor) { - const QGraphicsAnchorLayoutPrivate::Orientation orient = - QGraphicsAnchorLayoutPrivate::edgeOrientation(from->m_edge); - const Qt::AnchorPoint centerEdge = - QGraphicsAnchorLayoutPrivate::pickEdge(Qt::AnchorHorizontalCenter, orient); - bool hasCenter = (from->m_edge == centerEdge || to->m_edge == centerEdge); - + // It is an internal anchor + if (item) { if (isLayoutAnchor) { minSize = 0; prefSize = 0; expSize = 0; maxSize = QWIDGETSIZE_MAX; - if (hasCenter) + if (isCenterAnchor) maxSize /= 2; - return; + return true; } else { - - QGraphicsLayoutItem *item = from->m_item; - if (orient == QGraphicsAnchorLayoutPrivate::Horizontal) { + if (orientation == QGraphicsAnchorLayoutPrivate::Horizontal) { policy = item->sizePolicy().horizontalPolicy(); minSizeHint = item->effectiveSizeHint(Qt::MinimumSize).width(); prefSizeHint = item->effectiveSizeHint(Qt::PreferredSize).width(); @@ -180,7 +172,7 @@ void AnchorData::refreshSizeHints(qreal effectiveSpacing) maxSizeHint = item->effectiveSizeHint(Qt::MaximumSize).height(); } - if (hasCenter) { + if (isCenterAnchor) { minSizeHint /= 2; prefSizeHint /= 2; maxSizeHint /= 2; @@ -196,7 +188,20 @@ void AnchorData::refreshSizeHints(qreal effectiveSpacing) // their effective size hints might be narrowed down due to their size policies. prefSizeHint = prefSize; } else { - prefSizeHint = effectiveSpacing; + const Qt::Orientation orient = Qt::Orientation(QGraphicsAnchorLayoutPrivate::edgeOrientation(from->m_edge) + 1); + qreal s = styleInfo->defaultSpacing(orient); + if (s < 0) { + QSizePolicy::ControlType controlTypeFrom = from->m_item->sizePolicy().controlType(); + QSizePolicy::ControlType controlTypeTo = to->m_item->sizePolicy().controlType(); + s = styleInfo->perItemSpacing(controlTypeFrom, controlTypeTo, orient); + + // ### Currently we do not support negative anchors inside the graph. + // To avoid those being created by a negative style spacing, we must + // make this test. + if (s < 0) + s = 0; + } + prefSizeHint = s; } maxSizeHint = QWIDGETSIZE_MAX; } @@ -214,6 +219,8 @@ void AnchorData::refreshSizeHints(qreal effectiveSpacing) sizeAtPreferred = prefSize; sizeAtExpanding = prefSize; sizeAtMaximum = prefSize; + + return true; } void ParallelAnchorData::updateChildrenSizes() @@ -227,26 +234,29 @@ void ParallelAnchorData::updateChildrenSizes() secondEdge->updateChildrenSizes(); } -void ParallelAnchorData::refreshSizeHints(qreal effectiveSpacing) +bool ParallelAnchorData::refreshSizeHints(const QLayoutStyleInfo *styleInfo) { - refreshSizeHints_helper(effectiveSpacing); + return refreshSizeHints_helper(styleInfo); } -void ParallelAnchorData::refreshSizeHints_helper(qreal effectiveSpacing, +bool ParallelAnchorData::refreshSizeHints_helper(const QLayoutStyleInfo *styleInfo, bool refreshChildren) { - if (refreshChildren) { - firstEdge->refreshSizeHints(effectiveSpacing); - secondEdge->refreshSizeHints(effectiveSpacing); + if (refreshChildren && (!firstEdge->refreshSizeHints(styleInfo) + || !secondEdge->refreshSizeHints(styleInfo))) { + return false; } - // ### should we warn if the parallel connection is invalid? - // e.g. 1-2-3 with 10-20-30, the minimum of the latter is - // bigger than the maximum of the former. - minSize = qMax(firstEdge->minSize, secondEdge->minSize); maxSize = qMin(firstEdge->maxSize, secondEdge->maxSize); + // This condition means that the maximum size of one anchor being simplified is smaller than + // the minimum size of the other anchor. The consequence is that there won't be a valid size + // for this parallel setup. + if (minSize > maxSize) { + return false; + } + expSize = qMax(firstEdge->expSize, secondEdge->expSize); expSize = qMin(expSize, maxSize); @@ -258,6 +268,8 @@ void ParallelAnchorData::refreshSizeHints_helper(qreal effectiveSpacing, sizeAtPreferred = prefSize; sizeAtExpanding = prefSize; sizeAtMaximum = prefSize; + + return true; } /*! @@ -362,12 +374,12 @@ void SequentialAnchorData::updateChildrenSizes() } } -void SequentialAnchorData::refreshSizeHints(qreal effectiveSpacing) +bool SequentialAnchorData::refreshSizeHints(const QLayoutStyleInfo *styleInfo) { - refreshSizeHints_helper(effectiveSpacing); + return refreshSizeHints_helper(styleInfo); } -void SequentialAnchorData::refreshSizeHints_helper(qreal effectiveSpacing, +bool SequentialAnchorData::refreshSizeHints_helper(const QLayoutStyleInfo *styleInfo, bool refreshChildren) { minSize = 0; @@ -379,8 +391,8 @@ void SequentialAnchorData::refreshSizeHints_helper(qreal effectiveSpacing, AnchorData *edge = m_edges.at(i); // If it's the case refresh children information first - if (refreshChildren) - edge->refreshSizeHints(effectiveSpacing); + if (refreshChildren && !edge->refreshSizeHints(styleInfo)) + return false; minSize += edge->minSize; prefSize += edge->prefSize; @@ -393,6 +405,8 @@ void SequentialAnchorData::refreshSizeHints_helper(qreal effectiveSpacing, sizeAtPreferred = prefSize; sizeAtExpanding = prefSize; sizeAtMaximum = prefSize; + + return true; } #ifdef QT_DEBUG @@ -458,7 +472,7 @@ QString GraphPath::toString() const #endif QGraphicsAnchorLayoutPrivate::QGraphicsAnchorLayoutPrivate() - : calculateGraphCacheDirty(1) + : calculateGraphCacheDirty(true), styleInfoDirty(true) { for (int i = 0; i < NOrientations; ++i) { for (int j = 0; j < 3; ++j) { @@ -510,18 +524,49 @@ inline static qreal checkAdd(qreal a, qreal b) } /*! - * \internal - * - * Takes the sequence of vertices described by (\a before, \a vertices, \a after) and replaces - * all anchors connected to the vertices in \a vertices with one simplified anchor between - * \a before and \a after. The simplified anchor will be a placeholder for all the previous - * anchors between \a before and \a after, and can be restored back to the anchors it is a - * placeholder for. - */ -static bool simplifySequentialChunk(Graph<AnchorVertex, AnchorData> *graph, - AnchorVertex *before, - const QVector<AnchorVertex*> &vertices, - AnchorVertex *after) + \internal + + Adds \a newAnchor to the graph \a g. + + Returns the newAnchor itself if it could be added without further changes to the graph. If a + new parallel anchor had to be created, then returns the new parallel anchor. In case the + addition is unfeasible -- because a parallel setup is not possible, returns 0. +*/ +static AnchorData *addAnchorMaybeParallel(Graph<AnchorVertex, AnchorData> *g, + AnchorData *newAnchor) +{ + bool feasible = true; + + // If already exists one anchor where newAnchor is supposed to be, we create a parallel + // anchor. + if (AnchorData *oldAnchor = g->takeEdge(newAnchor->from, newAnchor->to)) { + ParallelAnchorData *parallel = new ParallelAnchorData(oldAnchor, newAnchor); + + // At this point we can identify that the parallel anchor is not feasible, e.g. one + // anchor minimum size is bigger than the other anchor maximum size. + feasible = parallel->refreshSizeHints_helper(0, false); + newAnchor = parallel; + } + + g->createEdge(newAnchor->from, newAnchor->to, newAnchor); + return feasible ? newAnchor : 0; +} + + +/*! + \internal + + Takes the sequence of vertices described by (\a before, \a vertices, \a after) and removes + all anchors connected to the vertices in \a vertices, returning one simplified anchor between + \a before and \a after. + + Note that this function doesn't add the created anchor to the graph. This should be done by + the caller. +*/ +static AnchorData *createSequence(Graph<AnchorVertex, AnchorData> *graph, + AnchorVertex *before, + const QVector<AnchorVertex*> &vertices, + AnchorVertex *after) { AnchorData *data = graph->edgeData(before, vertices.first()); Q_ASSERT(data); @@ -546,41 +591,24 @@ static bool simplifySequentialChunk(Graph<AnchorVertex, AnchorData> *graph, qDebug("simplifying [%s] to [%s - %s]", qPrintable(strPath), qPrintable(before->toString()), qPrintable(after->toString())); #endif - SequentialAnchorData *sequence = new SequentialAnchorData; AnchorVertex *prev = before; + QVector<AnchorData *> edges; for (int i = 0; i <= orderedVertices.count(); ++i) { AnchorVertex *next = (i < orderedVertices.count()) ? orderedVertices.at(i) : after; AnchorData *ad = graph->takeEdge(prev, next); Q_ASSERT(ad); - sequence->m_edges.append(ad); + edges.append(ad); prev = next; } - sequence->setVertices(orderedVertices); + SequentialAnchorData *sequence = new SequentialAnchorData(orderedVertices, edges); sequence->from = before; sequence->to = after; sequence->refreshSizeHints_helper(0, false); - // Note that since layout 'edges' can't be simplified away from - // the graph, it's safe to assume that if there's a layout - // 'edge', it'll be in the boundaries of the sequence. - sequence->isLayoutAnchor = (sequence->m_edges.first()->isLayoutAnchor - || sequence->m_edges.last()->isLayoutAnchor); - - AnchorData *newAnchor = sequence; - if (AnchorData *oldAnchor = graph->takeEdge(before, after)) { - ParallelAnchorData *parallel = new ParallelAnchorData(oldAnchor, sequence); - parallel->isLayoutAnchor = (oldAnchor->isLayoutAnchor - || sequence->isLayoutAnchor); - parallel->refreshSizeHints_helper(0, false); - newAnchor = parallel; - } - graph->createEdge(before, after, newAnchor); - - // True if we created a parallel anchor - return newAnchor != sequence; + return sequence; } /*! @@ -617,15 +645,17 @@ static bool simplifySequentialChunk(Graph<AnchorVertex, AnchorData> *graph, 2. Go to (1) 3. Done + When creating the parallel anchors, the algorithm might identify unfeasible situations. In this + case the simplification process stops and returns false. Otherwise returns true. */ -void QGraphicsAnchorLayoutPrivate::simplifyGraph(Orientation orientation) +bool QGraphicsAnchorLayoutPrivate::simplifyGraph(Orientation orientation) { static bool noSimplification = !qgetenv("QT_ANCHORLAYOUT_NO_SIMPLIFICATION").isEmpty(); if (noSimplification || items.isEmpty()) - return; + return true; if (graphSimplified[orientation]) - return; + return true; graphSimplified[orientation] = true; #if 0 @@ -634,12 +664,18 @@ void QGraphicsAnchorLayoutPrivate::simplifyGraph(Orientation orientation) #endif if (!graph[orientation].rootVertex()) - return; + return true; bool dirty; + bool feasible = true; do { - dirty = simplifyGraphIteration(orientation); - } while (dirty); + dirty = simplifyGraphIteration(orientation, &feasible); + } while (dirty && feasible); + + if (!feasible) + graphSimplified[orientation] = false; + + return feasible; } /*! @@ -656,7 +692,8 @@ void QGraphicsAnchorLayoutPrivate::simplifyGraph(Orientation orientation) Note that there are some catches to this that are not covered by the above explanation, see the function comments for more details. */ -bool QGraphicsAnchorLayoutPrivate::simplifyGraphIteration(QGraphicsAnchorLayoutPrivate::Orientation orientation) +bool QGraphicsAnchorLayoutPrivate::simplifyGraphIteration(QGraphicsAnchorLayoutPrivate::Orientation orientation, + bool *feasible) { Q_Q(QGraphicsAnchorLayout); Graph<AnchorVertex, AnchorData> &g = graph[orientation]; @@ -667,8 +704,6 @@ bool QGraphicsAnchorLayoutPrivate::simplifyGraphIteration(QGraphicsAnchorLayoutP QVector<AnchorVertex*> candidates; bool candidatesForward; - const Qt::AnchorPoint centerEdge = pickEdge(Qt::AnchorHorizontalCenter, orientation); - // Walk depth-first, in the stack we store start of the candidate sequence (beforeSequence) // and the vertex to be visited. while (!stack.isEmpty()) { @@ -777,7 +812,8 @@ bool QGraphicsAnchorLayoutPrivate::simplifyGraphIteration(QGraphicsAnchorLayoutP // One restriction we have is to not simplify half of an anchor and let the other half // unsimplified. So we remove center edges before and after the sequence. - if (beforeSequence->m_edge == centerEdge && beforeSequence->m_item == candidates.first()->m_item) { + const AnchorData *firstAnchor = g.edgeData(beforeSequence, candidates.first()); + if (firstAnchor->isCenterAnchor) { beforeSequence = candidates.first(); candidates.remove(0); @@ -786,7 +822,8 @@ bool QGraphicsAnchorLayoutPrivate::simplifyGraphIteration(QGraphicsAnchorLayoutP continue; } - if (afterSequence->m_edge == centerEdge && afterSequence->m_item == candidates.last()->m_item) { + const AnchorData *lastAnchor = g.edgeData(candidates.last(), afterSequence); + if (lastAnchor->isCenterAnchor) { afterSequence = candidates.last(); candidates.remove(candidates.count() - 1); @@ -794,11 +831,26 @@ bool QGraphicsAnchorLayoutPrivate::simplifyGraphIteration(QGraphicsAnchorLayoutP continue; } - // This function will remove the candidates from the graph and create one edge between - // beforeSequence and afterSequence. This function returns true if the sequential - // simplification also caused a parallel simplification to be created. In this case we end - // the iteration and start again (since all the visited state we have may be outdated). - if (simplifySequentialChunk(&g, beforeSequence, candidates, afterSequence)) + // + // Add the sequence to the graph. + // + + AnchorData *sequence = createSequence(&g, beforeSequence, candidates, afterSequence); + + // If 'beforeSequence' and 'afterSequence' already had an anchor between them, we'll + // create a parallel anchor between the new sequence and the old anchor. + AnchorData *newAnchor = addAnchorMaybeParallel(&g, sequence); + + if (!newAnchor) { + *feasible = false; + return false; + } + + // When a new parallel anchor is create in the graph, we finish the iteration and return + // true to indicate a new iteration is needed. This happens because a parallel anchor + // changes the number of adjacents one vertex has, possibly opening up oportunities for + // building candidate lists (when adjacents == 2). + if (newAnchor != sequence) return true; // If there was no parallel simplification, we'll keep walking the graph. So we clear the @@ -1008,11 +1060,13 @@ void QGraphicsAnchorLayoutPrivate::createCenterAnchors( AnchorData *data = new AnchorData; c->variables.insert(data, 1.0); addAnchor_helper(item, firstEdge, item, centerEdge, data); + data->isCenterAnchor = true; data->refreshSizeHints(0); data = new AnchorData; c->variables.insert(data, -1.0); addAnchor_helper(item, centerEdge, item, lastEdge, data); + data->isCenterAnchor = true; data->refreshSizeHints(0); itemCenterConstraints[orientation].append(c); @@ -1234,9 +1288,11 @@ void QGraphicsAnchorLayoutPrivate::addAnchor_helper(QGraphicsLayoutItem *firstIt { Q_Q(QGraphicsAnchorLayout); + const Orientation orientation = edgeOrientation(firstEdge); + // Guarantee that the graph is no simplified when adding this anchor, // anchor manipulation always happen in the full graph - restoreSimplifiedGraph(edgeOrientation(firstEdge)); + restoreSimplifiedGraph(orientation); // Is the Vertex (firstItem, firstEdge) already represented in our // internal structure? @@ -1245,10 +1301,16 @@ void QGraphicsAnchorLayoutPrivate::addAnchor_helper(QGraphicsLayoutItem *firstIt // Remove previous anchor // ### Could we update the existing edgeData rather than creating a new one? - if (graph[edgeOrientation(firstEdge)].edgeData(v1, v2)) { + if (graph[orientation].edgeData(v1, v2)) { removeAnchor_helper(v1, v2); } + // If its an internal anchor, set the associated item + if (firstItem == secondItem) + data->item = firstItem; + + data->orientation = orientation; + // Create a bi-directional edge in the sense it can be transversed both // from v1 or v2. "data" however is shared between the two references // so we still know that the anchor direction is from 1 to 2. @@ -1257,10 +1319,11 @@ void QGraphicsAnchorLayoutPrivate::addAnchor_helper(QGraphicsLayoutItem *firstIt #ifdef QT_DEBUG data->name = QString::fromAscii("%1 --to--> %2").arg(v1->toString()).arg(v2->toString()); #endif - // Keep track of anchors that are connected to the layout 'edges' - data->isLayoutAnchor = (v1->m_item == q || v2->m_item == q); + // ### bit to track internal anchors, since inside AnchorData methods + // we don't have access to the 'q' pointer. + data->isLayoutAnchor = (data->item == q); - graph[edgeOrientation(firstEdge)].createEdge(v1, v2, data); + graph[orientation].createEdge(v1, v2, data); } QGraphicsAnchor *QGraphicsAnchorLayoutPrivate::getAnchor(QGraphicsLayoutItem *firstItem, @@ -1425,7 +1488,7 @@ void QGraphicsAnchorLayoutPrivate::anchorSize(const AnchorData *data, Q_ASSERT(minSize || prefSize || maxSize); Q_ASSERT(data); QGraphicsAnchorLayoutPrivate *that = const_cast<QGraphicsAnchorLayoutPrivate *>(this); - that->restoreSimplifiedGraph(edgeOrientation(data->from->m_edge)); + that->restoreSimplifiedGraph(Orientation(data->orientation)); if (minSize) *minSize = data->minSize; @@ -1565,34 +1628,32 @@ void QGraphicsAnchorLayoutPrivate::correctEdgeDirection(QGraphicsLayoutItem *&fi } } -qreal QGraphicsAnchorLayoutPrivate::effectiveSpacing(Orientation orientation) const +QLayoutStyleInfo &QGraphicsAnchorLayoutPrivate::styleInfo() const { - Q_Q(const QGraphicsAnchorLayout); - qreal s = spacings[orientation]; - if (s < 0) { - // ### make sure behaviour is the same as in QGraphicsGridLayout + if (styleInfoDirty) { + Q_Q(const QGraphicsAnchorLayout); + //### Fix this if QGV ever gets support for Metal style or different Aqua sizes. + QWidget *wid = 0; + QGraphicsLayoutItem *parent = q->parentLayoutItem(); while (parent && parent->isLayout()) { parent = parent->parentLayoutItem(); } + QGraphicsWidget *w = 0; if (parent) { QGraphicsItem *parentItem = parent->graphicsItem(); - if (parentItem && parentItem->isWidget()) { - QGraphicsWidget *w = static_cast<QGraphicsWidget*>(parentItem); - s = w->style()->pixelMetric(orientation == Horizontal - ? QStyle::PM_LayoutHorizontalSpacing - : QStyle::PM_LayoutVerticalSpacing); - } + if (parentItem && parentItem->isWidget()) + w = static_cast<QGraphicsWidget*>(parentItem); } - } - // ### Currently we do not support negative anchors inside the graph. - // To avoid those being created by a negative style spacing, we must - // make this test. - if (s < 0) - s = 0; + QStyle *style = w ? w->style() : QApplication::style(); + cachedStyleInfo = QLayoutStyleInfo(style, wid); + cachedStyleInfo.setDefaultSpacing(Qt::Horizontal, spacings[0]); + cachedStyleInfo.setDefaultSpacing(Qt::Vertical, spacings[1]); - return s; + styleInfoDirty = false; + } + return cachedStyleInfo; } /*! @@ -1620,7 +1681,7 @@ void QGraphicsAnchorLayoutPrivate::calculateGraphs() dumpGraph(QString::fromAscii("%1-after").arg(count)); #endif - calculateGraphCacheDirty = 0; + calculateGraphCacheDirty = false; } // ### Maybe getGraphParts could return the variables when traversing, at least @@ -1638,38 +1699,52 @@ QList<AnchorData *> getVariables(QList<QSimplexConstraint *> constraints) } /*! - \internal + \internal - Calculate graphs is the method that puts together all the helper routines - so that the AnchorLayout can calculate the sizes of each item. + Calculate graphs is the method that puts together all the helper routines + so that the AnchorLayout can calculate the sizes of each item. - In a nutshell it should do: + In a nutshell it should do: - 1) Update anchor nominal sizes, that is, the size that each anchor would - have if no other restrictions applied. This is done by quering the - layout style and the sizeHints of the items belonging to the layout. + 1) Refresh anchor nominal sizes, that is, the size that each anchor would + have if no other restrictions applied. This is done by quering the + layout style and the sizeHints of the items belonging to the layout. - 2) Simplify the graph by grouping together parallel and sequential anchors - into "group anchors". These have equivalent minimum, preferred and maximum - sizeHints as the anchors they replace. + 2) Simplify the graph by grouping together parallel and sequential anchors + into "group anchors". These have equivalent minimum, preferred and maximum + sizeHints as the anchors they replace. - 3) Check if we got to a trivial case. In some cases, the whole graph can be - simplified into a single anchor. If so, use this information. If not, - then call the Simplex solver to calculate the anchors sizes. + 3) Check if we got to a trivial case. In some cases, the whole graph can be + simplified into a single anchor. If so, use this information. If not, + then call the Simplex solver to calculate the anchors sizes. - 4) Once the root anchors had its sizes calculated, propagate that to the - anchors they represent. + 4) Once the root anchors had its sizes calculated, propagate that to the + anchors they represent. */ void QGraphicsAnchorLayoutPrivate::calculateGraphs( QGraphicsAnchorLayoutPrivate::Orientation orientation) { Q_Q(QGraphicsAnchorLayout); - // Simplify the graph - simplifyGraph(orientation); +#if defined(QT_DEBUG) || defined(Q_AUTOTEST_EXPORT) + lastCalculationUsedSimplex[orientation] = false; +#endif - // Reset the nominal sizes of each anchor based on the current item sizes - setAnchorSizeHintsFromItems(orientation); + // Reset the nominal sizes of each anchor based on the current item sizes. This function + // works with both simplified and non-simplified graphs, so it'll work when the + // simplification is going to be reused. + if (!refreshAllSizeHints(orientation)) { + qWarning("QGraphicsAnchorLayout: anchor setup is not feasible."); + graphHasConflicts[orientation] = true; + return; + } + + // Simplify the graph + if (!simplifyGraph(orientation)) { + qWarning("QGraphicsAnchorLayout: anchor setup is not feasible."); + graphHasConflicts[orientation] = true; + return; + } // Traverse all graph edges and store the possible paths to each vertex findPaths(orientation); @@ -1837,23 +1912,31 @@ bool QGraphicsAnchorLayoutPrivate::calculateNonTrunk(const QList<QSimplexConstra } /*! - \internal + \internal + + Traverse the graph refreshing the size hints. Complex anchors will call the + refresh method of their children anchors. Simple anchors, if are internal + anchors, will query the associated item for their size hints. - For graph edges ("anchors") that represent items, this method updates their - intrinsic size restrictions, based on the item size hints. + Returns false if some unfeasibility was found in the graph regarding the + complex anchors. */ -void QGraphicsAnchorLayoutPrivate::setAnchorSizeHintsFromItems(Orientation orientation) +bool QGraphicsAnchorLayoutPrivate::refreshAllSizeHints(Orientation orientation) { Graph<AnchorVertex, AnchorData> &g = graph[orientation]; QList<QPair<AnchorVertex *, AnchorVertex *> > vertices = g.connections(); - qreal spacing = effectiveSpacing(orientation); - + QLayoutStyleInfo styleInf = styleInfo(); for (int i = 0; i < vertices.count(); ++i) { AnchorData *data = g.edgeData(vertices.at(i).first, vertices.at(i).second);; Q_ASSERT(data->from && data->to); - data->refreshSizeHints(spacing); + + // During the traversal we check the feasibility of the complex anchors. + if (!data->refreshSizeHints(&styleInf)) + return false; } + + return true; } /*! @@ -1960,17 +2043,27 @@ QList<QSimplexConstraint *> QGraphicsAnchorLayoutPrivate::constraintsFromSizeHin { QList<QSimplexConstraint *> anchorConstraints; for (int i = 0; i < anchors.size(); ++i) { - QSimplexConstraint *c = new QSimplexConstraint; - c->variables.insert(anchors[i], 1.0); - c->constant = anchors[i]->minSize; - c->ratio = QSimplexConstraint::MoreOrEqual; - anchorConstraints += c; - - c = new QSimplexConstraint; - c->variables.insert(anchors[i], 1.0); - c->constant = anchors[i]->maxSize; - c->ratio = QSimplexConstraint::LessOrEqual; - anchorConstraints += c; + AnchorData *ad = anchors[i]; + + if ((ad->minSize == ad->maxSize) || qFuzzyCompare(ad->minSize, ad->maxSize)) { + QSimplexConstraint *c = new QSimplexConstraint; + c->variables.insert(ad, 1.0); + c->constant = ad->minSize; + c->ratio = QSimplexConstraint::Equal; + anchorConstraints += c; + } else { + QSimplexConstraint *c = new QSimplexConstraint; + c->variables.insert(ad, 1.0); + c->constant = ad->minSize; + c->ratio = QSimplexConstraint::MoreOrEqual; + anchorConstraints += c; + + c = new QSimplexConstraint; + c->variables.insert(ad, 1.0); + c->constant = ad->maxSize; + c->ratio = QSimplexConstraint::LessOrEqual; + anchorConstraints += c; + } } return anchorConstraints; @@ -2110,8 +2203,8 @@ void QGraphicsAnchorLayoutPrivate::identifyNonFloatItems_helper(const AnchorData switch(ad->type) { case AnchorData::Normal: - if (ad->from->m_item == ad->to->m_item && ad->to->m_item != q) - nonFloatingItemsIdentifiedSoFar->insert(ad->to->m_item); + if (ad->item && ad->item != q) + nonFloatingItemsIdentifiedSoFar->insert(ad->item); break; case AnchorData::Sequential: foreach (const AnchorData *d, static_cast<const SequentialAnchorData *>(ad)->m_edges) @@ -2377,7 +2470,7 @@ bool QGraphicsAnchorLayoutPrivate::solveMinMax(const QList<QSimplexConstraint *> *min = simplex.solveMin(); // Save sizeAtMinimum results - QList<QSimplexVariable *> variables = simplex.constraintsVariables(); + QList<AnchorData *> variables = getVariables(constraints); for (int i = 0; i < variables.size(); ++i) { AnchorData *ad = static_cast<AnchorData *>(variables[i]); Q_ASSERT(ad->result >= ad->minSize || qFuzzyCompare(ad->result, ad->minSize)); @@ -2536,7 +2629,7 @@ void QGraphicsAnchorLayoutPrivate::solveExpanding(const QList<QSimplexConstraint hasExpanding = true; // Lock anchor between boundedExpSize and sizeAtMaximum (ensure 3.a) - if (boundedExpSize == ad->sizeAtMaximum) { + if (boundedExpSize == ad->sizeAtMaximum || qFuzzyCompare(boundedExpSize, ad->sizeAtMaximum)) { // The interval has only one possible value, we can use an "Equal" // constraint and don't need to add this variable to the objective. QSimplexConstraint *itemC = new QSimplexConstraint; @@ -2635,3 +2728,4 @@ void QGraphicsAnchorLayoutPrivate::dumpGraph(const QString &name) #endif QT_END_NAMESPACE +#endif //QT_NO_GRAPHICSVIEW diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.h b/src/gui/graphicsview/qgraphicsanchorlayout_p.h index d45c004..7dd0d65 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.h +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.h @@ -60,7 +60,7 @@ #include "qgraphicsanchorlayout.h" #include "qgraph_p.h" #include "qsimplex_p.h" - +#ifndef QT_NO_GRAPHICSVIEW QT_BEGIN_NAMESPACE /* @@ -151,15 +151,16 @@ struct AnchorData : public QSimplexVariable { }; AnchorData() - : QSimplexVariable(), from(0), to(0), + : QSimplexVariable(), item(0), from(0), to(0), minSize(0), prefSize(0), expSize(0), maxSize(0), sizeAtMinimum(0), sizeAtPreferred(0), sizeAtExpanding(0), sizeAtMaximum(0), graphicsAnchor(0), skipInPreferred(0), - type(Normal), hasSize(true), isLayoutAnchor(false) {} + type(Normal), hasSize(true), isLayoutAnchor(false), + isCenterAnchor(false), orientation(0) {} virtual void updateChildrenSizes() {} - virtual void refreshSizeHints(qreal effectiveSpacing); + virtual bool refreshSizeHints(const QLayoutStyleInfo *styleInfo); virtual ~AnchorData() {} @@ -180,6 +181,9 @@ struct AnchorData : public QSimplexVariable { hasSize = false; } + // Internal anchors have associated items + QGraphicsLayoutItem *item; + // Anchor is semantically directed AnchorVertex *from; AnchorVertex *to; @@ -205,7 +209,9 @@ struct AnchorData : public QSimplexVariable { uint skipInPreferred : 1; uint type : 2; // either Normal, Sequential or Parallel uint hasSize : 1; // if false, get size from style. - uint isLayoutAnchor : 1; // if this anchor is connected to a layout 'edge' + uint isLayoutAnchor : 1; // if this anchor is an internal layout anchor + uint isCenterAnchor : 1; + uint orientation : 1; }; #ifdef QT_DEBUG @@ -217,26 +223,20 @@ inline QString AnchorData::toString() const struct SequentialAnchorData : public AnchorData { - SequentialAnchorData() : AnchorData() + SequentialAnchorData(const QVector<AnchorVertex *> &vertices, const QVector<AnchorData *> &edges) + : AnchorData(), m_children(vertices), m_edges(edges) { type = AnchorData::Sequential; + orientation = m_edges.at(0)->orientation; #ifdef QT_DEBUG - name = QLatin1String("SequentialAnchorData"); + name = QString::fromAscii("%1 -- %2").arg(vertices.first()->toString(), vertices.last()->toString()); #endif } virtual void updateChildrenSizes(); - virtual void refreshSizeHints(qreal effectiveSpacing); + virtual bool refreshSizeHints(const QLayoutStyleInfo *styleInfo); - void refreshSizeHints_helper(qreal effectiveSpacing, bool refreshChildren = true); - - void setVertices(const QVector<AnchorVertex*> &vertices) - { - m_children = vertices; -#ifdef QT_DEBUG - name = QString::fromAscii("%1 -- %2").arg(vertices.first()->toString(), vertices.last()->toString()); -#endif - } + bool refreshSizeHints_helper(const QLayoutStyleInfo *styleInfo, bool refreshChildren = true); QVector<AnchorVertex*> m_children; // list of vertices in the sequence QVector<AnchorData*> m_edges; // keep the list of edges too. @@ -248,6 +248,7 @@ struct ParallelAnchorData : public AnchorData : AnchorData(), firstEdge(first), secondEdge(second) { type = AnchorData::Parallel; + orientation = first->orientation; // ### Those asserts force that both child anchors have the same direction, // but can't we simplify a pair of anchors in opposite directions? @@ -261,9 +262,9 @@ struct ParallelAnchorData : public AnchorData } virtual void updateChildrenSizes(); - virtual void refreshSizeHints(qreal effectiveSpacing); + virtual bool refreshSizeHints(const QLayoutStyleInfo *styleInfo); - void refreshSizeHints_helper(qreal effectiveSpacing, bool refreshChildren = true); + bool refreshSizeHints_helper(const QLayoutStyleInfo *styleInfo, bool refreshChildren = true); AnchorData* firstEdge; AnchorData* secondEdge; @@ -423,13 +424,12 @@ public: Qt::AnchorPoint &firstEdge, QGraphicsLayoutItem *&secondItem, Qt::AnchorPoint &secondEdge); - // for getting the actual spacing (will query the style if the - // spacing is not explicitly set). - qreal effectiveSpacing(Orientation orientation) const; + + QLayoutStyleInfo &styleInfo() const; // Activation methods - void simplifyGraph(Orientation orientation); - bool simplifyGraphIteration(Orientation orientation); + bool simplifyGraph(Orientation orientation); + bool simplifyGraphIteration(Orientation orientation, bool *feasible); void restoreSimplifiedGraph(Orientation orientation); void calculateGraphs(); @@ -441,7 +441,7 @@ public: bool calculateNonTrunk(const QList<QSimplexConstraint *> &constraints, const QList<AnchorData *> &variables); - void setAnchorSizeHintsFromItems(Orientation orientation); + bool refreshAllSizeHints(Orientation orientation); void findPaths(Orientation orientation); void constraintsFromPaths(Orientation orientation); void updateAnchorSizes(Orientation orientation); @@ -524,10 +524,13 @@ public: #endif uint calculateGraphCacheDirty : 1; + mutable uint styleInfoDirty : 1; + mutable QLayoutStyleInfo cachedStyleInfo; friend class QGraphicsAnchorPrivate; }; QT_END_NAMESPACE +#endif //QT_NO_GRAPHICSVIEW #endif diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp index 738c6e3..d70b039 100644 --- a/src/gui/graphicsview/qgraphicsitem.cpp +++ b/src/gui/graphicsview/qgraphicsitem.cpp @@ -1039,13 +1039,31 @@ void QGraphicsItemPrivate::setParentItemHelper(QGraphicsItem *newParent) } // Update focus scope item ptr in new scope. - if (newParent) { + QGraphicsItem *newFocusScopeItem = subFocusItem ? subFocusItem : parentFocusScopeItem; + if (newFocusScopeItem && newParent) { + if (subFocusItem) { + // Find the subFocusItem's topmost focus scope. + QGraphicsItem *ancestorScope = 0; + QGraphicsItem *p = subFocusItem->d_ptr->parent; + while (p) { + if (p->flags() & QGraphicsItem::ItemIsFocusScope) + ancestorScope = p; + if (p->isPanel()) + break; + p = p->parentItem(); + } + if (ancestorScope) + newFocusScopeItem = ancestorScope; + } + QGraphicsItem *p = newParent; while (p) { if (p->flags() & QGraphicsItem::ItemIsFocusScope) { - p->d_ptr->focusScopeItem = subFocusItem ? subFocusItem : parentFocusScopeItem; - // ### The below line might not make sense... - if (subFocusItem) + p->d_ptr->focusScopeItem = newFocusScopeItem; + // Ensure the new item is no longer the subFocusItem. The + // only way to set focus on a child of a focus scope is + // by setting focus on the scope itself. + if (subFocusItem && !p->focusItem()) subFocusItem->d_ptr->clearSubFocus(); break; } @@ -1287,6 +1305,8 @@ QGraphicsItem::QGraphicsItem(QGraphicsItemPrivate &dd, QGraphicsItem *parent, */ QGraphicsItem::~QGraphicsItem() { + if (d_ptr->isObject) + QObjectPrivate::get(static_cast<QGraphicsObject *>(this))->wasDeleted = true; d_ptr->inDestructor = 1; d_ptr->removeExtraItemCache(); @@ -2982,8 +3002,11 @@ void QGraphicsItemPrivate::setFocusHelper(Qt::FocusReason focusReason, bool clim while (p) { if (p->flags() & QGraphicsItem::ItemIsFocusScope) { p->d_ptr->focusScopeItem = q_ptr; - if (!q_ptr->isActive() || !p->focusItem()) + if (!p->focusItem()) { + // If you call setFocus on a child of a focus scope that + // doesn't currently have a focus item, then stop. return; + } break; } p = p->d_ptr->parent; @@ -4264,7 +4287,7 @@ void QGraphicsItem::stackBefore(const QGraphicsItem *sibling) // Only move items with the same Z value, and that need moving. int siblingIndex = sibling->d_ptr->siblingIndex; int myIndex = d_ptr->siblingIndex; - if (myIndex >= siblingIndex && d_ptr->z == sibling->d_ptr->z) { + if (myIndex >= siblingIndex) { siblings->move(myIndex, siblingIndex); // Fixup the insertion ordering. for (int i = 0; i < siblings->size(); ++i) { @@ -9674,12 +9697,14 @@ bool QGraphicsTextItem::sceneEvent(QEvent *event) // Reset the focus widget's input context, regardless // of how this item gained or lost focus. if (QWidget *fw = qApp->focusWidget()) { +#ifndef QT_NO_IM if (QInputContext *qic = fw->inputContext()) { if (event->type() == QEvent::FocusIn || event->type() == QEvent::FocusOut) qic->reset(); else qic->update(); } +#endif //QT_NO_IM } break; default: @@ -10788,8 +10813,12 @@ QDebug operator<<(QDebug debug, QGraphicsItem *item) return debug; } - debug << "QGraphicsItem(this =" << ((void*)item) - << ", parent =" << ((void*)item->parentItem()) + if (QGraphicsObject *o = item->toGraphicsObject()) + debug << o->metaObject()->className(); + else + debug << "QGraphicsItem"; + debug << "(this =" << (void*)item + << ", parent =" << (void*)item->parentItem() << ", pos =" << item->pos() << ", z =" << item->zValue() << ", flags = " << item->flags() << ")"; diff --git a/src/gui/graphicsview/qgraphicsitem_p.h b/src/gui/graphicsview/qgraphicsitem_p.h index 183e95b..ca56c18 100644 --- a/src/gui/graphicsview/qgraphicsitem_p.h +++ b/src/gui/graphicsview/qgraphicsitem_p.h @@ -607,7 +607,7 @@ public: return item->type() == QGraphicsPixmapItem::Type && !(item->flags() & QGraphicsItem::ItemIsSelectable) && item->d_ptr->children.size() == 0; - //|| (item->d_ptr->isObject && qobject_cast<QFxImage *>(q_func())); + //|| (item->d_ptr->isObject && qobject_cast<QmlGraphicsImage *>(q_func())); } inline const QStyleOption *styleOption() const diff --git a/src/gui/graphicsview/qgraphicslayout_p.h b/src/gui/graphicsview/qgraphicslayout_p.h index 59c6dba..4aeae39 100644 --- a/src/gui/graphicsview/qgraphicslayout_p.h +++ b/src/gui/graphicsview/qgraphicslayout_p.h @@ -60,6 +60,8 @@ #include "qgraphicslayout.h" #include "qgraphicslayoutitem_p.h" #include <QtGui/qstyle.h> +#include <QtGui/qwidget.h> +#include <QtGui/qstyleoption.h> QT_BEGIN_NAMESPACE @@ -76,6 +78,55 @@ inline bool qt_graphicsLayoutDebug() } #endif + +class QLayoutStyleInfo +{ +public: + inline QLayoutStyleInfo() { invalidate(); } + inline QLayoutStyleInfo(QStyle *style, QWidget *widget) + : m_valid(true), m_style(style), m_widget(widget) + { + Q_ASSERT(style); + if (widget) //### + m_styleOption.initFrom(widget); + m_defaultSpacing[0] = style->pixelMetric(QStyle::PM_LayoutHorizontalSpacing); + m_defaultSpacing[1] = style->pixelMetric(QStyle::PM_LayoutVerticalSpacing); + } + + inline void invalidate() { m_valid = false; m_style = 0; m_widget = 0; } + + inline QStyle *style() const { return m_style; } + inline QWidget *widget() const { return m_widget; } + + inline bool operator==(const QLayoutStyleInfo &other) + { return m_style == other.m_style && m_widget == other.m_widget; } + inline bool operator!=(const QLayoutStyleInfo &other) + { return !(*this == other); } + + inline void setDefaultSpacing(Qt::Orientation o, qreal spacing){ + if (spacing >= 0) + m_defaultSpacing[o - 1] = spacing; + } + + inline qreal defaultSpacing(Qt::Orientation o) const { + return m_defaultSpacing[o - 1]; + } + + inline qreal perItemSpacing(QSizePolicy::ControlType control1, + QSizePolicy::ControlType control2, + Qt::Orientation orientation) const + { + Q_ASSERT(style()); + return style()->layoutSpacing(control1, control2, orientation, &m_styleOption, widget()); + } +private: + bool m_valid; + QStyle *m_style; + QWidget *m_widget; + QStyleOption m_styleOption; + qreal m_defaultSpacing[2]; +}; + class Q_AUTOTEST_EXPORT QGraphicsLayoutPrivate : public QGraphicsLayoutItemPrivate { Q_DECLARE_PUBLIC(QGraphicsLayout) diff --git a/src/gui/graphicsview/qgraphicsproxywidget.cpp b/src/gui/graphicsview/qgraphicsproxywidget.cpp index 64c51ad..e9173a9 100644 --- a/src/gui/graphicsview/qgraphicsproxywidget.cpp +++ b/src/gui/graphicsview/qgraphicsproxywidget.cpp @@ -397,7 +397,7 @@ QWidget *QGraphicsProxyWidgetPrivate::findFocusChild(QWidget *child, bool next) do { if (child->isEnabled() && child->isVisibleTo(widget) - && (child->focusPolicy() & focus_flag == focus_flag) + && ((child->focusPolicy() & focus_flag) == focus_flag) && !(child->d_func()->extra && child->d_func()->extra->focus_proxy)) { return child; } diff --git a/src/gui/graphicsview/qgraphicsscene.cpp b/src/gui/graphicsview/qgraphicsscene.cpp index c459d21..f982f4b 100644 --- a/src/gui/graphicsview/qgraphicsscene.cpp +++ b/src/gui/graphicsview/qgraphicsscene.cpp @@ -525,6 +525,14 @@ void QGraphicsScenePrivate::removeItemHelper(QGraphicsItem *item) item->d_func()->scene = 0; + //We need to remove all children first because they might use their parent + //attributes (e.g. sceneTransform). + if (!item->d_ptr->inDestructor) { + // Remove all children recursively + for (int i = 0; i < item->d_ptr->children.size(); ++i) + q->removeItem(item->d_ptr->children.at(i)); + } + // Unregister focus proxy. item->d_ptr->resetFocusProxy(); @@ -571,12 +579,6 @@ void QGraphicsScenePrivate::removeItemHelper(QGraphicsItem *item) ++iterator; } - if (!item->d_ptr->inDestructor) { - // Remove all children recursively - for (int i = 0; i < item->d_ptr->children.size(); ++i) - q->removeItem(item->d_ptr->children.at(i)); - } - if (item->isPanel() && item->isVisible() && item->panelModality() != QGraphicsItem::NonModal) leaveModal(item); @@ -691,6 +693,7 @@ void QGraphicsScenePrivate::setFocusItemHelper(QGraphicsItem *item, focusItem = 0; sendEvent(lastFocusItem, &event); +#ifndef QT_NO_IM if (lastFocusItem && (lastFocusItem->flags() & QGraphicsItem::ItemAcceptsInputMethod)) { // Reset any visible preedit text @@ -706,6 +709,7 @@ void QGraphicsScenePrivate::setFocusItemHelper(QGraphicsItem *item, views.at(i)->inputContext()->reset(); } } +#endif //QT_NO_IM } if (item) { @@ -4910,7 +4914,7 @@ void QGraphicsScenePrivate::processDirtyItemsRecursive(QGraphicsItem *item, bool continue; } - if (item->d_ptr->paintedViewBoundingRectsNeedRepaint && !paintedViewBoundingRect.isEmpty()) { + if (item->d_ptr->paintedViewBoundingRectsNeedRepaint) { paintedViewBoundingRect.translate(viewPrivate->dirtyScrollOffset); if (!viewPrivate->updateRect(paintedViewBoundingRect)) paintedViewBoundingRect = QRect(-1, -1, -1, -1); // Outside viewport. diff --git a/src/gui/graphicsview/qgraphicstransform.cpp b/src/gui/graphicsview/qgraphicstransform.cpp index e2a3f08..83bc9e1 100644 --- a/src/gui/graphicsview/qgraphicstransform.cpp +++ b/src/gui/graphicsview/qgraphicstransform.cpp @@ -93,8 +93,8 @@ #include <QDebug> #include <QtCore/qmath.h> +#ifndef QT_NO_GRAPHICSVIEW QT_BEGIN_NAMESPACE - void QGraphicsTransformPrivate::setItem(QGraphicsItem *i) { if (item == i) @@ -565,3 +565,4 @@ void QGraphicsRotation::applyTo(QMatrix4x4 *matrix) const #include "moc_qgraphicstransform.cpp" QT_END_NAMESPACE +#endif //QT_NO_GRAPHICSVIEW diff --git a/src/gui/graphicsview/qgraphicstransform.h b/src/gui/graphicsview/qgraphicstransform.h index 58075aa..58e3077 100644 --- a/src/gui/graphicsview/qgraphicstransform.h +++ b/src/gui/graphicsview/qgraphicstransform.h @@ -47,6 +47,7 @@ #include <QtGui/QTransform> #include <QtGui/QMatrix4x4> +#ifndef QT_NO_GRAPHICSVIEW QT_BEGIN_HEADER QT_BEGIN_NAMESPACE @@ -150,5 +151,6 @@ private: QT_END_NAMESPACE QT_END_HEADER +#endif //QT_NO_GRAPHICSVIEW #endif // QFXTRANSFORM_H diff --git a/src/gui/graphicsview/qgraphicstransform_p.h b/src/gui/graphicsview/qgraphicstransform_p.h index 9e708b2..ddf99bb 100644 --- a/src/gui/graphicsview/qgraphicstransform_p.h +++ b/src/gui/graphicsview/qgraphicstransform_p.h @@ -54,7 +54,7 @@ // #include "private/qobject_p.h" - +#ifndef QT_NO_GRAPHICSVIEW QT_BEGIN_NAMESPACE class QGraphicsItem; @@ -73,5 +73,6 @@ public: }; QT_END_NAMESPACE +#endif //QT_NO_GRAPHCISVIEW #endif // QGRAPHICSTRANSFORM_P_H diff --git a/src/gui/graphicsview/qgraphicsview.cpp b/src/gui/graphicsview/qgraphicsview.cpp index 710c745..f72aa8a 100644 --- a/src/gui/graphicsview/qgraphicsview.cpp +++ b/src/gui/graphicsview/qgraphicsview.cpp @@ -3319,6 +3319,14 @@ void QGraphicsView::paintEvent(QPaintEvent *event) if (!(d->optimizationFlags & IndirectPainting)) { d->scene->d_func()->drawItems(&painter, viewTransformed ? &viewTransform : 0, &d->exposedRegion, viewport()); + // Make sure the painter's world transform is restored correctly when + // drawing without painter state protection (DontSavePainterState). + // We only change the worldTransform() so there's no need to do a full-blown + // save() and restore(). Also note that we don't have to do this in case of + // IndirectPainting (the else branch), because in that case we always save() + // and restore() in QGraphicsScene::drawItems(). + if (!d->scene->d_func()->painterStateProtection) + painter.setWorldTransform(viewTransform); } else { // Find all exposed items bool allItems = false; diff --git a/src/gui/graphicsview/qgraphicswidget.cpp b/src/gui/graphicsview/qgraphicswidget.cpp index 35a3c13..d70a281 100644 --- a/src/gui/graphicsview/qgraphicswidget.cpp +++ b/src/gui/graphicsview/qgraphicswidget.cpp @@ -1352,6 +1352,8 @@ void QGraphicsWidget::changeEvent(QEvent *event) case QEvent::StyleChange: // ### Don't unset if the margins are explicitly set. unsetWindowFrameMargins(); + if (d->layout) + d->layout->invalidate(); case QEvent::FontChange: update(); updateGeometry(); diff --git a/src/gui/graphicsview/qgridlayoutengine_p.h b/src/gui/graphicsview/qgridlayoutengine_p.h index a42a537..ed335a8 100644 --- a/src/gui/graphicsview/qgridlayoutengine_p.h +++ b/src/gui/graphicsview/qgridlayoutengine_p.h @@ -59,7 +59,7 @@ #include "qmap.h" #include "qpair.h" #include "qvector.h" - +#include "qgraphicslayout_p.h" #include <float.h> QT_BEGIN_NAMESPACE @@ -128,29 +128,6 @@ public: }; -class QLayoutStyleInfo -{ -public: - inline QLayoutStyleInfo() { invalidate(); } - inline QLayoutStyleInfo(QStyle *style, QWidget *widget) - : q_valid(true), q_style(style), q_widget(widget) {} - - inline void invalidate() { q_valid = false; q_style = 0; q_widget = 0; } - - inline QStyle *style() const { return q_style; } - inline QWidget *widget() const { return q_widget; } - - inline bool operator==(const QLayoutStyleInfo &other) - { return q_style == other.q_style && q_widget == other.q_widget; } - inline bool operator!=(const QLayoutStyleInfo &other) - { return !(*this == other); } - -private: - bool q_valid; - QStyle *q_style; - QWidget *q_widget; -}; - class QGridLayoutBox { public: diff --git a/src/gui/graphicsview/qsimplex_p.cpp b/src/gui/graphicsview/qsimplex_p.cpp index b8f8fb4..86b10b4 100644 --- a/src/gui/graphicsview/qsimplex_p.cpp +++ b/src/gui/graphicsview/qsimplex_p.cpp @@ -108,10 +108,8 @@ void QSimplex::clearDataStructures() // Constraints for (int i = 0; i < constraints.size(); ++i) { delete constraints[i]->helper.first; - constraints[i]->helper.first = 0; - constraints[i]->helper.second = 0.0; delete constraints[i]->artificial; - constraints[i]->artificial = 0; + delete constraints[i]; } constraints.clear(); @@ -137,7 +135,23 @@ bool QSimplex::setConstraints(const QList<QSimplexConstraint *> newConstraints) if (newConstraints.isEmpty()) return true; // we are ok with no constraints - constraints = newConstraints; + + // Make deep copy of constraints. We need this copy because we may change + // them in the simplification method. + for (int i = 0; i < newConstraints.size(); ++i) { + QSimplexConstraint *c = new QSimplexConstraint; + c->constant = newConstraints[i]->constant; + c->ratio = newConstraints[i]->ratio; + c->variables = newConstraints[i]->variables; + constraints << c; + } + + // Remove constraints of type Var == K and replace them for their value. + if (!simplifyConstraints(&constraints)) { + qWarning() << "QSimplex: No feasible solution!"; + clearDataStructures(); + return false; + } /////////////////////////////////////// // Prepare variables and constraints // @@ -508,11 +522,21 @@ qreal QSimplex::solver(solverFactor factor) // Remove old objective clearRow(0); - // Set new objective + // Set new objective in the first row of the simplex matrix + qreal resultOffset = 0; QHash<QSimplexVariable *, qreal>::const_iterator iter; for (iter = objective->variables.constBegin(); iter != objective->variables.constEnd(); ++iter) { + + // Check if the variable was removed in the simplification process. + // If so, we save its offset to the objective function and skip adding + // it to the matrix. + if (iter.key()->index == -1) { + resultOffset += iter.value() * iter.key()->result; + continue; + } + setValueAt(0, iter.key()->index, -1 * factor * iter.value()); } @@ -525,7 +549,9 @@ qreal QSimplex::solver(solverFactor factor) } #endif - return factor * valueAt(0, columns - 1); + // Return the value calculated by the simplex plus the value of the + // fixed variables. + return (factor * valueAt(0, columns - 1)) + resultOffset; } /*! @@ -571,4 +597,77 @@ void QSimplex::collectResults() } } +/*! + \internal + + Looks for single-valued variables and remove them from the constraints list. +*/ +bool QSimplex::simplifyConstraints(QList<QSimplexConstraint *> *constraints) +{ + QHash<QSimplexVariable *, qreal> results; // List of single-valued variables + bool modified = true; // Any chance more optimization exists? + + while (modified) { + modified = false; + + // For all constraints + QList<QSimplexConstraint *>::iterator iter = constraints->begin(); + while (iter != constraints->end()) { + QSimplexConstraint *c = *iter; + if ((c->ratio == QSimplexConstraint::Equal) && (c->variables.count() == 1)) { + // Check whether this is a constraint of type Var == K + // If so, save its value to "results". + QSimplexVariable *variable = c->variables.constBegin().key(); + qreal result = c->constant / c->variables.value(variable); + + results.insert(variable, result); + variable->result = result; + variable->index = -1; + modified = true; + + } + + // Replace known values among their variables + QHash<QSimplexVariable *, qreal>::const_iterator r; + for (r = results.constBegin(); r != results.constEnd(); ++r) { + if (c->variables.contains(r.key())) { + c->constant -= r.value() * c->variables.take(r.key()); + modified = true; + } + } + + // Keep it normalized + if (c->constant < 0) + c->invert(); + + if (c->variables.isEmpty()) { + // If constraint became empty due to substitution, delete it. + if (c->isSatisfied() == false) + // We must ensure that the constraint soon to be deleted would not + // make the problem unfeasible if left behind. If that's the case, + // we return false so the simplex solver can properly report that. + return false; + + delete c; + iter = constraints->erase(iter); + } else { + ++iter; + } + } + } + + return true; +} + +void QSimplexConstraint::invert() +{ + constant = -constant; + ratio = Ratio(2 - ratio); + + QHash<QSimplexVariable *, qreal>::iterator iter; + for (iter = variables.begin(); iter != variables.end(); ++iter) { + iter.value() = -iter.value(); + } +} + QT_END_NAMESPACE diff --git a/src/gui/graphicsview/qsimplex_p.h b/src/gui/graphicsview/qsimplex_p.h index 51991a9..084ad7f 100644 --- a/src/gui/graphicsview/qsimplex_p.h +++ b/src/gui/graphicsview/qsimplex_p.h @@ -63,7 +63,7 @@ struct QSimplexVariable QSimplexVariable() : result(0), index(0) {} qreal result; - uint index; + int index; }; @@ -95,7 +95,8 @@ struct QSimplexConstraint QPair<QSimplexVariable *, qreal> helper; QSimplexVariable * artificial; -#ifdef QT_DEBUG + void invert(); + bool isSatisfied() { qreal leftHandSide(0); @@ -106,7 +107,7 @@ struct QSimplexConstraint Q_ASSERT(constant > 0 || qFuzzyCompare(1, 1 + constant)); - if (qFuzzyCompare(1000 + leftHandSide, 1000 + constant)) + if ((leftHandSide == constant) || qFuzzyCompare(1000 + leftHandSide, 1000 + constant)) return true; switch (ratio) { @@ -118,6 +119,30 @@ struct QSimplexConstraint return false; } } + +#ifdef QT_DEBUG + QString toString() { + QString result; + result += QString::fromAscii("-- QSimplexConstraint %1 --").arg(quintptr(this), 0, 16); + + QHash<QSimplexVariable *, qreal>::const_iterator iter; + for (iter = variables.constBegin(); iter != variables.constEnd(); ++iter) { + result += QString::fromAscii(" %1 x %2").arg(iter.value()).arg(quintptr(iter.key()), 0, 16); + } + + switch (ratio) { + case LessOrEqual: + result += QString::fromAscii(" (less) <= %1").arg(constant); + break; + case MoreOrEqual: + result += QString::fromAscii(" (more) >= %1").arg(constant); + break; + default: + result += QString::fromAscii(" (eqal) == %1").arg(constant); + } + + return result; + } #endif }; @@ -129,7 +154,6 @@ public: qreal solveMin(); qreal solveMax(); - QList<QSimplexVariable *> constraintsVariables(); bool setConstraints(const QList<QSimplexConstraint *> constraints); void setObjective(QSimplexConstraint *objective); @@ -145,6 +169,7 @@ private: void combineRows(int toIndex, int fromIndex, qreal factor); // Simplex + bool simplifyConstraints(QList<QSimplexConstraint *> *constraints); int findPivotColumn(); int pivotRowForColumn(int column); void reducedRowEchelon(); @@ -168,11 +193,6 @@ private: qreal *matrix; }; -inline QList<QSimplexVariable *> QSimplex::constraintsVariables() -{ - return variables; -} - inline qreal QSimplex::valueAt(int rowIndex, int columnIndex) { return matrix[rowIndex * columns + columnIndex]; diff --git a/src/gui/image/qicon.cpp b/src/gui/image/qicon.cpp index e0779a0..cff9cd2 100644 --- a/src/gui/image/qicon.cpp +++ b/src/gui/image/qicon.cpp @@ -66,6 +66,7 @@ #include "private/qkde_p.h" #endif +#ifndef QT_NO_ICON QT_BEGIN_NAMESPACE /*! @@ -1217,3 +1218,4 @@ QSize QIcon::pixmapSize(Size which) */ QT_END_NAMESPACE +#endif //QT_NO_ICON diff --git a/src/gui/image/qicon_p.h b/src/gui/image/qicon_p.h index fc96a65..43a59a6 100644 --- a/src/gui/image/qicon_p.h +++ b/src/gui/image/qicon_p.h @@ -60,6 +60,7 @@ #include <QtGui/qicon.h> #include <QtGui/qiconengine.h> +#ifndef QT_NO_ICON QT_BEGIN_NAMESPACE class QIconPrivate @@ -134,5 +135,5 @@ private: }; QT_END_NAMESPACE - +#endif //QT_NO_ICON #endif // QICON_P_H diff --git a/src/gui/image/qiconloader.cpp b/src/gui/image/qiconloader.cpp index 46c5431..234f271 100644 --- a/src/gui/image/qiconloader.cpp +++ b/src/gui/image/qiconloader.cpp @@ -38,7 +38,7 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ - +#ifndef QT_NO_ICON #include <private/qiconloader_p.h> #include <private/qapplication_p.h> @@ -92,11 +92,13 @@ QIconLoader::QIconLoader() : if (m_systemTheme.isEmpty()) m_systemTheme = fallbackTheme(); +#ifndef QT_NO_LIBRARY QFactoryLoader iconFactoryLoader(QIconEngineFactoryInterfaceV2_iid, QLatin1String("/iconengines"), Qt::CaseInsensitive); if (iconFactoryLoader.keys().contains(QLatin1String("svg"))) m_supportsSvg = true; +#endif //QT_NO_LIBRARY } QIconLoader *QIconLoader::instance() @@ -160,7 +162,7 @@ QIconTheme::QIconTheme(const QString &themeName) break; } } - +#ifndef QT_NO_SETTINGS if (themeIndex.exists()) { const QSettings indexReader(themeIndex.fileName(), QSettings::IniFormat); QStringListIterator keyIterator(indexReader.allKeys()); @@ -213,6 +215,7 @@ QIconTheme::QIconTheme(const QString &themeName) if (!m_parents.contains(QLatin1String("hicolor"))) m_parents.append(QLatin1String("hicolor")); } +#endif //QT_NO_SETTINGS } QThemeIconEntries QIconLoader::findIconHelper(const QString &themeName, @@ -546,3 +549,5 @@ void QIconLoaderEngine::virtual_hook(int id, void *data) } QT_END_NAMESPACE + +#endif //QT_NO_ICON diff --git a/src/gui/image/qiconloader_p.h b/src/gui/image/qiconloader_p.h index b152d46..2a330d3 100644 --- a/src/gui/image/qiconloader_p.h +++ b/src/gui/image/qiconloader_p.h @@ -42,6 +42,7 @@ #ifndef QDESKTOPICON_P_H #define QDESKTOPICON_P_H +#ifndef QT_NO_ICON // // W A R N I N G // ------------- @@ -185,3 +186,5 @@ private: QT_END_NAMESPACE #endif // QDESKTOPICON_P_H + +#endif //QT_NO_ICON diff --git a/src/gui/itemviews/qabstractitemview.cpp b/src/gui/itemviews/qabstractitemview.cpp index d91cedd..23bef12 100644 --- a/src/gui/itemviews/qabstractitemview.cpp +++ b/src/gui/itemviews/qabstractitemview.cpp @@ -605,6 +605,8 @@ void QAbstractItemView::setModel(QAbstractItemModel *model) this, SLOT(_q_modelDestroyed())); disconnect(d->model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(dataChanged(QModelIndex,QModelIndex))); + disconnect(d->model, SIGNAL(headerDataChanged(Qt::Orientation,int,int)), + this, SLOT(_q_headerDataChanged())); disconnect(d->model, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(rowsInserted(QModelIndex,int,int))); disconnect(d->model, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), @@ -637,6 +639,8 @@ void QAbstractItemView::setModel(QAbstractItemModel *model) this, SLOT(_q_modelDestroyed())); connect(d->model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(dataChanged(QModelIndex,QModelIndex))); + connect(d->model, SIGNAL(headerDataChanged(Qt::Orientation,int,int)), + this, SLOT(_q_headerDataChanged())); connect(d->model, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(rowsInserted(QModelIndex,int,int))); connect(d->model, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), @@ -3637,7 +3641,7 @@ QItemSelectionModel::SelectionFlags QAbstractItemViewPrivate::extendedSelectionC const bool controlKeyPressed = modifiers & Qt::ControlModifier; if (((index == pressedIndex && selectionModel->isSelected(index)) || !index.isValid()) && state != QAbstractItemView::DragSelectingState - && !shiftKeyPressed && !controlKeyPressed && !rightButtonPressed) + && !shiftKeyPressed && !controlKeyPressed && (!rightButtonPressed || !index.isValid())) return QItemSelectionModel::ClearAndSelect|selectionBehaviorFlags(); return QItemSelectionModel::NoUpdate; } diff --git a/src/gui/itemviews/qabstractitemview.h b/src/gui/itemviews/qabstractitemview.h index b4f0957..7a0509b 100644 --- a/src/gui/itemviews/qabstractitemview.h +++ b/src/gui/itemviews/qabstractitemview.h @@ -358,9 +358,11 @@ private: Q_PRIVATE_SLOT(d_func(), void _q_rowsRemoved(const QModelIndex&, int, int)) Q_PRIVATE_SLOT(d_func(), void _q_modelDestroyed()) Q_PRIVATE_SLOT(d_func(), void _q_layoutChanged()) + Q_PRIVATE_SLOT(d_func(), void _q_headerDataChanged()) friend class QTreeViewPrivate; // needed to compile with MSVC friend class QAccessibleItemRow; + friend class QListModeViewBase; }; Q_DECLARE_OPERATORS_FOR_FLAGS(QAbstractItemView::EditTriggers) diff --git a/src/gui/itemviews/qabstractitemview_p.h b/src/gui/itemviews/qabstractitemview_p.h index fcf381a..c691f61 100644 --- a/src/gui/itemviews/qabstractitemview_p.h +++ b/src/gui/itemviews/qabstractitemview_p.h @@ -117,6 +117,7 @@ public: virtual void _q_columnsInserted(const QModelIndex &parent, int start, int end); virtual void _q_modelDestroyed(); virtual void _q_layoutChanged(); + void _q_headerDataChanged() { doDelayedItemsLayout(); } void fetchMore(); @@ -164,7 +165,8 @@ public: } #ifndef QT_NO_DRAGANDDROP - QAbstractItemView::DropIndicatorPosition position(const QPoint &pos, const QRect &rect, const QModelIndex &idx) const; + virtual QAbstractItemView::DropIndicatorPosition position(const QPoint &pos, const QRect &rect, const QModelIndex &idx) const; + inline bool canDecode(QDropEvent *e) const { QStringList modelTypes = model->mimeTypes(); const QMimeData *mime = e->mimeData(); diff --git a/src/gui/itemviews/qheaderview.cpp b/src/gui/itemviews/qheaderview.cpp index 3bd9a19..6f2cff9 100644 --- a/src/gui/itemviews/qheaderview.cpp +++ b/src/gui/itemviews/qheaderview.cpp @@ -2516,6 +2516,8 @@ QSize QHeaderView::sectionSizeFromContents(int logicalIndex) const Q_D(const QHeaderView); Q_ASSERT(logicalIndex >= 0); + ensurePolished(); + // use SizeHintRole QVariant variant = d->model->headerData(logicalIndex, d->orientation, Qt::SizeHintRole); if (variant.isValid()) diff --git a/src/gui/itemviews/qitemdelegate.cpp b/src/gui/itemviews/qitemdelegate.cpp index 871a4b1..3b3036d 100644 --- a/src/gui/itemviews/qitemdelegate.cpp +++ b/src/gui/itemviews/qitemdelegate.cpp @@ -255,7 +255,7 @@ QSizeF QItemDelegatePrivate::doTextLayout(int lineWidth) const \row \o \l Qt::BackgroundRole \o QBrush \row \o \l Qt::BackgroundColorRole \o QColor (obsolete; use Qt::BackgroundRole instead) \row \o \l Qt::CheckStateRole \o Qt::CheckState - \row \o \l Qt::DecorationRole \o QIcon and QColor + \row \o \l Qt::DecorationRole \o QIcon, QPixmap and QColor \row \o \l Qt::DisplayRole \o QString and types with a string representation \row \o \l Qt::EditRole \o See QItemEditorFactory for details \row \o \l Qt::FontRole \o QFont diff --git a/src/gui/itemviews/qitemselectionmodel.cpp b/src/gui/itemviews/qitemselectionmodel.cpp index dfebe03..c6e02a6 100644 --- a/src/gui/itemviews/qitemselectionmodel.cpp +++ b/src/gui/itemviews/qitemselectionmodel.cpp @@ -599,7 +599,7 @@ void QItemSelectionModelPrivate::_q_rowsAboutToBeRemoved(const QModelIndex &pare while (itParent.isValid() && itParent.parent() != parent) itParent = itParent.parent(); - if (parent.isValid() && start <= itParent.row() && itParent.row() <= end) { + if (itParent.isValid() && start <= itParent.row() && itParent.row() <= end) { deselected.append(*it); it = ranges.erase(it); } else { @@ -1587,7 +1587,8 @@ void QItemSelectionModel::emitSelectionChanged(const QItemSelection &newSelectio } } - emit selectionChanged(selected, deselected); + if (!selected.isEmpty() || !deselected.isEmpty()) + emit selectionChanged(selected, deselected); } #ifndef QT_NO_DEBUG_STREAM diff --git a/src/gui/itemviews/qlistview.cpp b/src/gui/itemviews/qlistview.cpp index f58f458..d680af8 100644 --- a/src/gui/itemviews/qlistview.cpp +++ b/src/gui/itemviews/qlistview.cpp @@ -853,8 +853,13 @@ void QListView::resizeEvent(QResizeEvent *e) */ void QListView::dragMoveEvent(QDragMoveEvent *e) { - if (!d_func()->commonListView->filterDragMoveEvent(e)) - QAbstractItemView::dragMoveEvent(e); + Q_D(QListView); + if (!d->commonListView->filterDragMoveEvent(e)) { + if (viewMode() == QListView::ListMode && flow() == QListView::LeftToRight) + static_cast<QListModeViewBase *>(d->commonListView)->dragMoveEvent(e); + else + QAbstractItemView::dragMoveEvent(e); + } } @@ -1804,6 +1809,16 @@ QItemSelection QListViewPrivate::selection(const QRect &rect) const return selection; } +#ifndef QT_NO_DRAGANDDROP +QAbstractItemView::DropIndicatorPosition QListViewPrivate::position(const QPoint &pos, const QRect &rect, const QModelIndex &idx) const +{ + if (viewMode == QListView::ListMode && flow == QListView::LeftToRight) + return static_cast<QListModeViewBase *>(commonListView)->position(pos, rect, idx); + else + return QAbstractItemViewPrivate::position(pos, rect, idx); +} +#endif + /* * Common ListView Implementation */ @@ -1893,6 +1908,96 @@ void QListModeViewBase::paintDragDrop(QPainter *painter) // in IconMode, it makes no sense to show it dd->paintDropIndicator(painter); } + +QAbstractItemView::DropIndicatorPosition QListModeViewBase::position(const QPoint &pos, const QRect &rect, const QModelIndex &index) const +{ + QAbstractItemView::DropIndicatorPosition r = QAbstractItemView::OnViewport; + if (!dd->overwrite) { + const int margin = 2; + if (pos.x() - rect.left() < margin) { + r = QAbstractItemView::AboveItem; // Visually, on the left + } else if (rect.right() - pos.x() < margin) { + r = QAbstractItemView::BelowItem; // Visually, on the right + } else if (rect.contains(pos, true)) { + r = QAbstractItemView::OnItem; + } + } else { + QRect touchingRect = rect; + touchingRect.adjust(-1, -1, 1, 1); + if (touchingRect.contains(pos, false)) { + r = QAbstractItemView::OnItem; + } + } + + if (r == QAbstractItemView::OnItem && (!(dd->model->flags(index) & Qt::ItemIsDropEnabled))) + r = pos.x() < rect.center().x() ? QAbstractItemView::AboveItem : QAbstractItemView::BelowItem; + + return r; +} + +void QListModeViewBase::dragMoveEvent(QDragMoveEvent *event) +{ + if (qq->dragDropMode() == QAbstractItemView::InternalMove + && (event->source() != qq || !(event->possibleActions() & Qt::MoveAction))) + return; + + // ignore by default + event->ignore(); + + QModelIndex index = qq->indexAt(event->pos()); + dd->hover = index; + if (!dd->droppingOnItself(event, index) + && dd->canDecode(event)) { + + if (index.isValid() && dd->showDropIndicator) { + QRect rect = qq->visualRect(index); + dd->dropIndicatorPosition = position(event->pos(), rect, index); + switch (dd->dropIndicatorPosition) { + case QAbstractItemView::AboveItem: + if (dd->isIndexDropEnabled(index.parent())) { + dd->dropIndicatorRect = QRect(rect.left(), rect.top(), 0, rect.height()); + event->accept(); + } else { + dd->dropIndicatorRect = QRect(); + } + break; + case QAbstractItemView::BelowItem: + if (dd->isIndexDropEnabled(index.parent())) { + dd->dropIndicatorRect = QRect(rect.right(), rect.top(), 0, rect.height()); + event->accept(); + } else { + dd->dropIndicatorRect = QRect(); + } + break; + case QAbstractItemView::OnItem: + if (dd->isIndexDropEnabled(index)) { + dd->dropIndicatorRect = rect; + event->accept(); + } else { + dd->dropIndicatorRect = QRect(); + } + break; + case QAbstractItemView::OnViewport: + dd->dropIndicatorRect = QRect(); + if (dd->isIndexDropEnabled(qq->rootIndex())) { + event->accept(); // allow dropping in empty areas + } + break; + } + } else { + dd->dropIndicatorRect = QRect(); + dd->dropIndicatorPosition = QAbstractItemView::OnViewport; + if (dd->isIndexDropEnabled(qq->rootIndex())) { + event->accept(); // allow dropping in empty areas + } + } + dd->viewport->update(); + } // can decode + + if (dd->shouldAutoScroll(event->pos())) + qq->startAutoScroll(); +} + #endif //QT_NO_DRAGANDDROP void QListModeViewBase::updateVerticalScrollBar(const QSize &step) @@ -2298,6 +2403,12 @@ QVector<QModelIndex> QListModeViewBase::intersectingSet(const QRect &area) const return ret; } +void QListModeViewBase::dataChanged(const QModelIndex &, const QModelIndex &) +{ + dd->doDelayedItemsLayout(); +} + + QRect QListModeViewBase::mapToViewport(const QRect &rect) const { if (isWrapping()) diff --git a/src/gui/itemviews/qlistview_p.h b/src/gui/itemviews/qlistview_p.h index de4c7f3..31459b0 100644 --- a/src/gui/itemviews/qlistview_p.h +++ b/src/gui/itemviews/qlistview_p.h @@ -130,6 +130,7 @@ public: virtual void clear() = 0; virtual void setRowCount(int) = 0; virtual QVector<QModelIndex> intersectingSet(const QRect &area) const = 0; + virtual void dataChanged(const QModelIndex &, const QModelIndex &) = 0; virtual int horizontalScrollToValue(int index, QListView::ScrollHint hint, bool leftOf, bool rightOf, const QRect &area, const QRect &rect) const; @@ -141,7 +142,6 @@ public: virtual int verticalOffset() const { return verticalScrollBar()->value(); } virtual void updateHorizontalScrollBar(const QSize &step); virtual void updateVerticalScrollBar(const QSize &step); - virtual void dataChanged(const QModelIndex &, const QModelIndex &) { } virtual void appendHiddenRow(int row); virtual void removeHiddenRow(int row); virtual void setPositionForIndex(const QPoint &, const QModelIndex &) { } @@ -217,6 +217,7 @@ public: void clear(); void setRowCount(int rowCount) { flowPositions.resize(rowCount); } QVector<QModelIndex> intersectingSet(const QRect &area) const; + void dataChanged(const QModelIndex &, const QModelIndex &); int horizontalScrollToValue(int index, QListView::ScrollHint hint, bool leftOf, bool rightOf,const QRect &area, const QRect &rect) const; @@ -231,6 +232,11 @@ public: #ifndef QT_NO_DRAGANDDROP void paintDragDrop(QPainter *painter); + + // The next two methods are to be used on LefToRight flow only. + // WARNING: Plenty of duplicated code from QAbstractItemView{,Private}. + QAbstractItemView::DropIndicatorPosition position(const QPoint &pos, const QRect &rect, const QModelIndex &idx) const; + void dragMoveEvent(QDragMoveEvent *e); #endif private: @@ -356,6 +362,10 @@ public: QItemSelection selection(const QRect &rect) const; void selectAll(QItemSelectionModel::SelectionFlags command); +#ifndef QT_NO_DRAGANDDROP + virtual QAbstractItemView::DropIndicatorPosition position(const QPoint &pos, const QRect &rect, const QModelIndex &idx) const; +#endif + inline void setGridSize(const QSize &size) { grid = size; } inline QSize gridSize() const { return grid; } inline void setWrapping(bool b) { wrap = b; } diff --git a/src/gui/itemviews/qlistwidget.cpp b/src/gui/itemviews/qlistwidget.cpp index a978d0f..5dd1d76 100644 --- a/src/gui/itemviews/qlistwidget.cpp +++ b/src/gui/itemviews/qlistwidget.cpp @@ -169,6 +169,20 @@ QListWidgetItem *QListModel::take(int row) return item; } +void QListModel::move(int srcRow, int dstRow) +{ + if (srcRow == dstRow + || srcRow < 0 || srcRow >= items.count() + || dstRow < 0 || dstRow >= items.count()) + return; + + beginMoveRows(QModelIndex(), srcRow, srcRow, QModelIndex(), dstRow); + if (srcRow < dstRow) + --dstRow; + items.move(srcRow, dstRow); + endMoveRows(); +} + int QListModel::rowCount(const QModelIndex &parent) const { return parent.isValid() ? 0 : items.count(); @@ -1804,22 +1818,15 @@ void QListWidget::dropEvent(QDropEvent *event) { if (persIndexes.contains(topIndex)) return; + qSort(persIndexes); // The dropped items will remain in the same visual order. QPersistentModelIndex dropRow = model()->index(row, col, topIndex); - QList<QListWidgetItem *> taken; - for (int i = 0; i < persIndexes.count(); ++i) - taken.append(takeItem(persIndexes.at(i).row())); - - // insert them back in at their new positions + int r = row == -1 ? count() : (dropRow.row() >= 0 ? dropRow.row() : row); for (int i = 0; i < persIndexes.count(); ++i) { - // Either at a specific point or appended - if (row == -1) { - insertItem(count(), taken.takeFirst()); - } else { - int r = dropRow.row() >= 0 ? dropRow.row() : row; - insertItem(qMin(r, count()), taken.takeFirst()); - } + const QPersistentModelIndex &pIndex = persIndexes.at(i); + d->listModel()->move(pIndex.row(), r); + r = pIndex.row() + 1; // Dropped items are inserted contiguously and in the right order. } event->accept(); diff --git a/src/gui/itemviews/qlistwidget_p.h b/src/gui/itemviews/qlistwidget_p.h index 69cfa26..b5f28e3 100644 --- a/src/gui/itemviews/qlistwidget_p.h +++ b/src/gui/itemviews/qlistwidget_p.h @@ -77,7 +77,7 @@ public: { return *i2 < *i1; } }; -class QListModel : public QAbstractListModel +class Q_AUTOTEST_EXPORT QListModel : public QAbstractListModel { Q_OBJECT public: @@ -90,6 +90,7 @@ public: void insert(int row, const QStringList &items); void remove(QListWidgetItem *item); QListWidgetItem *take(int row); + void move(int srcRow, int dstRow); int rowCount(const QModelIndex &parent = QModelIndex()) const; diff --git a/src/gui/itemviews/qstyleditemdelegate.cpp b/src/gui/itemviews/qstyleditemdelegate.cpp index 1c36787..1ca0391 100644 --- a/src/gui/itemviews/qstyleditemdelegate.cpp +++ b/src/gui/itemviews/qstyleditemdelegate.cpp @@ -148,7 +148,7 @@ public: \row \o \l Qt::BackgroundRole \o QBrush \row \o \l Qt::BackgroundColorRole \o QColor (obsolete; use Qt::BackgroundRole instead) \row \o \l Qt::CheckStateRole \o Qt::CheckState - \row \o \l Qt::DecorationRole \o QIcon and QColor + \row \o \l Qt::DecorationRole \o QIcon, QPixmap, QImage and QColor \row \o \l Qt::DisplayRole \o QString and types with a string representation \row \o \l Qt::EditRole \o See QItemEditorFactory for details \row \o \l Qt::FontRole \o QFont diff --git a/src/gui/itemviews/qtableview.cpp b/src/gui/itemviews/qtableview.cpp index 2a937f1..02e5fff 100644 --- a/src/gui/itemviews/qtableview.cpp +++ b/src/gui/itemviews/qtableview.cpp @@ -117,7 +117,7 @@ void QSpanCollection::updateSpan(QSpanCollection::Span *span, int old_height) Index::iterator it_y = index.lowerBound(-span->bottom()); Q_ASSERT(it_y != index.end()); //it_y must exist since the span is in the list while (-it_y.key() <= span->top() + old_height -1) { - if(-it_y.key() != span->bottom()) { + if (-it_y.key() > span->bottom()) { (*it_y).remove(-span->left()); if (it_y->isEmpty()) { it_y = index.erase(it_y) - 1; @@ -544,6 +544,47 @@ void QSpanCollection::updateRemovedColumns(int start, int end) qDeleteAll(toBeDeleted); } +#ifdef QT_BUILD_INTERNAL +/*! + \internal + Checks whether the span index structure is self-consistent, and consistent with the spans list. +*/ +bool QSpanCollection::checkConsistency() const +{ + for (Index::const_iterator it_y = index.begin(); it_y != index.end(); ++it_y) { + int y = -it_y.key(); + const SubIndex &subIndex = it_y.value(); + for (SubIndex::const_iterator it = subIndex.begin(); it != subIndex.end(); ++it) { + int x = -it.key(); + Span *span = it.value(); + if (!spans.contains(span) || span->left() != x + || y < span->top() || y > span->bottom()) + return false; + } + } + + foreach (const Span *span, spans) { + if (span->width() < 1 || span->height() < 1 + || (span->width() == 1 && span->height() == 1)) + return false; + for (int y = span->top(); y <= span->bottom(); ++y) { + Index::const_iterator it_y = index.find(-y); + if (it_y == index.end()) { + if (y == span->top()) + return false; + else + continue; + } + const SubIndex &subIndex = it_y.value(); + SubIndex::const_iterator it = subIndex.find(-span->left()); + if (it == subIndex.end() || it.value() != span) + return false; + } + } + return true; +} +#endif + class QTableCornerButton : public QAbstractButton { Q_OBJECT @@ -2065,6 +2106,8 @@ int QTableView::sizeHintForRow(int row) const if (!model()) return -1; + ensurePolished(); + int left = qMax(0, columnAt(0)); int right = columnAt(d->viewport->width()); if (right == -1) // the table don't have enough columns to fill the viewport @@ -2122,6 +2165,8 @@ int QTableView::sizeHintForColumn(int column) const if (!model()) return -1; + ensurePolished(); + int top = qMax(0, rowAt(0)); int bottom = rowAt(d->viewport->height()); if (!isVisible() || bottom == -1) // the table don't have enough rows to fill the viewport diff --git a/src/gui/itemviews/qtableview_p.h b/src/gui/itemviews/qtableview_p.h index 9fa14c2..6b19ded 100644 --- a/src/gui/itemviews/qtableview_p.h +++ b/src/gui/itemviews/qtableview_p.h @@ -74,7 +74,7 @@ QT_BEGIN_NAMESPACE * The key of the first map is the row where the subspan starts, the value of the first map is * a list (map) of all subspans that starts at the same row. It is indexed with its row */ -class QSpanCollection +class Q_AUTOTEST_EXPORT QSpanCollection { public: struct Span @@ -112,6 +112,10 @@ public: void updateRemovedRows(int start, int end); void updateRemovedColumns(int start, int end); +#ifdef QT_BUILD_INTERNAL + bool checkConsistency() const; +#endif + typedef QLinkedList<Span *> SpanList; SpanList spans; //lists of all spans private: diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp index f37d8c7..3856293 100644 --- a/src/gui/itemviews/qtreeview.cpp +++ b/src/gui/itemviews/qtreeview.cpp @@ -1226,8 +1226,12 @@ bool QTreeView::viewportEvent(QEvent *event) if (oldIndex != newIndex) { QRect oldRect = visualRect(oldIndex); QRect newRect = visualRect(newIndex); - viewport()->update(oldRect.left() - d->indent, oldRect.top(), d->indent, oldRect.height()); - viewport()->update(newRect.left() - d->indent, newRect.top(), d->indent, newRect.height()); + oldRect.setLeft(oldRect.left() - d->indent); + newRect.setLeft(newRect.left() - d->indent); + //we need to paint the whole items (including the decoration) so that when the user + //moves the mouse over those elements they are updated + viewport()->update(oldRect); + viewport()->update(newRect); } } if (selectionBehavior() == QAbstractItemView::SelectRows) { @@ -1422,8 +1426,9 @@ void QTreeView::drawTree(QPainter *painter, const QRegion ®ion) const for (; i < viewItems.count() && y <= area.bottom(); ++i) { const int itemHeight = d->itemHeight(i); option.rect.setRect(0, y, viewportWidth, itemHeight); - option.state = state | (viewItems.at(i).expanded - ? QStyle::State_Open : QStyle::State_None); + option.state = state | (viewItems.at(i).expanded ? QStyle::State_Open : QStyle::State_None) + | (viewItems.at(i).hasChildren ? QStyle::State_Children : QStyle::State_None) + | (viewItems.at(i).hasMoreSiblings ? QStyle::State_Sibling : QStyle::State_None); d->current = i; d->spanning = viewItems.at(i).spanning; if (!multipleRects || !drawn.contains(i)) { @@ -1748,14 +1753,8 @@ void QTreeView::drawBranches(QPainter *painter, const QRect &rect, opt.rect = primitive; const bool expanded = viewItem.expanded; - const bool children = (((expanded && viewItem.total > 0)) // already laid out and has children - || d->hasVisibleChildren(index)); // not laid out yet, so we don't know - bool moreSiblings = false; - if (d->hiddenIndexes.isEmpty()) - moreSiblings = (d->model->rowCount(parent) - 1 > index.row()); - else - moreSiblings = ((d->viewItems.size() > item +1) - && (d->viewItems.at(item + 1).index.parent() == parent)); + const bool children = viewItem.hasChildren; + bool moreSiblings = viewItem.hasMoreSiblings; opt.state = QStyle::State_Item | extraFlags | (moreSiblings ? QStyle::State_Sibling : QStyle::State_None) @@ -1845,9 +1844,7 @@ void QTreeView::mouseDoubleClickEvent(QMouseEvent *event) return; // user clicked outside the items const QPersistentModelIndex firstColumnIndex = d->viewItems.at(i).index; - - int column = d->header->logicalIndexAt(event->x()); - QPersistentModelIndex persistent = firstColumnIndex.sibling(firstColumnIndex.row(), column); + const QPersistentModelIndex persistent = indexAt(event->pos()); if (d->pressedIndex != persistent) { mousePressEvent(event); @@ -2437,7 +2434,9 @@ void QTreeView::rowsInserted(const QModelIndex &parent, int start, int end) return; } - if (parent != d->root && !d->isIndexExpanded(parent) && d->model->rowCount(parent) > (end - start) + 1) { + const int parentRowCount = d->model->rowCount(parent); + const int delta = end - start + 1; + if (parent != d->root && !d->isIndexExpanded(parent) && parentRowCount > delta) { QAbstractItemView::rowsInserted(parent, start, end); return; } @@ -2452,11 +2451,29 @@ void QTreeView::rowsInserted(const QModelIndex &parent, int start, int end) ? d->viewItems.count() : d->viewItems.at(parentItem).total) - 1; - const int delta = end - start + 1; + if (parentRowCount == end + 1 && start > 0) { + //need to Update hasMoreSiblings + int previousRow = start - 1; + QModelIndex previousSibilingModelIndex = d->model->index(previousRow, 0, parent); + bool isHidden = d->isRowHidden(previousSibilingModelIndex); + while (isHidden && previousRow > 0) { + previousRow--; + previousSibilingModelIndex = d->model->index(previousRow, 0, parent); + isHidden = d->isRowHidden(previousSibilingModelIndex); + } + if (!isHidden) { + const int previousSibilling = d->viewIndex(previousSibilingModelIndex); + if(previousSibilling != -1) + d->viewItems[previousSibilling].hasMoreSiblings = true; + } + } + QVector<QTreeViewItem> insertedItems(delta); for (int i = 0; i < delta; ++i) { insertedItems[i].index = d->model->index(i + start, 0, parent); insertedItems[i].level = childLevel; + insertedItems[i].hasChildren = d->hasVisibleChildren(insertedItems[i].index); + insertedItems[i].hasMoreSiblings = !((i == delta - 1) && (parentRowCount == end +1)); } if (d->viewItems.isEmpty()) d->defaultItemHeight = indexRowSizeHint(insertedItems[0].index); @@ -2498,13 +2515,17 @@ void QTreeView::rowsInserted(const QModelIndex &parent, int start, int end) d->viewItems.begin() + insertPos + 1); } + if (parentItem != -1) + d->viewItems[parentItem].hasChildren = true; d->updateChildCount(parentItem, delta); + updateGeometries(); viewport()->update(); } else if ((parentItem != -1) && d->viewItems.at(parentItem).expanded) { d->doDelayedItemsLayout(); } else if (parentItem != -1 && (d->model->rowCount(parent) == end - start + 1)) { - // the parent just went from 0 children to having some update to re-paint the decoration + // the parent just went from 0 children to more. update to re-paint the decoration + d->viewItems[parentItem].hasChildren = true; viewport()->update(); } QAbstractItemView::rowsInserted(parent, start, end); @@ -3127,7 +3148,7 @@ void QTreeViewPrivate::layout(int i) int hidden = 0; int last = 0; int children = 0; - + QTreeViewItem *item = 0; for (int j = first; j < first + count; ++j) { current = model->index(j - first, 0, parent); if (isRowHidden(current)) { @@ -3135,17 +3156,25 @@ void QTreeViewPrivate::layout(int i) last = j - hidden + children; } else { last = j - hidden + children; - viewItems[last].index = current; - viewItems[last].level = level; - viewItems[last].height = 0; - viewItems[last].spanning = q->isFirstColumnSpanned(current.row(), parent); - viewItems[last].expanded = false; - viewItems[last].total = 0; + if (item) + item->hasMoreSiblings = true; + item = &viewItems[last]; + item->index = current; + item->level = level; + item->height = 0; + item->spanning = q->isFirstColumnSpanned(current.row(), parent); + item->expanded = false; + item->total = 0; + item->hasMoreSiblings = false; if (isIndexExpanded(current)) { - viewItems[last].expanded = true; + item->expanded = true; layout(last); - children += viewItems[last].total; + item = &viewItems[last]; + children += item->total; + item->hasChildren = item->total > 0; last = j - hidden + children; + } else { + item->hasChildren = hasVisibleChildren(current); } } } @@ -3701,6 +3730,7 @@ void QTreeViewPrivate::rowsRemoved(const QModelIndex &parent, const int delta = end - start + 1; + int previousSibiling = -1; int removedCount = 0; for (int item = firstChildItem; item <= lastChildItem; ) { Q_ASSERT(viewItems.at(item).level == childLevel); @@ -3708,6 +3738,7 @@ void QTreeViewPrivate::rowsRemoved(const QModelIndex &parent, //Q_ASSERT(modelIndex.parent() == parent); const int count = viewItems.at(item).total + 1; if (modelIndex.row() < start) { + previousSibiling = item; // not affected by the removal item += count; } else if (modelIndex.row() <= end) { @@ -3725,7 +3756,13 @@ void QTreeViewPrivate::rowsRemoved(const QModelIndex &parent, } } + if (previousSibiling != -1 && after && model->rowCount(parent) == start) + viewItems[previousSibiling].hasMoreSiblings = false; + + updateChildCount(parentItem, -removedCount); + if (parentItem != -1 && viewItems.at(parentItem).total == 0) + viewItems[parentItem].hasChildren = false; //every children have been removed; if (after) { q->updateGeometries(); viewport->update(); diff --git a/src/gui/itemviews/qtreeview_p.h b/src/gui/itemviews/qtreeview_p.h index def8253..aad5837 100644 --- a/src/gui/itemviews/qtreeview_p.h +++ b/src/gui/itemviews/qtreeview_p.h @@ -62,11 +62,14 @@ QT_BEGIN_NAMESPACE struct QTreeViewItem { - QTreeViewItem() : expanded(false), spanning(false), total(0), level(0), height(0) {} + QTreeViewItem() : expanded(false), spanning(false), hasChildren(false), + hasMoreSiblings(false), total(0), level(0), height(0) {} QModelIndex index; // we remove items whenever the indexes are invalidated uint expanded : 1; uint spanning : 1; - uint total : 30; // total number of children visible + uint hasChildren : 1; // if the item has visible children (even if collapsed) + uint hasMoreSiblings : 1; + uint total : 28; // total number of children visible uint level : 16; // indentation int height : 16; // row height }; diff --git a/src/gui/kernel/qactiongroup.cpp b/src/gui/kernel/qactiongroup.cpp index 40d18a2..8db76e4 100644 --- a/src/gui/kernel/qactiongroup.cpp +++ b/src/gui/kernel/qactiongroup.cpp @@ -72,10 +72,16 @@ void QActionGroupPrivate::_q_actionChanged() Q_Q(QActionGroup); QAction *action = qobject_cast<QAction*>(q->sender()); Q_ASSERT_X(action != 0, "QWidgetGroup::_q_actionChanged", "internal error"); - if(exclusive && action->isChecked() && action != current) { - if(current) - current->setChecked(false); - current = action; + if(exclusive) { + if (action->isChecked()) { + if (action != current) { + if(current) + current->setChecked(false); + current = action; + } + } else if (action == current) { + current = 0; + } } } diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp index 85b055e..1694434 100644 --- a/src/gui/kernel/qapplication.cpp +++ b/src/gui/kernel/qapplication.cpp @@ -474,9 +474,6 @@ bool QApplicationPrivate::fade_tooltip = false; bool QApplicationPrivate::animate_toolbox = false; bool QApplicationPrivate::widgetCount = false; bool QApplicationPrivate::load_testability = false; -#if defined(Q_WS_WIN) && !defined(Q_WS_WINCE) -bool QApplicationPrivate::inSizeMove = false; -#endif #ifdef QT_KEYPAD_NAVIGATION # ifdef Q_OS_SYMBIAN Qt::NavigationMode QApplicationPrivate::navigationMode = Qt::NavigationModeKeypadDirectional; @@ -2081,7 +2078,7 @@ void QApplicationPrivate::setFocusWidget(QWidget *focus, Qt::FocusReason reason) } QWidget *prev = focus_widget; focus_widget = focus; - +#ifndef QT_NO_IM if (prev && ((reason != Qt::PopupFocusReason && reason != Qt::MenuBarFocusReason && prev->testAttribute(Qt::WA_InputMethodEnabled)) // Do reset the input context, in case the new focus widget won't accept keyboard input @@ -2094,6 +2091,7 @@ void QApplicationPrivate::setFocusWidget(QWidget *focus, Qt::FocusReason reason) qic->setFocusWidget(0); } } +#endif //QT_NO_IM if(focus_widget) focus_widget->d_func()->setFocus_sys(); @@ -2125,12 +2123,14 @@ void QApplicationPrivate::setFocusWidget(QWidget *focus, Qt::FocusReason reason) QApplication::sendEvent(that->style(), &out); } if(focus && QApplicationPrivate::focus_widget == focus) { +#ifndef QT_NO_IM if (focus->testAttribute(Qt::WA_InputMethodEnabled)) { QInputContext *qic = focus->inputContext(); if (qic && focus->testAttribute(Qt::WA_WState_Created) && focus->isEnabled()) qic->setFocusWidget(focus); } +#endif //QT_NO_IM QFocusEvent in(QEvent::FocusIn, reason); QPointer<QWidget> that = focus; QApplication::sendEvent(focus, &in); @@ -5641,7 +5641,9 @@ Qt::GestureType QApplication::registerGestureRecognizer(QGestureRecognizer *reco */ void QApplication::unregisterGestureRecognizer(Qt::GestureType type) { - QGestureManager::instance()->unregisterGestureRecognizer(type); + QApplicationPrivate *d = qApp->d_func(); + if (d->gestureManager) + d->gestureManager->unregisterGestureRecognizer(type); } QT_END_NAMESPACE diff --git a/src/gui/kernel/qapplication.h b/src/gui/kernel/qapplication.h index 5a8e325..5877ba4 100644 --- a/src/gui/kernel/qapplication.h +++ b/src/gui/kernel/qapplication.h @@ -288,8 +288,8 @@ public: static Qt::NavigationMode navigationMode(); #endif - Qt::GestureType registerGestureRecognizer(QGestureRecognizer *recognizer); - void unregisterGestureRecognizer(Qt::GestureType type); + static Qt::GestureType registerGestureRecognizer(QGestureRecognizer *recognizer); + static void unregisterGestureRecognizer(Qt::GestureType type); Q_SIGNALS: void lastWindowClosed(); diff --git a/src/gui/kernel/qapplication_p.h b/src/gui/kernel/qapplication_p.h index 65f61e9..0fa7269 100644 --- a/src/gui/kernel/qapplication_p.h +++ b/src/gui/kernel/qapplication_p.h @@ -441,9 +441,6 @@ public: #ifdef Q_WS_MAC static bool native_modal_dialog_active; #endif -#if defined(Q_WS_WIN) && !defined(Q_WS_WINCE) - static bool inSizeMove; -#endif static void setSystemPalette(const QPalette &pal); static void setPalette_helper(const QPalette &palette, const char* className, bool clearWidgetPaletteHash); diff --git a/src/gui/kernel/qapplication_win.cpp b/src/gui/kernel/qapplication_win.cpp index e84985e..d98ecbb 100644 --- a/src/gui/kernel/qapplication_win.cpp +++ b/src/gui/kernel/qapplication_win.cpp @@ -1918,11 +1918,9 @@ LRESULT CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam #ifndef Q_WS_WINCE case WM_ENTERSIZEMOVE: autoCaptureWnd = hwnd; - QApplicationPrivate::inSizeMove = true; break; case WM_EXITSIZEMOVE: autoCaptureWnd = 0; - QApplicationPrivate::inSizeMove = false; break; #endif case WM_MOVE: // move window diff --git a/src/gui/kernel/qapplication_x11.cpp b/src/gui/kernel/qapplication_x11.cpp index 7f11faa..b0ab760 100644 --- a/src/gui/kernel/qapplication_x11.cpp +++ b/src/gui/kernel/qapplication_x11.cpp @@ -3752,6 +3752,12 @@ int QApplication::x11ProcessEvent(XEvent* event) qt_get_net_virtual_roots(); } else if (event->xproperty.atom == ATOM(_NET_WORKAREA)) { qt_desktopwidget_update_workarea(); + + // emit the workAreaResized() signal + QDesktopWidget *desktop = QApplication::desktop(); + int numScreens = desktop->numScreens(); + for (int i = 0; i < numScreens; ++i) + emit desktop->workAreaResized(i); } } else if (widget) { widget->translatePropertyEvent(event); diff --git a/src/gui/kernel/qclipboard.cpp b/src/gui/kernel/qclipboard.cpp index 5ed4dc9..e43f8b5 100644 --- a/src/gui/kernel/qclipboard.cpp +++ b/src/gui/kernel/qclipboard.cpp @@ -296,12 +296,16 @@ QString QClipboard::text(QString &subtype, Mode mode) const const QByteArray rawData = data->data(QLatin1String("text/") + subtype); +#ifndef QT_NO_TEXTCODEC QTextCodec* codec = QTextCodec::codecForMib(106); // utf-8 is default if (subtype == QLatin1String("html")) codec = QTextCodec::codecForHtml(rawData, codec); else codec = QTextCodec::codecForUtfText(rawData, codec); return codec->toUnicode(rawData); +#else //QT_NO_TEXTCODEC + return rawData; +#endif //QT_NO_TEXTCODEC } /*! diff --git a/src/gui/kernel/qclipboard_mac.cpp b/src/gui/kernel/qclipboard_mac.cpp index 3db647b..8892269 100644 --- a/src/gui/kernel/qclipboard_mac.cpp +++ b/src/gui/kernel/qclipboard_mac.cpp @@ -532,7 +532,7 @@ QMacPasteboard::retrieveData(const QString &format, QVariant::Type) const // Try to get the NSStringPboardType from NSPasteboard, newlines are mapped // correctly (as '\n') in this data. The 'public.utf16-plain-text' type // usually maps newlines to '\r' instead. - QString str = qt_mac_get_pasteboardString(); + QString str = qt_mac_get_pasteboardString(paste); if (!str.isEmpty()) return str; } diff --git a/src/gui/kernel/qclipboard_win.cpp b/src/gui/kernel/qclipboard_win.cpp index 7f7ef0c..0157052 100644 --- a/src/gui/kernel/qclipboard_win.cpp +++ b/src/gui/kernel/qclipboard_win.cpp @@ -51,6 +51,7 @@ #include "qmime.h" #include "qt_windows.h" #include "qdnd_p.h" +#include <private/qwidget_p.h> QT_BEGIN_NAMESPACE @@ -140,6 +141,9 @@ public: clipBoardViewer = new QWidget(); clipBoardViewer->createWinId(); clipBoardViewer->setObjectName(QLatin1String("internal clipboard owner")); + // We dont need this internal widget to appear in QApplication::topLevelWidgets() + if (QWidgetPrivate::allWidgets) + QWidgetPrivate::allWidgets->remove(clipBoardViewer); } ~QClipboardData() diff --git a/src/gui/kernel/qclipboard_x11.cpp b/src/gui/kernel/qclipboard_x11.cpp index 9621944..22d7c9e 100644 --- a/src/gui/kernel/qclipboard_x11.cpp +++ b/src/gui/kernel/qclipboard_x11.cpp @@ -78,6 +78,7 @@ #include "qimagewriter.h" #include "qvariant.h" #include "qdnd_p.h" +#include <private/qwidget_p.h> #ifndef QT_NO_XFIXES #include <X11/extensions/Xfixes.h> @@ -131,6 +132,11 @@ void setupOwner() requestor = new QWidget(0); requestor->createWinId(); requestor->setObjectName(QLatin1String("internal clipboard requestor")); + // We dont need this internal widgets to appear in QApplication::topLevelWidgets() + if (QWidgetPrivate::allWidgets) { + QWidgetPrivate::allWidgets->remove(owner); + QWidgetPrivate::allWidgets->remove(requestor); + } qAddPostRoutine(cleanup); } @@ -769,6 +775,9 @@ QByteArray QX11Data::clipboardReadIncrementalProperty(Window win, Atom property, delete requestor; requestor = new QWidget(0); requestor->setObjectName(QLatin1String("internal clipboard requestor")); + // We dont need this internal widget to appear in QApplication::topLevelWidgets() + if (QWidgetPrivate::allWidgets) + QWidgetPrivate::allWidgets->remove(requestor); return QByteArray(); } diff --git a/src/gui/kernel/qcocoaview_mac.mm b/src/gui/kernel/qcocoaview_mac.mm index ecc6bc9..a16d1f8 100644 --- a/src/gui/kernel/qcocoaview_mac.mm +++ b/src/gui/kernel/qcocoaview_mac.mm @@ -745,7 +745,7 @@ extern "C" { { qMacDnDParams()->view = self; qMacDnDParams()->theEvent = theEvent; - bool mouseOK = qt_mac_handleMouseEvent(self, theEvent, QEvent::MouseMove, Qt::LeftButton); + bool mouseOK = qt_mac_handleMouseEvent(self, theEvent, QEvent::MouseMove, Qt::NoButton); if (!mouseOK) [super mouseDragged:theEvent]; @@ -755,7 +755,7 @@ extern "C" { { qMacDnDParams()->view = self; qMacDnDParams()->theEvent = theEvent; - bool mouseOK = qt_mac_handleMouseEvent(self, theEvent, QEvent::MouseMove, Qt::RightButton); + bool mouseOK = qt_mac_handleMouseEvent(self, theEvent, QEvent::MouseMove, Qt::NoButton); if (!mouseOK) [super rightMouseDragged:theEvent]; @@ -765,8 +765,7 @@ extern "C" { { qMacDnDParams()->view = self; qMacDnDParams()->theEvent = theEvent; - Qt::MouseButton mouseButton = cocoaButton2QtButton([theEvent buttonNumber]); - bool mouseOK = qt_mac_handleMouseEvent(self, theEvent, QEvent::MouseMove, mouseButton); + bool mouseOK = qt_mac_handleMouseEvent(self, theEvent, QEvent::MouseMove, Qt::NoButton); if (!mouseOK) [super otherMouseDragged:theEvent]; diff --git a/src/gui/kernel/qdesktopwidget_x11.cpp b/src/gui/kernel/qdesktopwidget_x11.cpp index 02a2c82..14eb976 100644 --- a/src/gui/kernel/qdesktopwidget_x11.cpp +++ b/src/gui/kernel/qdesktopwidget_x11.cpp @@ -384,10 +384,8 @@ void QDesktopWidget::resizeEvent(QResizeEvent *event) Q_D(QDesktopWidget); int oldScreenCount = d->screenCount; QVector<QRect> oldRects(oldScreenCount); - QVector<QRect> oldWorks(oldScreenCount); for (int i = 0; i < oldScreenCount; ++i) { oldRects[i] = d->rects[i]; - oldWorks[i] = d->workareas[i]; } d->init(); @@ -397,13 +395,6 @@ void QDesktopWidget::resizeEvent(QResizeEvent *event) emit resized(i); } - // ### workareas are just reset by init, not filled with new values - // ### so this will not work correctly - for (int j = 0; j < qMin(oldScreenCount, d->screenCount); ++j) { - if (oldWorks.at(j) != d->workareas[j]) - emit workAreaResized(j); - } - if (oldScreenCount != d->screenCount) { emit screenCountChanged(d->screenCount); } diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp index 065bd09..ac597e4 100644 --- a/src/gui/kernel/qevent.cpp +++ b/src/gui/kernel/qevent.cpp @@ -4262,7 +4262,12 @@ QGesture *QGestureEvent::gesture(Qt::GestureType type) const */ QList<QGesture *> QGestureEvent::activeGestures() const { - return d_func()->gestures; + QList<QGesture *> gestures; + foreach (QGesture *gesture, d_func()->gestures) { + if (gesture->state() != Qt::GestureCanceled) + gestures.append(gesture); + } + return gestures; } /*! @@ -4270,7 +4275,12 @@ QList<QGesture *> QGestureEvent::activeGestures() const */ QList<QGesture *> QGestureEvent::canceledGestures() const { - return d_func()->gestures; + QList<QGesture *> gestures; + foreach (QGesture *gesture, d_func()->gestures) { + if (gesture->state() == Qt::GestureCanceled) + gestures.append(gesture); + } + return gestures; } /*! @@ -4288,9 +4298,8 @@ QList<QGesture *> QGestureEvent::canceledGestures() const */ void QGestureEvent::setAccepted(QGesture *gesture, bool value) { - setAccepted(false); if (gesture) - d_func()->accepted[gesture->gestureType()] = value; + setAccepted(gesture->gestureType(), value); } /*! @@ -4304,7 +4313,8 @@ void QGestureEvent::setAccepted(QGesture *gesture, bool value) */ void QGestureEvent::accept(QGesture *gesture) { - setAccepted(gesture, true); + if (gesture) + setAccepted(gesture->gestureType(), true); } /*! @@ -4318,7 +4328,8 @@ void QGestureEvent::accept(QGesture *gesture) */ void QGestureEvent::ignore(QGesture *gesture) { - setAccepted(gesture, false); + if (gesture) + setAccepted(gesture->gestureType(), false); } /*! @@ -4326,10 +4337,69 @@ void QGestureEvent::ignore(QGesture *gesture) */ bool QGestureEvent::isAccepted(QGesture *gesture) const { - return gesture ? d_func()->accepted.value(gesture->gestureType(), true) : false; + return gesture ? isAccepted(gesture->gestureType()) : false; +} + +/*! + Sets the accept flag of the given \a gestureType object to the specified + \a value. + + Setting the accept flag indicates that the event receiver wants the \a gesture. + Unwanted gestures may be propagated to the parent widget. + + By default, gestures in events of type QEvent::Gesture are accepted, and + gestures in QEvent::GestureOverride events are ignored. + + For convenience, the accept flag can also be set with + \l{QGestureEvent::accept()}{accept(gestureType)}, and cleared with + \l{QGestureEvent::ignore()}{ignore(gestureType)}. +*/ +void QGestureEvent::setAccepted(Qt::GestureType gestureType, bool value) +{ + setAccepted(false); + d_func()->accepted[gestureType] = value; +} + +/*! + Sets the accept flag of the given \a gestureType, the equivalent of calling + \l{QGestureEvent::setAccepted()}{setAccepted(gestureType, true)}. + + Setting the accept flag indicates that the event receiver wants the + gesture. Unwanted gestures may be propagated to the parent widget. + + \sa QGestureEvent::ignore() +*/ +void QGestureEvent::accept(Qt::GestureType gestureType) +{ + setAccepted(gestureType, true); } /*! + Clears the accept flag parameter of the given \a gestureType, the equivalent + of calling \l{QGestureEvent::setAccepted()}{setAccepted(gesture, false)}. + + Clearing the accept flag indicates that the event receiver does not + want the gesture. Unwanted gestures may be propgated to the parent widget. + + \sa QGestureEvent::accept() +*/ +void QGestureEvent::ignore(Qt::GestureType gestureType) +{ + setAccepted(gestureType, false); +} + +/*! + Returns true if the gesture of type \a gestureType is accepted; otherwise + returns false. +*/ +bool QGestureEvent::isAccepted(Qt::GestureType gestureType) const +{ + return d_func()->accepted.value(gestureType, true); +} + +/*! + \internal + Sets the widget for this event. */ void QGestureEvent::setWidget(QWidget *widget) @@ -4345,6 +4415,7 @@ QWidget *QGestureEvent::widget() const return d_func()->widget; } +#ifndef QT_NO_GRAPHICSVIEW /*! Returns the scene-local coordinates if the \a gesturePoint is inside a graphics view. @@ -4361,6 +4432,7 @@ QPointF QGestureEvent::mapToScene(const QPointF &gesturePoint) const } return QPointF(); } +#endif //QT_NO_GRAPHICSVIEW /*! \internal diff --git a/src/gui/kernel/qevent.h b/src/gui/kernel/qevent.h index b7370fd..141ccad 100644 --- a/src/gui/kernel/qevent.h +++ b/src/gui/kernel/qevent.h @@ -851,10 +851,17 @@ public: void ignore(QGesture *); bool isAccepted(QGesture *) const; + void setAccepted(Qt::GestureType, bool); + void accept(Qt::GestureType); + void ignore(Qt::GestureType); + bool isAccepted(Qt::GestureType) const; + void setWidget(QWidget *widget); QWidget *widget() const; +#ifndef QT_NO_GRAPHICSVIEW QPointF mapToScene(const QPointF &gesturePoint) const; +#endif private: QGestureEventPrivate *d_func(); diff --git a/src/gui/kernel/qgesture.cpp b/src/gui/kernel/qgesture.cpp index a161876..850f22c 100644 --- a/src/gui/kernel/qgesture.cpp +++ b/src/gui/kernel/qgesture.cpp @@ -69,10 +69,9 @@ QT_BEGIN_NAMESPACE \section1 Lifecycle of a Gesture Object - A QGesture instance is created when the application calls QWidget::grabGesture() - or QGraphicsObject::grabGesture() to configure a widget or graphics object (the - target object) for gesture input. One gesture object is created for each target - object. + A QGesture instance is implicitly created when needed and is owned by Qt. + Developers should never destroy them or store them for later use as Qt may + destroy particular instances of them and create new ones to replace them. The registered gesture recognizer monitors the input events for the target object via its \l{QGestureRecognizer::}{filterEvent()} function, updating the @@ -133,8 +132,8 @@ QGesture::~QGesture() QWidget::mapFromGlobal() or QGestureEvent::mapToScene() to get a local hot-spot. - If the hot-spot is not set, the targetObject is used as the receiver of the - gesture event. + The hot-spot should be set by the gesture recognizer to allow gesture event + delivery to a QGraphicsObject. */ /*! @@ -175,6 +174,29 @@ void QGesture::unsetHotSpot() } /*! + \enum QGesture::GestureCancelPolicy + + This enum describes how accepting a gesture can cancel other gestures + automatically. + + \value CancelNone On accepting this gesture no other gestures will be affected. + \value CancelAllInContext On accepting this gesture all gestures that are active + in the context (Qt::GestureContext) will be cancelled. +*/ + +void QGesture::setGestureCancelPolicy(GestureCancelPolicy policy) +{ + Q_D(QGesture); + d->gestureCancelPolicy = static_cast<uint>(policy); +} + +QGesture::GestureCancelPolicy QGesture::gestureCancelPolicy() const +{ + Q_D(const QGesture); + return static_cast<GestureCancelPolicy>(d->gestureCancelPolicy); +} + +/*! \class QPanGesture \since 4.6 \brief The QPanGesture class describes a panning gesture made by the user. @@ -195,6 +217,16 @@ void QGesture::unsetHotSpot() */ /*! + \property QGesture::GestureCancelPolicy + \brief the policy for deciding what happens on accepting a gesture + + On accepting one gesture Qt can automatically cancel other gestures + that belong to other targets. The policy is normally set to not cancel + any other gestures and can be set to cancel all active gestures in the + context. For example for all child widgets. +*/ + +/*! \property QPanGesture::lastOffset \brief the last offset recorded for this gesture diff --git a/src/gui/kernel/qgesture.h b/src/gui/kernel/qgesture.h index 6469959..524d26e 100644 --- a/src/gui/kernel/qgesture.h +++ b/src/gui/kernel/qgesture.h @@ -65,6 +65,7 @@ class Q_GUI_EXPORT QGesture : public QObject Q_PROPERTY(Qt::GestureState state READ state) Q_PROPERTY(Qt::GestureType gestureType READ gestureType) + Q_PROPERTY(QGesture::GestureCancelPolicy gestureCancelPolicy READ gestureCancelPolicy WRITE setGestureCancelPolicy) Q_PROPERTY(QPointF hotSpot READ hotSpot WRITE setHotSpot RESET unsetHotSpot) Q_PROPERTY(bool hasHotSpot READ hasHotSpot) @@ -81,6 +82,14 @@ public: bool hasHotSpot() const; void unsetHotSpot(); + enum GestureCancelPolicy { + CancelNone = 0, + CancelAllInContext + }; + + void setGestureCancelPolicy(GestureCancelPolicy policy); + GestureCancelPolicy gestureCancelPolicy() const; + protected: QGesture(QGesturePrivate &dd, QObject *parent); @@ -208,6 +217,7 @@ public: QT_END_NAMESPACE +Q_DECLARE_METATYPE(QGesture::GestureCancelPolicy) QT_END_HEADER #endif // QGESTURE_H diff --git a/src/gui/kernel/qgesture_p.h b/src/gui/kernel/qgesture_p.h index 975c0c9..34fbb26 100644 --- a/src/gui/kernel/qgesture_p.h +++ b/src/gui/kernel/qgesture_p.h @@ -67,16 +67,17 @@ class QGesturePrivate : public QObjectPrivate public: QGesturePrivate() - : gestureType(Qt::CustomGesture), state(Qt::NoGesture), isHotSpotSet(false), - targetObject(0) + : gestureType(Qt::CustomGesture), state(Qt::NoGesture), + isHotSpotSet(false), gestureCancelPolicy(0) + { } Qt::GestureType gestureType; Qt::GestureState state; QPointF hotSpot; - bool isHotSpotSet; - QObject *targetObject; + uint isHotSpotSet : 1; + uint gestureCancelPolicy : 2; }; class QPanGesturePrivate : public QGesturePrivate diff --git a/src/gui/kernel/qgesturemanager.cpp b/src/gui/kernel/qgesturemanager.cpp index ed8e744..0a88a24 100644 --- a/src/gui/kernel/qgesturemanager.cpp +++ b/src/gui/kernel/qgesturemanager.cpp @@ -65,7 +65,7 @@ QT_BEGIN_NAMESPACE QGestureManager::QGestureManager(QObject *parent) - : QObject(parent), state(NotGesture), lastCustomGestureId(0) + : QObject(parent), state(NotGesture), m_lastCustomGestureId(0) { qRegisterMetaType<Qt::GestureState>(); @@ -82,7 +82,12 @@ QGestureManager::QGestureManager(QObject *parent) QGestureManager::~QGestureManager() { - + qDeleteAll(m_recognizers.values()); + foreach (QGestureRecognizer *recognizer, m_obsoleteGestures.keys()) { + qDeleteAll(m_obsoleteGestures.value(recognizer)); + delete recognizer; + } + m_obsoleteGestures.clear(); } Qt::GestureType QGestureManager::registerGestureRecognizer(QGestureRecognizer *recognizer) @@ -96,20 +101,55 @@ Qt::GestureType QGestureManager::registerGestureRecognizer(QGestureRecognizer *r Qt::GestureType type = dummy->gestureType(); if (type == Qt::CustomGesture) { // generate a new custom gesture id - ++lastCustomGestureId; - type = Qt::GestureType(Qt::CustomGesture + lastCustomGestureId); + ++m_lastCustomGestureId; + type = Qt::GestureType(Qt::CustomGesture + m_lastCustomGestureId); } - recognizers.insertMulti(type, recognizer); + m_recognizers.insertMulti(type, recognizer); delete dummy; return type; } -void QGestureManager::unregisterGestureRecognizer(Qt::GestureType) +void QGestureManager::unregisterGestureRecognizer(Qt::GestureType type) { + QList<QGestureRecognizer *> list = m_recognizers.values(type); + m_recognizers.remove(type); + foreach (QGesture *g, m_gestureToRecognizer.keys()) { + QGestureRecognizer *recognizer = m_gestureToRecognizer.value(g); + if (list.contains(recognizer)) { + m_deletedRecognizers.insert(g, recognizer); + m_gestureToRecognizer.remove(g); + } + } + foreach (QGestureRecognizer *recognizer, list) { + QList<QGesture *> obsoleteGestures; + QMap<ObjectGesture, QList<QGesture *> >::Iterator iter = m_objectGestures.begin(); + while (iter != m_objectGestures.end()) { + ObjectGesture objectGesture = iter.key(); + if (objectGesture.gesture == type) + obsoleteGestures << iter.value(); + ++iter; + } + m_obsoleteGestures.insert(recognizer, obsoleteGestures); + } } -QGesture *QGestureManager::getState(QObject *object, Qt::GestureType type) +void QGestureManager::cleanupCachedGestures(QObject *target, Qt::GestureType type) +{ + QMap<ObjectGesture, QList<QGesture *> >::Iterator iter = m_objectGestures.begin(); + while (iter != m_objectGestures.end()) { + ObjectGesture objectGesture = iter.key(); + if (objectGesture.gesture == type && target == objectGesture.object.data()) { + qDeleteAll(iter.value()); + iter = m_objectGestures.erase(iter); + } else { + ++iter; + } + } +} + +// get or create a QGesture object that will represent the state for a given object, used by the recognizer +QGesture *QGestureManager::getState(QObject *object, QGestureRecognizer *recognizer, Qt::GestureType type) { // if the widget is being deleted we should be carefull and not to // create a new state, as it will create QWeakPointer which doesnt work @@ -123,31 +163,35 @@ QGesture *QGestureManager::getState(QObject *object, Qt::GestureType type) Q_ASSERT(qobject_cast<QGraphicsObject *>(object)); } - QGesture *state = - objectGestures.value(QGestureManager::ObjectGesture(object, type)); - if (!state) { - QGestureRecognizer *recognizer = recognizers.value(type); - if (recognizer) { - state = recognizer->createGesture(object); - if (!state) - return 0; - if (state->gestureType() == Qt::CustomGesture) { - // if the recognizer didn't fill in the gesture type, then this - // is a custom gesture with autogenerated it and we fill it. - state->d_func()->gestureType = type; + QList<QGesture *> states = + m_objectGestures.value(QGestureManager::ObjectGesture(object, type)); + // check if the QGesture for this recognizer has already been created + foreach (QGesture *state, states) { + if (m_gestureToRecognizer.value(state) == recognizer) + return state; + } + + Q_ASSERT(recognizer); + QGesture *state = recognizer->createGesture(object); + if (!state) + return 0; + state->setParent(this); + if (state->gestureType() == Qt::CustomGesture) { + // if the recognizer didn't fill in the gesture type, then this + // is a custom gesture with autogenerated id and we fill it. + state->d_func()->gestureType = type; #if defined(GESTURE_DEBUG) - state->setObjectName(QString::number((int)type)); + state->setObjectName(QString::number((int)type)); #endif - } - objectGestures.insert(QGestureManager::ObjectGesture(object, type), state); - gestureToRecognizer[state] = recognizer; - gestureOwners[state] = object; - } } + m_objectGestures[QGestureManager::ObjectGesture(object, type)].append(state); + m_gestureToRecognizer[state] = recognizer; + m_gestureOwners[state] = object; + return state; } -bool QGestureManager::filterEventThroughContexts(const QMap<QObject *, +bool QGestureManager::filterEventThroughContexts(const QMultiHash<QObject *, Qt::GestureType> &contexts, QEvent *event) { @@ -160,61 +204,63 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *, // TODO: sort contexts by the gesture type and check if one of the contexts // is already active. + bool ret = false; + // filter the event through recognizers - typedef QMap<QObject *, Qt::GestureType>::const_iterator ContextIterator; + typedef QHash<QObject *, Qt::GestureType>::const_iterator ContextIterator; for (ContextIterator cit = contexts.begin(), ce = contexts.end(); cit != ce; ++cit) { Qt::GestureType gestureType = cit.value(); QMap<Qt::GestureType, QGestureRecognizer *>::const_iterator - rit = recognizers.lowerBound(gestureType), - re = recognizers.upperBound(gestureType); + rit = m_recognizers.lowerBound(gestureType), + re = m_recognizers.upperBound(gestureType); for (; rit != re; ++rit) { QGestureRecognizer *recognizer = rit.value(); QObject *target = cit.key(); - QGesture *state = getState(target, gestureType); + QGesture *state = getState(target, recognizer, gestureType); if (!state) continue; QGestureRecognizer::Result result = recognizer->filterEvent(state, target, event); QGestureRecognizer::Result type = result & QGestureRecognizer::ResultState_Mask; if (type == QGestureRecognizer::GestureTriggered) { - DEBUG() << "QGestureManager: gesture triggered: " << state; + DEBUG() << "QGestureManager:Recognizer: gesture triggered: " << state; triggeredGestures << state; } else if (type == QGestureRecognizer::GestureFinished) { - DEBUG() << "QGestureManager: gesture finished: " << state; + DEBUG() << "QGestureManager:Recognizer: gesture finished: " << state; finishedGestures << state; } else if (type == QGestureRecognizer::MaybeGesture) { - DEBUG() << "QGestureManager: maybe gesture: " << state; + DEBUG() << "QGestureManager:Recognizer: maybe gesture: " << state; newMaybeGestures << state; } else if (type == QGestureRecognizer::NotGesture) { - DEBUG() << "QGestureManager: not gesture: " << state; + DEBUG() << "QGestureManager:Recognizer: not gesture: " << state; notGestures << state; } else if (type == QGestureRecognizer::Ignore) { - DEBUG() << "QGestureManager: gesture ignored the event: " << state; + DEBUG() << "QGestureManager:Recognizer: ignored the event: " << state; } else { - DEBUG() << "QGestureManager: hm, lets assume the recognizer" + DEBUG() << "QGestureManager:Recognizer: hm, lets assume the recognizer" << "ignored the event: " << state; } if (result & QGestureRecognizer::ConsumeEventHint) { DEBUG() << "QGestureManager: we were asked to consume the event: " << state; - //TODO: consume events if asked + ret = true; } } } - QSet<QGesture *> startedGestures = triggeredGestures - activeGestures; - triggeredGestures &= activeGestures; + QSet<QGesture *> startedGestures = triggeredGestures - m_activeGestures; + triggeredGestures &= m_activeGestures; // check if a running gesture switched back to maybe state - QSet<QGesture *> activeToMaybeGestures = activeGestures & newMaybeGestures; + QSet<QGesture *> activeToMaybeGestures = m_activeGestures & newMaybeGestures; // check if a running gesture switched back to not gesture state, // i.e. were canceled - QSet<QGesture *> activeToCancelGestures = activeGestures & notGestures; + QSet<QGesture *> activeToCancelGestures = m_activeGestures & notGestures; canceledGestures += activeToCancelGestures; // start timers for new gestures in maybe state foreach (QGesture *state, newMaybeGestures) { - QBasicTimer &timer = maybeGestures[state]; + QBasicTimer &timer = m_maybeGestures[state]; if (!timer.isActive()) timer.start(3000, this); } @@ -223,11 +269,11 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *, | finishedGestures | canceledGestures | notGestures); foreach(QGesture *gesture, notMaybeGestures) { - QMap<QGesture *, QBasicTimer>::iterator it = - maybeGestures.find(gesture); - if (it != maybeGestures.end()) { + QHash<QGesture *, QBasicTimer>::iterator it = + m_maybeGestures.find(gesture); + if (it != m_maybeGestures.end()) { it.value().stop(); - maybeGestures.erase(it); + m_maybeGestures.erase(it); } } @@ -238,7 +284,7 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *, Q_ASSERT((finishedGestures & canceledGestures).isEmpty()); Q_ASSERT((canceledGestures & newMaybeGestures).isEmpty()); - QSet<QGesture *> notStarted = finishedGestures - activeGestures; + QSet<QGesture *> notStarted = finishedGestures - m_activeGestures; if (!notStarted.isEmpty()) { // there are some gestures that claim to be finished, but never started. // probably those are "singleshot" gestures so we'll fake the started state. @@ -249,12 +295,12 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *, finishedGestures -= undeliveredGestures; } - activeGestures += startedGestures; + m_activeGestures += startedGestures; // sanity check: all triggered gestures should already be in active gestures list - Q_ASSERT((activeGestures & triggeredGestures).size() == triggeredGestures.size()); - activeGestures -= finishedGestures; - activeGestures -= activeToMaybeGestures; - activeGestures -= canceledGestures; + Q_ASSERT((m_activeGestures & triggeredGestures).size() == triggeredGestures.size()); + m_activeGestures -= finishedGestures; + m_activeGestures -= activeToMaybeGestures; + m_activeGestures -= canceledGestures; // set the proper gesture state on each gesture foreach (QGesture *gesture, startedGestures) @@ -268,12 +314,12 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *, foreach (QGesture *gesture, activeToMaybeGestures) gesture->d_func()->state = Qt::GestureFinished; - if (!activeGestures.isEmpty() || !maybeGestures.isEmpty() || + if (!m_activeGestures.isEmpty() || !m_maybeGestures.isEmpty() || !startedGestures.isEmpty() || !triggeredGestures.isEmpty() || !finishedGestures.isEmpty() || !canceledGestures.isEmpty()) { - DEBUG() << "QGestureManager::filterEvent:" - << "\n\tactiveGestures:" << activeGestures - << "\n\tmaybeGestures:" << maybeGestures.keys() + DEBUG() << "QGestureManager::filterEventThroughContexts:" + << "\n\tactiveGestures:" << m_activeGestures + << "\n\tmaybeGestures:" << m_maybeGestures.keys() << "\n\tstarted:" << startedGestures << "\n\ttriggered:" << triggeredGestures << "\n\tfinished:" << finishedGestures @@ -284,24 +330,114 @@ bool QGestureManager::filterEventThroughContexts(const QMap<QObject *, deliverEvents(startedGestures+triggeredGestures+finishedGestures+canceledGestures, &undeliveredGestures); - activeGestures -= undeliveredGestures; + foreach (QGesture *g, startedGestures) { + if (undeliveredGestures.contains(g)) + continue; + if (g->gestureCancelPolicy() == QGesture::CancelAllInContext) { + DEBUG() << "lets try to cancel some"; + // find gestures in context in Qt::GestureStarted or Qt::GestureUpdated state and cancel them + cancelGesturesForChildren(g); + } + } + + m_activeGestures -= undeliveredGestures; // reset gestures that ended QSet<QGesture *> endedGestures = finishedGestures + canceledGestures + undeliveredGestures; foreach (QGesture *gesture, endedGestures) { - if (QGestureRecognizer *recognizer = gestureToRecognizer.value(gesture, 0)) { + if (QGestureRecognizer *recognizer = m_gestureToRecognizer.value(gesture, 0)) { + gesture->setGestureCancelPolicy(QGesture::CancelNone); recognizer->reset(gesture); + } else { + cleanupGesturesForRemovedRecognizer(gesture); } - gestureTargets.remove(gesture); + m_gestureTargets.remove(gesture); } - return false; + return ret; } +// Cancel all gestures of children of the widget that original is associated with +void QGestureManager::cancelGesturesForChildren(QGesture *original) +{ + Q_ASSERT(original); + QWidget *originatingWidget = m_gestureTargets.value(original); + Q_ASSERT(originatingWidget); + + // iterate over all active gestures and all maybe gestures + // for each find the owner + // if the owner is part of our sub-hierarchy, cancel it. + + QSet<QGesture*> cancelledGestures; + QSet<QGesture*>::Iterator iter = m_activeGestures.begin(); + while (iter != m_activeGestures.end()) { + QWidget *widget = m_gestureTargets.value(*iter); + // note that we don't touch the gestures for our originatingWidget + if (widget != originatingWidget && originatingWidget->isAncestorOf(widget)) { + DEBUG() << " found a gesture to cancel" << (*iter); + (*iter)->d_func()->state = Qt::GestureCanceled; + cancelledGestures << *iter; + iter = m_activeGestures.erase(iter); + } else { + ++iter; + } + } + + // TODO handle 'maybe' gestures too + + // sort them per target widget by cherry picking from almostCanceledGestures and delivering + QSet<QGesture *> almostCanceledGestures = cancelledGestures; + while (!almostCanceledGestures.isEmpty()) { + QWidget *target = 0; + QSet<QGesture*> gestures; + iter = almostCanceledGestures.begin(); + // sort per target widget + while (iter != almostCanceledGestures.end()) { + QWidget *widget = m_gestureTargets.value(*iter); + if (target == 0) + target = widget; + if (target == widget) { + gestures << *iter; + iter = almostCanceledGestures.erase(iter); + } else { + ++iter; + } + } + Q_ASSERT(target); + + QSet<QGesture*> undeliveredGestures; + deliverEvents(gestures, &undeliveredGestures); + } + + for (iter = cancelledGestures.begin(); iter != cancelledGestures.end(); ++iter) { + QGestureRecognizer *recognizer = m_gestureToRecognizer.value(*iter, 0); + if (recognizer) { + (*iter)->setGestureCancelPolicy(QGesture::CancelNone); + recognizer->reset(*iter); + } else { + cleanupGesturesForRemovedRecognizer(*iter); + } + } +} + +void QGestureManager::cleanupGesturesForRemovedRecognizer(QGesture *gesture) +{ + QGestureRecognizer *recognizer = m_deletedRecognizers.value(gesture); + Q_ASSERT(recognizer); + m_deletedRecognizers.remove(gesture); + if (m_deletedRecognizers.keys(recognizer).isEmpty()) { + // no more active gestures, cleanup! + qDeleteAll(m_obsoleteGestures.value(recognizer)); + m_obsoleteGestures.remove(recognizer); + delete recognizer; + } +} + +// return true if accepted (consumed) bool QGestureManager::filterEvent(QWidget *receiver, QEvent *event) { QSet<Qt::GestureType> types; - QMap<QObject *, Qt::GestureType> contexts; + QMultiHash<QObject *, Qt::GestureType> contexts; QWidget *w = receiver; typedef QMap<Qt::GestureType, Qt::GestureContext>::const_iterator ContextIterator; if (!w->d_func()->gestureContext.isEmpty()) { @@ -331,10 +467,11 @@ bool QGestureManager::filterEvent(QWidget *receiver, QEvent *event) return filterEventThroughContexts(contexts, event); } +#ifndef QT_NO_GRAPHICSVIEW bool QGestureManager::filterEvent(QGraphicsObject *receiver, QEvent *event) { QSet<Qt::GestureType> types; - QMap<QObject *, Qt::GestureType> contexts; + QMultiHash<QObject *, Qt::GestureType> contexts; QGraphicsObject *item = receiver; if (!item->QGraphicsItem::d_func()->gestureContext.isEmpty()) { typedef QMap<Qt::GestureType, Qt::GestureContext>::const_iterator ContextIterator; @@ -352,18 +489,21 @@ bool QGestureManager::filterEvent(QGraphicsObject *receiver, QEvent *event) for (ContextIterator it = item->QGraphicsItem::d_func()->gestureContext.begin(), e = item->QGraphicsItem::d_func()->gestureContext.end(); it != e; ++it) { if (it.value() == Qt::ItemWithChildrenGesture) { - if (!types.contains(it.key())) + if (!types.contains(it.key())) { + types.insert(it.key()); contexts.insertMulti(item, it.key()); + } } } item = item->parentObject(); } return filterEventThroughContexts(contexts, event); } +#endif bool QGestureManager::filterEvent(QGesture *state, QEvent *event) { - QMap<QObject *, Qt::GestureType> contexts; + QMultiHash<QObject *, Qt::GestureType> contexts; contexts.insert(state, state->gestureType()); return filterEventThroughContexts(contexts, event); } @@ -377,7 +517,7 @@ void QGestureManager::getGestureTargets(const QSet<QGesture*> &gestures, // sort gestures by types foreach (QGesture *gesture, gestures) { - QWidget *receiver = gestureTargets.value(gesture, 0); + QWidget *receiver = m_gestureTargets.value(gesture, 0); Q_ASSERT(receiver); gestureByTypes[gesture->gestureType()].insert(receiver, gesture); } @@ -426,7 +566,7 @@ void QGestureManager::deliverEvents(const QSet<QGesture *> &gestures, for (QSet<QGesture *>::const_iterator it = gestures.begin(), e = gestures.end(); it != e; ++it) { QGesture *gesture = *it; - QWidget *target = gestureTargets.value(gesture, 0); + QWidget *target = m_gestureTargets.value(gesture, 0); if (!target) { // the gesture has just started and doesn't have a target yet. Q_ASSERT(gesture->state() == Qt::GestureStarted); @@ -438,12 +578,12 @@ void QGestureManager::deliverEvents(const QSet<QGesture *> &gestures, } } else { // or use the context of the gesture - QObject *context = gestureOwners.value(gesture, 0); + QObject *context = m_gestureOwners.value(gesture, 0); if (context->isWidgetType()) target = static_cast<QWidget *>(context); } if (target) - gestureTargets.insert(gesture, target); + m_gestureTargets.insert(gesture, target); } Qt::GestureType gestureType = gesture->gestureType(); @@ -495,7 +635,7 @@ void QGestureManager::deliverEvents(const QSet<QGesture *> &gestures, QList<QGesture *> &gestures = normalStartedGestures[w]; gestures.append(gesture); // override the target - gestureTargets[gesture] = w; + m_gestureTargets[gesture] = w; } else { DEBUG() << "override event: gesture wasn't accepted. putting back:" << gesture; QList<QGesture *> &gestures = normalStartedGestures[receiver]; @@ -518,20 +658,24 @@ void QGestureManager::deliverEvents(const QSet<QGesture *> &gestures, void QGestureManager::timerEvent(QTimerEvent *event) { - QMap<QGesture*, QBasicTimer>::iterator it = maybeGestures.begin(), - e = maybeGestures.end(); + QHash<QGesture *, QBasicTimer>::iterator it = m_maybeGestures.begin(), + e = m_maybeGestures.end(); for (; it != e; ) { QBasicTimer &timer = it.value(); Q_ASSERT(timer.isActive()); if (timer.timerId() == event->timerId()) { timer.stop(); QGesture *gesture = it.key(); - it = maybeGestures.erase(it); + it = m_maybeGestures.erase(it); DEBUG() << "QGestureManager::timerEvent: gesture stopped due to timeout:" << gesture; - QGestureRecognizer *recognizer = gestureToRecognizer.value(gesture, 0); - if (recognizer) + QGestureRecognizer *recognizer = m_gestureToRecognizer.value(gesture, 0); + if (recognizer) { + gesture->setGestureCancelPolicy(QGesture::CancelNone); recognizer->reset(gesture); + } else { + cleanupGesturesForRemovedRecognizer(gesture); + } } else { ++it; } diff --git a/src/gui/kernel/qgesturemanager_p.h b/src/gui/kernel/qgesturemanager_p.h index f0e7225..1e0734b 100644 --- a/src/gui/kernel/qgesturemanager_p.h +++ b/src/gui/kernel/qgesturemanager_p.h @@ -74,21 +74,25 @@ public: bool filterEvent(QWidget *receiver, QEvent *event); bool filterEvent(QGesture *receiver, QEvent *event); +#ifndef QT_NO_GRAPHICSVIEW bool filterEvent(QGraphicsObject *receiver, QEvent *event); +#endif //QT_NO_GRAPHICSVIEW // declared in qapplication.cpp static QGestureManager* instance(); + void cleanupCachedGestures(QObject *target, Qt::GestureType type); + protected: void timerEvent(QTimerEvent *event); - bool filterEventThroughContexts(const QMap<QObject *, Qt::GestureType> &contexts, + bool filterEventThroughContexts(const QMultiHash<QObject *, Qt::GestureType> &contexts, QEvent *event); private: - QMultiMap<Qt::GestureType, QGestureRecognizer *> recognizers; + QMultiMap<Qt::GestureType, QGestureRecognizer *> m_recognizers; - QSet<QGesture *> activeGestures; - QMap<QGesture *, QBasicTimer> maybeGestures; + QSet<QGesture *> m_activeGestures; + QHash<QGesture *, QBasicTimer> m_maybeGestures; enum State { Gesture, @@ -104,7 +108,7 @@ private: Qt::GestureType gesture; ObjectGesture(QObject *o, const Qt::GestureType &g) : object(o), gesture(g) { } - inline bool operator<(const ObjectGesture& rhs) const + inline bool operator<(const ObjectGesture &rhs) const { if (object.data() < rhs.object.data()) return true; @@ -114,20 +118,27 @@ private: } }; - QMap<ObjectGesture, QGesture *> objectGestures; - QMap<QGesture *, QGestureRecognizer *> gestureToRecognizer; - QHash<QGesture *, QObject *> gestureOwners; + QMap<ObjectGesture, QList<QGesture *> > m_objectGestures; + QHash<QGesture *, QGestureRecognizer *> m_gestureToRecognizer; + QHash<QGesture *, QObject *> m_gestureOwners; + + QHash<QGesture *, QWidget *> m_gestureTargets; - QHash<QGesture *, QWidget *> gestureTargets; + int m_lastCustomGestureId; - int lastCustomGestureId; + QHash<QGestureRecognizer *, QList<QGesture *> > m_obsoleteGestures; + QHash<QGesture *, QGestureRecognizer *> m_deletedRecognizers; + void cleanupGesturesForRemovedRecognizer(QGesture *gesture); - QGesture *getState(QObject *widget, Qt::GestureType gesture); + QGesture *getState(QObject *widget, QGestureRecognizer *recognizer, + Qt::GestureType gesture); void deliverEvents(const QSet<QGesture *> &gestures, QSet<QGesture *> *undeliveredGestures); void getGestureTargets(const QSet<QGesture*> &gestures, QMap<QWidget *, QList<QGesture *> > *conflicts, QMap<QWidget *, QList<QGesture *> > *normal); + + void cancelGesturesForChildren(QGesture *originatingGesture); }; QT_END_NAMESPACE diff --git a/src/gui/kernel/qgesturerecognizer.cpp b/src/gui/kernel/qgesturerecognizer.cpp index ba3a750..2673be3 100644 --- a/src/gui/kernel/qgesturerecognizer.cpp +++ b/src/gui/kernel/qgesturerecognizer.cpp @@ -100,7 +100,7 @@ QT_BEGIN_NAMESPACE */ /*! - \enum QGestureRecognizer::ResultFlags + \enum QGestureRecognizer::ResultFlag This enum describes the result of the current event filtering step in a gesture recognizer state machine. @@ -178,7 +178,7 @@ void QGestureRecognizer::reset(QGesture *gesture) QGesturePrivate *d = gesture->d_func(); d->state = Qt::NoGesture; d->hotSpot = QPointF(); - d->targetObject = 0; + d->isHotSpotSet = false; } } diff --git a/src/gui/kernel/qgesturerecognizer.h b/src/gui/kernel/qgesturerecognizer.h index efd8565..a3c990d 100644 --- a/src/gui/kernel/qgesturerecognizer.h +++ b/src/gui/kernel/qgesturerecognizer.h @@ -56,7 +56,7 @@ class QGesture; class Q_GUI_EXPORT QGestureRecognizer { public: - enum ResultFlags + enum ResultFlag { Ignore = 0x0001, NotGesture = 0x0002, @@ -73,7 +73,7 @@ public: ResultHint_Mask = 0xff00 }; - Q_DECLARE_FLAGS(Result, ResultFlags) + Q_DECLARE_FLAGS(Result, ResultFlag) QGestureRecognizer(); virtual ~QGestureRecognizer(); diff --git a/src/gui/kernel/qguiplatformplugin.cpp b/src/gui/kernel/qguiplatformplugin.cpp index 6e074a1..b01d40f 100644 --- a/src/gui/kernel/qguiplatformplugin.cpp +++ b/src/gui/kernel/qguiplatformplugin.cpp @@ -288,6 +288,8 @@ int QGuiPlatformPlugin::platformHint(PlatformHint hint) #endif //by default keep ret = 0 so QCommonStyle will use the style default break; + default: + break; } return ret; } diff --git a/src/gui/kernel/qkeymapper_x11.cpp b/src/gui/kernel/qkeymapper_x11.cpp index 0ce77fe..8164589 100644 --- a/src/gui/kernel/qkeymapper_x11.cpp +++ b/src/gui/kernel/qkeymapper_x11.cpp @@ -714,47 +714,144 @@ extern bool qt_sm_blockUserInput; #define XK_KP_Delete 0xFF9F #endif -// the next lines are taken from XFree > 4.0 (X11/XF86keysyms.h), defining some special +// the next lines are taken on 10/2009 from X.org (X11/XF86keysym.h), defining some special // multimedia keys. They are included here as not every system has them. -#define XF86XK_Standby 0x1008FF10 -#define XF86XK_AudioLowerVolume 0x1008FF11 -#define XF86XK_AudioMute 0x1008FF12 -#define XF86XK_AudioRaiseVolume 0x1008FF13 -#define XF86XK_AudioPlay 0x1008FF14 -#define XF86XK_AudioStop 0x1008FF15 -#define XF86XK_AudioPrev 0x1008FF16 -#define XF86XK_AudioNext 0x1008FF17 -#define XF86XK_HomePage 0x1008FF18 -#define XF86XK_Calculator 0x1008FF1D -#define XF86XK_Mail 0x1008FF19 -#define XF86XK_Start 0x1008FF1A -#define XF86XK_Search 0x1008FF1B -#define XF86XK_AudioRecord 0x1008FF1C -#define XF86XK_Back 0x1008FF26 -#define XF86XK_Forward 0x1008FF27 -#define XF86XK_Stop 0x1008FF28 -#define XF86XK_Refresh 0x1008FF29 -#define XF86XK_Favorites 0x1008FF30 -#define XF86XK_AudioPause 0x1008FF31 -#define XF86XK_AudioMedia 0x1008FF32 -#define XF86XK_MyComputer 0x1008FF33 -#define XF86XK_OpenURL 0x1008FF38 -#define XF86XK_Launch0 0x1008FF40 -#define XF86XK_Launch1 0x1008FF41 -#define XF86XK_Launch2 0x1008FF42 -#define XF86XK_Launch3 0x1008FF43 -#define XF86XK_Launch4 0x1008FF44 -#define XF86XK_Launch5 0x1008FF45 -#define XF86XK_Launch6 0x1008FF46 -#define XF86XK_Launch7 0x1008FF47 -#define XF86XK_Launch8 0x1008FF48 -#define XF86XK_Launch9 0x1008FF49 -#define XF86XK_LaunchA 0x1008FF4A -#define XF86XK_LaunchB 0x1008FF4B -#define XF86XK_LaunchC 0x1008FF4C -#define XF86XK_LaunchD 0x1008FF4D -#define XF86XK_LaunchE 0x1008FF4E -#define XF86XK_LaunchF 0x1008FF4F +#define XF86XK_MonBrightnessUp 0x1008FF02 +#define XF86XK_MonBrightnessDown 0x1008FF03 +#define XF86XK_KbdLightOnOff 0x1008FF04 +#define XF86XK_KbdBrightnessUp 0x1008FF05 +#define XF86XK_KbdBrightnessDown 0x1008FF06 +#define XF86XK_Standby 0x1008FF10 +#define XF86XK_AudioLowerVolume 0x1008FF11 +#define XF86XK_AudioMute 0x1008FF12 +#define XF86XK_AudioRaiseVolume 0x1008FF13 +#define XF86XK_AudioPlay 0x1008FF14 +#define XF86XK_AudioStop 0x1008FF15 +#define XF86XK_AudioPrev 0x1008FF16 +#define XF86XK_AudioNext 0x1008FF17 +#define XF86XK_HomePage 0x1008FF18 +#define XF86XK_Mail 0x1008FF19 +#define XF86XK_Start 0x1008FF1A +#define XF86XK_Search 0x1008FF1B +#define XF86XK_AudioRecord 0x1008FF1C +#define XF86XK_Calculator 0x1008FF1D +#define XF86XK_Memo 0x1008FF1E +#define XF86XK_ToDoList 0x1008FF1F +#define XF86XK_Calendar 0x1008FF20 +#define XF86XK_PowerDown 0x1008FF21 +#define XF86XK_ContrastAdjust 0x1008FF22 +#define XF86XK_Back 0x1008FF26 +#define XF86XK_Forward 0x1008FF27 +#define XF86XK_Stop 0x1008FF28 +#define XF86XK_Refresh 0x1008FF29 +#define XF86XK_PowerOff 0x1008FF2A +#define XF86XK_WakeUp 0x1008FF2B +#define XF86XK_Eject 0x1008FF2C +#define XF86XK_ScreenSaver 0x1008FF2D +#define XF86XK_WWW 0x1008FF2E +#define XF86XK_Sleep 0x1008FF2F +#define XF86XK_Favorites 0x1008FF30 +#define XF86XK_AudioPause 0x1008FF31 +#define XF86XK_AudioMedia 0x1008FF32 +#define XF86XK_MyComputer 0x1008FF33 +#define XF86XK_LightBulb 0x1008FF35 +#define XF86XK_Shop 0x1008FF36 +#define XF86XK_History 0x1008FF37 +#define XF86XK_OpenURL 0x1008FF38 +#define XF86XK_AddFavorite 0x1008FF39 +#define XF86XK_HotLinks 0x1008FF3A +#define XF86XK_BrightnessAdjust 0x1008FF3B +#define XF86XK_Finance 0x1008FF3C +#define XF86XK_Community 0x1008FF3D +#define XF86XK_AudioRewind 0x1008FF3E +#define XF86XK_BackForward 0x1008FF3F +#define XF86XK_Launch0 0x1008FF40 +#define XF86XK_Launch1 0x1008FF41 +#define XF86XK_Launch2 0x1008FF42 +#define XF86XK_Launch3 0x1008FF43 +#define XF86XK_Launch4 0x1008FF44 +#define XF86XK_Launch5 0x1008FF45 +#define XF86XK_Launch6 0x1008FF46 +#define XF86XK_Launch7 0x1008FF47 +#define XF86XK_Launch8 0x1008FF48 +#define XF86XK_Launch9 0x1008FF49 +#define XF86XK_LaunchA 0x1008FF4A +#define XF86XK_LaunchB 0x1008FF4B +#define XF86XK_LaunchC 0x1008FF4C +#define XF86XK_LaunchD 0x1008FF4D +#define XF86XK_LaunchE 0x1008FF4E +#define XF86XK_LaunchF 0x1008FF4F +#define XF86XK_ApplicationLeft 0x1008FF50 +#define XF86XK_ApplicationRight 0x1008FF51 +#define XF86XK_Book 0x1008FF52 +#define XF86XK_CD 0x1008FF53 +#define XF86XK_Calculater 0x1008FF54 +#define XF86XK_Clear 0x1008FF55 +#define XF86XK_ClearGrab 0x1008FE21 +#define XF86XK_Close 0x1008FF56 +#define XF86XK_Copy 0x1008FF57 +#define XF86XK_Cut 0x1008FF58 +#define XF86XK_Display 0x1008FF59 +#define XF86XK_DOS 0x1008FF5A +#define XF86XK_Documents 0x1008FF5B +#define XF86XK_Excel 0x1008FF5C +#define XF86XK_Explorer 0x1008FF5D +#define XF86XK_Game 0x1008FF5E +#define XF86XK_Go 0x1008FF5F +#define XF86XK_iTouch 0x1008FF60 +#define XF86XK_LogOff 0x1008FF61 +#define XF86XK_Market 0x1008FF62 +#define XF86XK_Meeting 0x1008FF63 +#define XF86XK_MenuKB 0x1008FF65 +#define XF86XK_MenuPB 0x1008FF66 +#define XF86XK_MySites 0x1008FF67 +#define XF86XK_News 0x1008FF69 +#define XF86XK_OfficeHome 0x1008FF6A +#define XF86XK_Option 0x1008FF6C +#define XF86XK_Paste 0x1008FF6D +#define XF86XK_Phone 0x1008FF6E +#define XF86XK_Reply 0x1008FF72 +#define XF86XK_Reload 0x1008FF73 +#define XF86XK_RotateWindows 0x1008FF74 +#define XF86XK_RotationPB 0x1008FF75 +#define XF86XK_RotationKB 0x1008FF76 +#define XF86XK_Save 0x1008FF77 +#define XF86XK_Send 0x1008FF7B +#define XF86XK_Spell 0x1008FF7C +#define XF86XK_SplitScreen 0x1008FF7D +#define XF86XK_Support 0x1008FF7E +#define XF86XK_TaskPane 0x1008FF7F +#define XF86XK_Terminal 0x1008FF80 +#define XF86XK_Tools 0x1008FF81 +#define XF86XK_Travel 0x1008FF82 +#define XF86XK_Video 0x1008FF87 +#define XF86XK_Word 0x1008FF89 +#define XF86XK_Xfer 0x1008FF8A +#define XF86XK_ZoomIn 0x1008FF8B +#define XF86XK_ZoomOut 0x1008FF8C +#define XF86XK_Away 0x1008FF8D +#define XF86XK_Messenger 0x1008FF8E +#define XF86XK_WebCam 0x1008FF8F +#define XF86XK_MailForward 0x1008FF90 +#define XF86XK_Pictures 0x1008FF91 +#define XF86XK_Music 0x1008FF92 +#define XF86XK_Battery 0x1008FF93 +#define XF86XK_Bluetooth 0x1008FF94 +#define XF86XK_WLAN 0x1008FF95 +#define XF86XK_UWB 0x1008FF96 +#define XF86XK_AudioForward 0x1008FF97 +#define XF86XK_AudioRepeat 0x1008FF98 +#define XF86XK_AudioRandomPlay 0x1008FF99 +#define XF86XK_Subtitle 0x1008FF9A +#define XF86XK_AudioCycleTrack 0x1008FF9B +#define XF86XK_Time 0x1008FF9F +#define XF86XK_Select 0x1008FFA0 +#define XF86XK_View 0x1008FFA1 +#define XF86XK_TopMenu 0x1008FFA2 +#define XF86XK_Suspend 0x1008FFA7 +#define XF86XK_Hibernate 0x1008FFA8 + + // end of XF86keysyms.h // Special keys used by Qtopia, mapped into the X11 private keypad range. @@ -942,10 +1039,8 @@ static const unsigned int KeyTbl[] = { XK_dead_hook, Qt::Key_Dead_Hook, XK_dead_horn, Qt::Key_Dead_Horn, - // Special multimedia keys - // currently only tested with MS internet keyboard - - // browsing keys + // Special keys from X.org - This include multimedia keys, + // wireless/bluetooth/uwb keys, special launcher keys, etc. XF86XK_Back, Qt::Key_Back, XF86XK_Forward, Qt::Key_Forward, XF86XK_Stop, Qt::Key_Stop, @@ -955,8 +1050,6 @@ static const unsigned int KeyTbl[] = { XF86XK_OpenURL, Qt::Key_OpenUrl, XF86XK_HomePage, Qt::Key_HomePage, XF86XK_Search, Qt::Key_Search, - - // media keys XF86XK_AudioLowerVolume, Qt::Key_VolumeDown, XF86XK_AudioMute, Qt::Key_VolumeMute, XF86XK_AudioRaiseVolume, Qt::Key_VolumeUp, @@ -965,13 +1058,106 @@ static const unsigned int KeyTbl[] = { XF86XK_AudioPrev, Qt::Key_MediaPrevious, XF86XK_AudioNext, Qt::Key_MediaNext, XF86XK_AudioRecord, Qt::Key_MediaRecord, - - // launch keys XF86XK_Mail, Qt::Key_LaunchMail, XF86XK_MyComputer, Qt::Key_Launch0, - XF86XK_Calculator, Qt::Key_Launch1, + XF86XK_Calculator, Qt::Key_Calculator, + XF86XK_Memo, Qt::Key_Memo, + XF86XK_ToDoList, Qt::Key_ToDoList, + XF86XK_Calendar, Qt::Key_Calendar, + XF86XK_PowerDown, Qt::Key_PowerDown, + XF86XK_ContrastAdjust, Qt::Key_ContrastAdjust, XF86XK_Standby, Qt::Key_Standby, - + XF86XK_MonBrightnessUp, Qt::Key_MonBrightnessUp, + XF86XK_MonBrightnessDown, Qt::Key_MonBrightnessDown, + XF86XK_KbdLightOnOff, Qt::Key_KeyboardLightOnOff, + XF86XK_KbdBrightnessUp, Qt::Key_KeyboardBrightnessUp, + XF86XK_KbdBrightnessDown, Qt::Key_KeyboardBrightnessDown, + XF86XK_PowerOff, Qt::Key_PowerOff, + XF86XK_WakeUp, Qt::Key_WakeUp, + XF86XK_Eject, Qt::Key_Eject, + XF86XK_ScreenSaver, Qt::Key_ScreenSaver, + XF86XK_WWW, Qt::Key_WWW, + XF86XK_Sleep, Qt::Key_Sleep, + XF86XK_LightBulb, Qt::Key_LightBulb, + XF86XK_Shop, Qt::Key_Shop, + XF86XK_History, Qt::Key_History, + XF86XK_AddFavorite, Qt::Key_AddFavorite, + XF86XK_HotLinks, Qt::Key_HotLinks, + XF86XK_BrightnessAdjust, Qt::Key_BrightnessAdjust, + XF86XK_Finance, Qt::Key_Finance, + XF86XK_Community, Qt::Key_Community, + XF86XK_AudioRewind, Qt::Key_AudioRewind, + XF86XK_BackForward, Qt::Key_BackForward, + XF86XK_ApplicationLeft, Qt::Key_ApplicationLeft, + XF86XK_ApplicationRight, Qt::Key_ApplicationRight, + XF86XK_Book, Qt::Key_Book, + XF86XK_CD, Qt::Key_CD, + XF86XK_Calculater, Qt::Key_Calculator, + XF86XK_Clear, Qt::Key_Clear, + XF86XK_ClearGrab, Qt::Key_ClearGrab, + XF86XK_Close, Qt::Key_Close, + XF86XK_Copy, Qt::Key_Copy, + XF86XK_Cut, Qt::Key_Cut, + XF86XK_Display, Qt::Key_Display, + XF86XK_DOS, Qt::Key_DOS, + XF86XK_Documents, Qt::Key_Documents, + XF86XK_Excel, Qt::Key_Excel, + XF86XK_Explorer, Qt::Key_Explorer, + XF86XK_Game, Qt::Key_Game, + XF86XK_Go, Qt::Key_Go, + XF86XK_iTouch, Qt::Key_iTouch, + XF86XK_LogOff, Qt::Key_LogOff, + XF86XK_Market, Qt::Key_Market, + XF86XK_Meeting, Qt::Key_Meeting, + XF86XK_MenuKB, Qt::Key_MenuKB, + XF86XK_MenuPB, Qt::Key_MenuPB, + XF86XK_MySites, Qt::Key_MySites, + XF86XK_News, Qt::Key_News, + XF86XK_OfficeHome, Qt::Key_OfficeHome, + XF86XK_Option, Qt::Key_Option, + XF86XK_Paste, Qt::Key_Paste, + XF86XK_Phone, Qt::Key_Phone, + XF86XK_Reply, Qt::Key_Reply, + XF86XK_Reload, Qt::Key_Reload, + XF86XK_RotateWindows, Qt::Key_RotateWindows, + XF86XK_RotationPB, Qt::Key_RotationPB, + XF86XK_RotationKB, Qt::Key_RotationKB, + XF86XK_Save, Qt::Key_Save, + XF86XK_Send, Qt::Key_Send, + XF86XK_Spell, Qt::Key_Spell, + XF86XK_SplitScreen, Qt::Key_SplitScreen, + XF86XK_Support, Qt::Key_Support, + XF86XK_TaskPane, Qt::Key_TaskPane, + XF86XK_Terminal, Qt::Key_Terminal, + XF86XK_Tools, Qt::Key_Tools, + XF86XK_Travel, Qt::Key_Travel, + XF86XK_Video, Qt::Key_Video, + XF86XK_Word, Qt::Key_Word, + XF86XK_Xfer, Qt::Key_Xfer, + XF86XK_ZoomIn, Qt::Key_ZoomIn, + XF86XK_ZoomOut, Qt::Key_ZoomOut, + XF86XK_Away, Qt::Key_Away, + XF86XK_Messenger, Qt::Key_Messenger, + XF86XK_WebCam, Qt::Key_WebCam, + XF86XK_MailForward, Qt::Key_MailForward, + XF86XK_Pictures, Qt::Key_Pictures, + XF86XK_Music, Qt::Key_Music, + XF86XK_Battery, Qt::Key_Battery, + XF86XK_Bluetooth, Qt::Key_Bluetooth, + XF86XK_WLAN, Qt::Key_WLAN, + XF86XK_UWB, Qt::Key_UWB, + XF86XK_AudioForward, Qt::Key_AudioForward, + XF86XK_AudioRepeat, Qt::Key_AudioRepeat, + XF86XK_AudioRandomPlay, Qt::Key_AudioRandomPlay, + XF86XK_Subtitle, Qt::Key_Subtitle, + XF86XK_AudioCycleTrack, Qt::Key_AudioCycleTrack, + XF86XK_Time, Qt::Key_Time, + XF86XK_Select, Qt::Key_Select, + XF86XK_View, Qt::Key_View, + XF86XK_TopMenu, Qt::Key_TopMenu, + XF86XK_Bluetooth, Qt::Key_Bluetooth, + XF86XK_Suspend, Qt::Key_Suspend, + XF86XK_Hibernate, Qt::Key_Hibernate, XF86XK_Launch0, Qt::Key_Launch2, XF86XK_Launch1, Qt::Key_Launch3, XF86XK_Launch2, Qt::Key_Launch4, diff --git a/src/gui/kernel/qkeysequence.cpp b/src/gui/kernel/qkeysequence.cpp index b44ef7f..1a76083 100644 --- a/src/gui/kernel/qkeysequence.cpp +++ b/src/gui/kernel/qkeysequence.cpp @@ -416,47 +416,139 @@ static const struct { { Qt::Key_Menu, QT_TRANSLATE_NOOP("QShortcut", "Menu") }, { Qt::Key_Help, QT_TRANSLATE_NOOP("QShortcut", "Help") }, - // Multimedia keys - { Qt::Key_Back, QT_TRANSLATE_NOOP("QShortcut", "Back") }, - { Qt::Key_Forward, QT_TRANSLATE_NOOP("QShortcut", "Forward") }, - { Qt::Key_Stop, QT_TRANSLATE_NOOP("QShortcut", "Stop") }, - { Qt::Key_Refresh, QT_TRANSLATE_NOOP("QShortcut", "Refresh") }, - { Qt::Key_VolumeDown, QT_TRANSLATE_NOOP("QShortcut", "Volume Down") }, - { Qt::Key_VolumeMute, QT_TRANSLATE_NOOP("QShortcut", "Volume Mute") }, - { Qt::Key_VolumeUp, QT_TRANSLATE_NOOP("QShortcut", "Volume Up") }, - { Qt::Key_BassBoost, QT_TRANSLATE_NOOP("QShortcut", "Bass Boost") }, - { Qt::Key_BassUp, QT_TRANSLATE_NOOP("QShortcut", "Bass Up") }, - { Qt::Key_BassDown, QT_TRANSLATE_NOOP("QShortcut", "Bass Down") }, - { Qt::Key_TrebleUp, QT_TRANSLATE_NOOP("QShortcut", "Treble Up") }, - { Qt::Key_TrebleDown, QT_TRANSLATE_NOOP("QShortcut", "Treble Down") }, - { Qt::Key_MediaPlay, QT_TRANSLATE_NOOP("QShortcut", "Media Play") }, - { Qt::Key_MediaStop, QT_TRANSLATE_NOOP("QShortcut", "Media Stop") }, - { Qt::Key_MediaPrevious,QT_TRANSLATE_NOOP("QShortcut", "Media Previous") }, - { Qt::Key_MediaNext, QT_TRANSLATE_NOOP("QShortcut", "Media Next") }, - { Qt::Key_MediaRecord, QT_TRANSLATE_NOOP("QShortcut", "Media Record") }, - { Qt::Key_HomePage, QT_TRANSLATE_NOOP("QShortcut", "Home Page") }, - { Qt::Key_Favorites, QT_TRANSLATE_NOOP("QShortcut", "Favorites") }, - { Qt::Key_Search, QT_TRANSLATE_NOOP("QShortcut", "Search") }, - { Qt::Key_Standby, QT_TRANSLATE_NOOP("QShortcut", "Standby") }, - { Qt::Key_OpenUrl, QT_TRANSLATE_NOOP("QShortcut", "Open URL") }, - { Qt::Key_LaunchMail, QT_TRANSLATE_NOOP("QShortcut", "Launch Mail") }, - { Qt::Key_LaunchMedia, QT_TRANSLATE_NOOP("QShortcut", "Launch Media") }, - { Qt::Key_Launch0, QT_TRANSLATE_NOOP("QShortcut", "Launch (0)") }, - { Qt::Key_Launch1, QT_TRANSLATE_NOOP("QShortcut", "Launch (1)") }, - { Qt::Key_Launch2, QT_TRANSLATE_NOOP("QShortcut", "Launch (2)") }, - { Qt::Key_Launch3, QT_TRANSLATE_NOOP("QShortcut", "Launch (3)") }, - { Qt::Key_Launch4, QT_TRANSLATE_NOOP("QShortcut", "Launch (4)") }, - { Qt::Key_Launch5, QT_TRANSLATE_NOOP("QShortcut", "Launch (5)") }, - { Qt::Key_Launch6, QT_TRANSLATE_NOOP("QShortcut", "Launch (6)") }, - { Qt::Key_Launch7, QT_TRANSLATE_NOOP("QShortcut", "Launch (7)") }, - { Qt::Key_Launch8, QT_TRANSLATE_NOOP("QShortcut", "Launch (8)") }, - { Qt::Key_Launch9, QT_TRANSLATE_NOOP("QShortcut", "Launch (9)") }, - { Qt::Key_LaunchA, QT_TRANSLATE_NOOP("QShortcut", "Launch (A)") }, - { Qt::Key_LaunchB, QT_TRANSLATE_NOOP("QShortcut", "Launch (B)") }, - { Qt::Key_LaunchC, QT_TRANSLATE_NOOP("QShortcut", "Launch (C)") }, - { Qt::Key_LaunchD, QT_TRANSLATE_NOOP("QShortcut", "Launch (D)") }, - { Qt::Key_LaunchE, QT_TRANSLATE_NOOP("QShortcut", "Launch (E)") }, - { Qt::Key_LaunchF, QT_TRANSLATE_NOOP("QShortcut", "Launch (F)") }, + // Special keys + // Includes multimedia, launcher, lan keys ( bluetooth, wireless ) + // window navigation + { Qt::Key_Back, QT_TRANSLATE_NOOP("QShortcut", "Back") }, + { Qt::Key_Forward, QT_TRANSLATE_NOOP("QShortcut", "Forward") }, + { Qt::Key_Stop, QT_TRANSLATE_NOOP("QShortcut", "Stop") }, + { Qt::Key_Refresh, QT_TRANSLATE_NOOP("QShortcut", "Refresh") }, + { Qt::Key_VolumeDown, QT_TRANSLATE_NOOP("QShortcut", "Volume Down") }, + { Qt::Key_VolumeMute, QT_TRANSLATE_NOOP("QShortcut", "Volume Mute") }, + { Qt::Key_VolumeUp, QT_TRANSLATE_NOOP("QShortcut", "Volume Up") }, + { Qt::Key_BassBoost, QT_TRANSLATE_NOOP("QShortcut", "Bass Boost") }, + { Qt::Key_BassUp, QT_TRANSLATE_NOOP("QShortcut", "Bass Up") }, + { Qt::Key_BassDown, QT_TRANSLATE_NOOP("QShortcut", "Bass Down") }, + { Qt::Key_TrebleUp, QT_TRANSLATE_NOOP("QShortcut", "Treble Up") }, + { Qt::Key_TrebleDown, QT_TRANSLATE_NOOP("QShortcut", "Treble Down") }, + { Qt::Key_MediaPlay, QT_TRANSLATE_NOOP("QShortcut", "Media Play") }, + { Qt::Key_MediaStop, QT_TRANSLATE_NOOP("QShortcut", "Media Stop") }, + { Qt::Key_MediaPrevious, QT_TRANSLATE_NOOP("QShortcut", "Media Previous") }, + { Qt::Key_MediaNext, QT_TRANSLATE_NOOP("QShortcut", "Media Next") }, + { Qt::Key_MediaRecord, QT_TRANSLATE_NOOP("QShortcut", "Media Record") }, + { Qt::Key_HomePage, QT_TRANSLATE_NOOP("QShortcut", "Home Page") }, + { Qt::Key_Favorites, QT_TRANSLATE_NOOP("QShortcut", "Favorites") }, + { Qt::Key_Search, QT_TRANSLATE_NOOP("QShortcut", "Search") }, + { Qt::Key_Standby, QT_TRANSLATE_NOOP("QShortcut", "Standby") }, + { Qt::Key_OpenUrl, QT_TRANSLATE_NOOP("QShortcut", "Open URL") }, + { Qt::Key_LaunchMail, QT_TRANSLATE_NOOP("QShortcut", "Launch Mail") }, + { Qt::Key_LaunchMedia, QT_TRANSLATE_NOOP("QShortcut", "Launch Media") }, + { Qt::Key_Launch0, QT_TRANSLATE_NOOP("QShortcut", "Launch (0)") }, + { Qt::Key_Launch1, QT_TRANSLATE_NOOP("QShortcut", "Launch (1)") }, + { Qt::Key_Launch2, QT_TRANSLATE_NOOP("QShortcut", "Launch (2)") }, + { Qt::Key_Launch3, QT_TRANSLATE_NOOP("QShortcut", "Launch (3)") }, + { Qt::Key_Launch4, QT_TRANSLATE_NOOP("QShortcut", "Launch (4)") }, + { Qt::Key_Launch5, QT_TRANSLATE_NOOP("QShortcut", "Launch (5)") }, + { Qt::Key_Launch6, QT_TRANSLATE_NOOP("QShortcut", "Launch (6)") }, + { Qt::Key_Launch7, QT_TRANSLATE_NOOP("QShortcut", "Launch (7)") }, + { Qt::Key_Launch8, QT_TRANSLATE_NOOP("QShortcut", "Launch (8)") }, + { Qt::Key_Launch9, QT_TRANSLATE_NOOP("QShortcut", "Launch (9)") }, + { Qt::Key_LaunchA, QT_TRANSLATE_NOOP("QShortcut", "Launch (A)") }, + { Qt::Key_LaunchB, QT_TRANSLATE_NOOP("QShortcut", "Launch (B)") }, + { Qt::Key_LaunchC, QT_TRANSLATE_NOOP("QShortcut", "Launch (C)") }, + { Qt::Key_LaunchD, QT_TRANSLATE_NOOP("QShortcut", "Launch (D)") }, + { Qt::Key_LaunchE, QT_TRANSLATE_NOOP("QShortcut", "Launch (E)") }, + { Qt::Key_LaunchF, QT_TRANSLATE_NOOP("QShortcut", "Launch (F)") }, + { Qt::Key_MonBrightnessUp, QT_TRANSLATE_NOOP("QShortcut", "Monitor Brightness Up") }, + { Qt::Key_MonBrightnessDown, QT_TRANSLATE_NOOP("QShortcut", "Monitor Brightness Down") }, + { Qt::Key_KeyboardLightOnOff, QT_TRANSLATE_NOOP("QShortcut", "Keyboard Light On/Off") }, + { Qt::Key_KeyboardBrightnessUp, QT_TRANSLATE_NOOP("QShortcut", "Keyboard Brightness Up") }, + { Qt::Key_KeyboardBrightnessDown, QT_TRANSLATE_NOOP("QShortcut", "Keyboard Brightness Down") }, + { Qt::Key_PowerOff, QT_TRANSLATE_NOOP("QShortcut", "Power Off") }, + { Qt::Key_WakeUp, QT_TRANSLATE_NOOP("QShortcut", "Wake Up") }, + { Qt::Key_Eject, QT_TRANSLATE_NOOP("QShortcut", "Eject") }, + { Qt::Key_ScreenSaver, QT_TRANSLATE_NOOP("QShortcut", "Screensaver") }, + { Qt::Key_WWW, QT_TRANSLATE_NOOP("QShortcut", "WWW") }, + { Qt::Key_Sleep, QT_TRANSLATE_NOOP("QShortcut", "Sleep") }, + { Qt::Key_LightBulb, QT_TRANSLATE_NOOP("QShortcut", "LightBulb") }, + { Qt::Key_Shop, QT_TRANSLATE_NOOP("QShortcut", "Shop") }, + { Qt::Key_History, QT_TRANSLATE_NOOP("QShortcut", "History") }, + { Qt::Key_AddFavorite, QT_TRANSLATE_NOOP("QShortcut", "Add Favorite") }, + { Qt::Key_HotLinks, QT_TRANSLATE_NOOP("QShortcut", "Hot Links") }, + { Qt::Key_BrightnessAdjust, QT_TRANSLATE_NOOP("QShortcut", "Adjust Brightness") }, + { Qt::Key_Finance, QT_TRANSLATE_NOOP("QShortcut", "Finance") }, + { Qt::Key_Community, QT_TRANSLATE_NOOP("QShortcut", "Community") }, + { Qt::Key_AudioRewind, QT_TRANSLATE_NOOP("QShortcut", "Audio Rewind") }, + { Qt::Key_BackForward, QT_TRANSLATE_NOOP("QShortcut", "Back Forward") }, + { Qt::Key_ApplicationLeft, QT_TRANSLATE_NOOP("QShortcut", "Application Left") }, + { Qt::Key_ApplicationRight, QT_TRANSLATE_NOOP("QShortcut", "Application Right") }, + { Qt::Key_Book, QT_TRANSLATE_NOOP("QShortcut", "Book") }, + { Qt::Key_CD, QT_TRANSLATE_NOOP("QShortcut", "CD") }, + { Qt::Key_Calculator, QT_TRANSLATE_NOOP("QShortcut", "Calculator") }, + { Qt::Key_Clear, QT_TRANSLATE_NOOP("QShortcut", "Clear") }, + { Qt::Key_ClearGrab, QT_TRANSLATE_NOOP("QShortcut", "Clear Grab") }, + { Qt::Key_Close, QT_TRANSLATE_NOOP("QShortcut", "Close") }, + { Qt::Key_Copy, QT_TRANSLATE_NOOP("QShortcut", "Copy") }, + { Qt::Key_Cut, QT_TRANSLATE_NOOP("QShortcut", "Cut") }, + { Qt::Key_Display, QT_TRANSLATE_NOOP("QShortcut", "Display") }, + { Qt::Key_DOS, QT_TRANSLATE_NOOP("QShortcut", "DOS") }, + { Qt::Key_Documents, QT_TRANSLATE_NOOP("QShortcut", "Documents") }, + { Qt::Key_Excel, QT_TRANSLATE_NOOP("QShortcut", "Spreadsheet") }, + { Qt::Key_Explorer, QT_TRANSLATE_NOOP("QShortcut", "Browser") }, + { Qt::Key_Game, QT_TRANSLATE_NOOP("QShortcut", "Game") }, + { Qt::Key_Go, QT_TRANSLATE_NOOP("QShortcut", "Go") }, + { Qt::Key_iTouch, QT_TRANSLATE_NOOP("QShortcut", "iTouch") }, + { Qt::Key_LogOff, QT_TRANSLATE_NOOP("QShortcut", "Logoff") }, + { Qt::Key_Market, QT_TRANSLATE_NOOP("QShortcut", "Market") }, + { Qt::Key_Meeting, QT_TRANSLATE_NOOP("QShortcut", "Meeting") }, + { Qt::Key_MenuKB, QT_TRANSLATE_NOOP("QShortcut", "Keyboard Menu") }, + { Qt::Key_MenuPB, QT_TRANSLATE_NOOP("QShortcut", "Menu PB") }, + { Qt::Key_MySites, QT_TRANSLATE_NOOP("QShortcut", "My Sites") }, + { Qt::Key_News, QT_TRANSLATE_NOOP("QShortcut", "News") }, + { Qt::Key_OfficeHome, QT_TRANSLATE_NOOP("QShortcut", "Home Office") }, + { Qt::Key_Option, QT_TRANSLATE_NOOP("QShortcut", "Option") }, + { Qt::Key_Paste, QT_TRANSLATE_NOOP("QShortcut", "Paste") }, + { Qt::Key_Phone, QT_TRANSLATE_NOOP("QShortcut", "Phone") }, + { Qt::Key_Reply, QT_TRANSLATE_NOOP("QShortcut", "Reply") }, + { Qt::Key_Reload, QT_TRANSLATE_NOOP("QShortcut", "Reload") }, + { Qt::Key_RotateWindows, QT_TRANSLATE_NOOP("QShortcut", "Rotate Windows") }, + { Qt::Key_RotationPB, QT_TRANSLATE_NOOP("QShortcut", "Rotation PB") }, + { Qt::Key_RotationKB, QT_TRANSLATE_NOOP("QShortcut", "Rotation KB") }, + { Qt::Key_Save, QT_TRANSLATE_NOOP("QShortcut", "Save") }, + { Qt::Key_Send, QT_TRANSLATE_NOOP("QShortcut", "Send") }, + { Qt::Key_Spell, QT_TRANSLATE_NOOP("QShortcut", "Spellchecker") }, + { Qt::Key_SplitScreen, QT_TRANSLATE_NOOP("QShortcut", "Split Screen") }, + { Qt::Key_Support, QT_TRANSLATE_NOOP("QShortcut", "Support") }, + { Qt::Key_TaskPane, QT_TRANSLATE_NOOP("QShortcut", "Task Panel") }, + { Qt::Key_Terminal, QT_TRANSLATE_NOOP("QShortcut", "Terminal") }, + { Qt::Key_Tools, QT_TRANSLATE_NOOP("QShortcut", "Tools") }, + { Qt::Key_Travel, QT_TRANSLATE_NOOP("QShortcut", "Travel") }, + { Qt::Key_Video, QT_TRANSLATE_NOOP("QShortcut", "Video") }, + { Qt::Key_Word, QT_TRANSLATE_NOOP("QShortcut", "Word Processor") }, + { Qt::Key_Xfer, QT_TRANSLATE_NOOP("QShortcut", "XFer") }, + { Qt::Key_ZoomIn, QT_TRANSLATE_NOOP("QShortcut", "Zoom In") }, + { Qt::Key_ZoomOut, QT_TRANSLATE_NOOP("QShortcut", "Zoom Out") }, + { Qt::Key_Away, QT_TRANSLATE_NOOP("QShortcut", "Away") }, + { Qt::Key_Messenger, QT_TRANSLATE_NOOP("QShortcut", "Messenger") }, + { Qt::Key_WebCam, QT_TRANSLATE_NOOP("QShortcut", "WebCam") }, + { Qt::Key_MailForward, QT_TRANSLATE_NOOP("QShortcut", "Mail Forward") }, + { Qt::Key_Pictures, QT_TRANSLATE_NOOP("QShortcut", "Pictures") }, + { Qt::Key_Music, QT_TRANSLATE_NOOP("QShortcut", "Music") }, + { Qt::Key_Battery, QT_TRANSLATE_NOOP("QShortcut", "Battery") }, + { Qt::Key_Bluetooth, QT_TRANSLATE_NOOP("QShortcut", "Bluetooth") }, + { Qt::Key_WLAN, QT_TRANSLATE_NOOP("QShortcut", "Wireless") }, + { Qt::Key_UWB, QT_TRANSLATE_NOOP("QShortcut", "Ultra Wide Band") }, + { Qt::Key_AudioForward, QT_TRANSLATE_NOOP("QShortcut", "Audio Forward") }, + { Qt::Key_AudioRepeat, QT_TRANSLATE_NOOP("QShortcut", "Audio Repeat") }, + { Qt::Key_AudioRandomPlay, QT_TRANSLATE_NOOP("QShortcut", "Audio Random Play") }, + { Qt::Key_Subtitle, QT_TRANSLATE_NOOP("QShortcut", "Subtitle") }, + { Qt::Key_AudioCycleTrack, QT_TRANSLATE_NOOP("QShortcut", "Audio Cycle Track") }, + { Qt::Key_Time, QT_TRANSLATE_NOOP("QShortcut", "Time") }, + { Qt::Key_Select, QT_TRANSLATE_NOOP("QShortcut", "Select") }, + { Qt::Key_View, QT_TRANSLATE_NOOP("QShortcut", "View") }, + { Qt::Key_TopMenu, QT_TRANSLATE_NOOP("QShortcut", "Top Menu") }, + { Qt::Key_Suspend, QT_TRANSLATE_NOOP("QShortcut", "Suspend") }, + { Qt::Key_Hibernate, QT_TRANSLATE_NOOP("QShortcut", "Hibernate") }, // -------------------------------------------------------------- // More consistent namings diff --git a/src/gui/kernel/qsoftkeymanager.cpp b/src/gui/kernel/qsoftkeymanager.cpp index a5a2201..21795b4 100644 --- a/src/gui/kernel/qsoftkeymanager.cpp +++ b/src/gui/kernel/qsoftkeymanager.cpp @@ -48,6 +48,7 @@ #include "private/qsoftkeymanager_p.h" #include "private/qobject_p.h" +#ifndef QT_NO_SOFTKEYMANAGER QT_BEGIN_NAMESPACE #ifdef Q_WS_S60 @@ -285,4 +286,4 @@ void QSoftKeyManagerPrivate::updateSoftKeys_sys(const QList<QAction*> &) #endif QT_END_NAMESPACE - +#endif //QT_NO_SOFTKEYMANAGER diff --git a/src/gui/kernel/qsoftkeymanager_p.h b/src/gui/kernel/qsoftkeymanager_p.h index 81218cf..796e080 100644 --- a/src/gui/kernel/qsoftkeymanager_p.h +++ b/src/gui/kernel/qsoftkeymanager_p.h @@ -58,6 +58,7 @@ QT_BEGIN_HEADER +#ifndef QT_NO_SOFTKEYMANAGER QT_BEGIN_NAMESPACE class QSoftKeyManagerPrivate; @@ -101,6 +102,7 @@ private Q_SLOTS: }; QT_END_NAMESPACE +#endif //QT_NO_SOFTKEYMANAGER QT_END_HEADER diff --git a/src/gui/kernel/qt_cocoa_helpers_mac.mm b/src/gui/kernel/qt_cocoa_helpers_mac.mm index 2b2259c..c0fb8aa 100644 --- a/src/gui/kernel/qt_cocoa_helpers_mac.mm +++ b/src/gui/kernel/qt_cocoa_helpers_mac.mm @@ -1152,16 +1152,23 @@ CGFloat qt_mac_get_scalefactor() #endif } -QString qt_mac_get_pasteboardString() +QString qt_mac_get_pasteboardString(OSPasteboardRef paste) { QMacCocoaAutoReleasePool pool; - NSPasteboard *pb = [NSPasteboard generalPasteboard]; - NSString *text = [pb stringForType:NSStringPboardType]; - if (text) { - return qt_mac_NSStringToQString(text); + NSPasteboard *pb = nil; + CFStringRef pbname; + if (PasteboardCopyName (paste, &pbname)) { + pb = [NSPasteboard generalPasteboard]; } else { - return QString(); + pb = [NSPasteboard pasteboardWithName:reinterpret_cast<const NSString *>(pbname)]; + CFRelease (pbname); } + if (pb) { + NSString *text = [pb stringForType:NSStringPboardType]; + if (text) + return qt_mac_NSStringToQString(text); + } + return QString(); } QPixmap qt_mac_convert_iconref(const IconRef icon, int width, int height) diff --git a/src/gui/kernel/qt_cocoa_helpers_mac_p.h b/src/gui/kernel/qt_cocoa_helpers_mac_p.h index 5318d31..f11ccc5 100644 --- a/src/gui/kernel/qt_cocoa_helpers_mac_p.h +++ b/src/gui/kernel/qt_cocoa_helpers_mac_p.h @@ -170,7 +170,7 @@ void *qt_mac_QStringListToNSMutableArrayVoid(const QStringList &list); void qt_syncCocoaTitleBarButtons(OSWindowRef window, QWidget *widgetForWindow); CGFloat qt_mac_get_scalefactor(); -QString qt_mac_get_pasteboardString(); +QString qt_mac_get_pasteboardString(OSPasteboardRef paste); #ifdef __OBJC__ inline NSMutableArray *qt_mac_QStringListToNSMutableArray(const QStringList &qstrlist) diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp index 27e73e0..9165515 100644 --- a/src/gui/kernel/qwidget.cpp +++ b/src/gui/kernel/qwidget.cpp @@ -1549,7 +1549,9 @@ void QWidgetPrivate::createExtra() extra = new QWExtra; extra->glContext = 0; extra->topextra = 0; +#ifndef QT_NO_GRAPHICSVIEW extra->proxyWidget = 0; +#endif #ifndef QT_NO_CURSOR extra->curs = 0; #endif @@ -1699,12 +1701,13 @@ void QWidgetPrivate::propagatePaletteChange() { Q_Q(QWidget); // Propagate a new inherited mask to all children. - if (!q->parentWidget() && extra && extra->proxyWidget) { #ifndef QT_NO_GRAPHICSVIEW + if (!q->parentWidget() && extra && extra->proxyWidget) { QGraphicsProxyWidget *p = extra->proxyWidget; inheritedPaletteResolveMask = p->d_func()->inheritedPaletteResolveMask | p->palette().resolve(); + } else #endif //QT_NO_GRAPHICSVIEW - } else if (q->isWindow() && !q->testAttribute(Qt::WA_WindowPropagation)) { + if (q->isWindow() && !q->testAttribute(Qt::WA_WindowPropagation)) { inheritedPaletteResolveMask = 0; } int mask = data.pal.resolve() | inheritedPaletteResolveMask; @@ -1825,18 +1828,6 @@ void QWidgetPrivate::setDirtyOpaqueRegion() pd->setDirtyOpaqueRegion(); } -QRegion QWidgetPrivate::getOpaqueRegion() const -{ - Q_Q(const QWidget); - - QRegion r = isOpaque ? q->rect() : getOpaqueChildren(); - if (extra && extra->hasMask) - r &= extra->mask; - if (r.isEmpty()) - return r; - return r & clipRect(); -} - const QRegion &QWidgetPrivate::getOpaqueChildren() const { if (!dirtyOpaqueChildren) @@ -1851,9 +1842,17 @@ const QRegion &QWidgetPrivate::getOpaqueChildren() const continue; const QPoint offset = child->geometry().topLeft(); - that->opaqueChildren += child->d_func()->getOpaqueRegion().translated(offset); + QWidgetPrivate *childd = child->d_func(); + QRegion r = childd->isOpaque ? child->rect() : childd->getOpaqueChildren(); + if (childd->extra && childd->extra->hasMask) + r &= childd->extra->mask; + if (r.isEmpty()) + continue; + r.translate(offset); + that->opaqueChildren += r; } + that->opaqueChildren &= q_func()->rect(); that->dirtyOpaqueChildren = false; return that->opaqueChildren; @@ -3072,6 +3071,7 @@ void QWidgetPrivate::setEnabled_helper(bool enable) #if defined(Q_WS_MAC) setEnabled_helper_sys(enable); #endif +#ifndef QT_NO_IM if (q->testAttribute(Qt::WA_InputMethodEnabled) && q->hasFocus()) { QInputContext *qic = inputContext(); if (enable) { @@ -3081,6 +3081,7 @@ void QWidgetPrivate::setEnabled_helper(bool enable) qic->setFocusWidget(0); } } +#endif //QT_NO_IM QEvent e(QEvent::EnabledChange); QApplication::sendEvent(q, &e); #ifdef QT3_SUPPORT @@ -4379,7 +4380,11 @@ QPalette QWidgetPrivate::naturalWidgetPalette(uint inheritedMask) const Q_Q(const QWidget); QPalette naturalPalette = QApplication::palette(q); if (!q->testAttribute(Qt::WA_StyleSheet) - && (!q->isWindow() || q->testAttribute(Qt::WA_WindowPropagation) || (extra && extra->proxyWidget))) { + && (!q->isWindow() || q->testAttribute(Qt::WA_WindowPropagation) +#ifndef QT_NO_GRAPHICSVIEW + || (extra && extra->proxyWidget) +#endif //QT_NO_GRAPHICSVIEW + )) { if (QWidget *p = q->parentWidget()) { if (!p->testAttribute(Qt::WA_StyleSheet)) { if (!naturalPalette.isCopyOf(QApplication::palette())) { @@ -4390,13 +4395,14 @@ QPalette QWidgetPrivate::naturalWidgetPalette(uint inheritedMask) const naturalPalette = p->palette(); } } - } else if (extra && extra->proxyWidget) { + } #ifndef QT_NO_GRAPHICSVIEW + else if (extra && extra->proxyWidget) { QPalette inheritedPalette = extra->proxyWidget->palette(); inheritedPalette.resolve(inheritedMask); naturalPalette = inheritedPalette.resolve(naturalPalette); -#endif //QT_NO_GRAPHICSVIEW } +#endif //QT_NO_GRAPHICSVIEW } naturalPalette.resolve(0); return naturalPalette; @@ -4514,7 +4520,11 @@ QFont QWidgetPrivate::naturalWidgetFont(uint inheritedMask) const Q_Q(const QWidget); QFont naturalFont = QApplication::font(q); if (!q->testAttribute(Qt::WA_StyleSheet) - && (!q->isWindow() || q->testAttribute(Qt::WA_WindowPropagation) || (extra && extra->proxyWidget))) { + && (!q->isWindow() || q->testAttribute(Qt::WA_WindowPropagation) +#ifndef QT_NO_GRAPHICSVIEW + || (extra && extra->proxyWidget) +#endif //QT_NO_GRAPHICSVIEW + )) { if (QWidget *p = q->parentWidget()) { if (!p->testAttribute(Qt::WA_StyleSheet)) { if (!naturalFont.isCopyOf(QApplication::font())) { @@ -4525,13 +4535,14 @@ QFont QWidgetPrivate::naturalWidgetFont(uint inheritedMask) const naturalFont = p->font(); } } - } else if (extra && extra->proxyWidget) { + } #ifndef QT_NO_GRAPHICSVIEW + else if (extra && extra->proxyWidget) { QFont inheritedFont = extra->proxyWidget->font(); inheritedFont.resolve(inheritedMask); naturalFont = inheritedFont.resolve(naturalFont); -#endif //QT_NO_GRAPHICSVIEW } +#endif //QT_NO_GRAPHICSVIEW } naturalFont.resolve(0); return naturalFont; @@ -4578,12 +4589,13 @@ void QWidgetPrivate::updateFont(const QFont &font) data.fnt.x11SetScreen(xinfo.screen()); #endif // Combine new mask with natural mask and propagate to children. - if (!q->parentWidget() && extra && extra->proxyWidget) { #ifndef QT_NO_GRAPHICSVIEW + if (!q->parentWidget() && extra && extra->proxyWidget) { QGraphicsProxyWidget *p = extra->proxyWidget; inheritedFontResolveMask = p->d_func()->inheritedFontResolveMask | p->font().resolve(); + } else #endif //QT_NO_GRAPHICSVIEW - } else if (q->isWindow() && !q->testAttribute(Qt::WA_WindowPropagation)) { + if (q->isWindow() && !q->testAttribute(Qt::WA_WindowPropagation)) { inheritedFontResolveMask = 0; } uint newMask = data.fnt.resolve() | inheritedFontResolveMask; @@ -5394,7 +5406,11 @@ void QWidgetPrivate::paintSiblingsRecursive(QPaintDevice *pdev, const QObjectLis , sharedPainter, backingStore); } - if (w->updatesEnabled() && (!w->d_func()->extra || !w->d_func()->extra->proxyWidget)) { + if (w->updatesEnabled() +#ifndef QT_NO_GRAPHICSVIEW + && (!w->d_func()->extra || !w->d_func()->extra->proxyWidget) +#endif //QT_NO_GRAPHICSVIEW + ) { QRegion wRegion(rgn); wRegion &= wd->effectiveRectFor(w->data->crect); wRegion.translate(-widgetPos); @@ -8964,11 +8980,16 @@ QVariant QWidget::inputMethodQuery(Qt::InputMethodQuery query) const Qt::InputMethodHints QWidget::inputMethodHints() const { Q_D(const QWidget); +#ifndef QT_NO_IM return d->imHints; +#else //QT_NO_IM + return 0; +#endif //QT_NO_IM } void QWidget::setInputMethodHints(Qt::InputMethodHints hints) { +#ifndef QT_NO_IM Q_D(QWidget); d->imHints = hints; // Optimisation to update input context only it has already been created. @@ -8977,6 +8998,7 @@ void QWidget::setInputMethodHints(Qt::InputMethodHints hints) if (ic) ic->update(); } +#endif //QT_NO_IM } @@ -10308,6 +10330,7 @@ void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on) QApplication::sendEvent(this, &e); break; } case Qt::WA_NativeWindow: { +#ifndef QT_NO_IM QInputContext *ic = 0; if (on && !internalWinId() && testAttribute(Qt::WA_InputMethodEnabled) && hasFocus()) { ic = d->inputContext(); @@ -10320,6 +10343,7 @@ void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on) d->createWinId(); if (ic && isEnabled()) ic->setFocusWidget(this); +#endif //QT_NO_IM break; } case Qt::WA_PaintOnScreen: @@ -10349,6 +10373,7 @@ void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on) #endif break; case Qt::WA_InputMethodEnabled: { +#ifndef QT_NO_IM QInputContext *ic = d->ic; if (!ic && (!on || hasFocus())) ic = d->inputContext(); @@ -10360,6 +10385,7 @@ void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on) ic->setFocusWidget(0); } } +#endif //QT_NO_IM break; } case Qt::WA_WindowPropagation: @@ -11722,6 +11748,22 @@ void QWidget::grabGesture(Qt::GestureType gesture, Qt::GestureContext context) (void)QGestureManager::instance(); // create a gesture manager } +/*! + Unsubscribes the widget to a given \a gesture type + + \sa QGestureEvent + \since 4.6 +*/ +void QWidget::ungrabGesture(Qt::GestureType gesture) +{ + Q_D(QWidget); + if (d->gestureContext.remove(gesture)) { + QGestureManager *manager = QGestureManager::instance(); + manager->cleanupCachedGestures(this, gesture); + } +} + + QT_END_NAMESPACE #include "moc_qwidget.cpp" diff --git a/src/gui/kernel/qwidget.h b/src/gui/kernel/qwidget.h index e603a1a..fce3f09 100644 --- a/src/gui/kernel/qwidget.h +++ b/src/gui/kernel/qwidget.h @@ -355,6 +355,7 @@ public: void setGraphicsEffect(QGraphicsEffect *effect); void grabGesture(Qt::GestureType type, Qt::GestureContext context = Qt::WidgetWithChildrenGesture); + void ungrabGesture(Qt::GestureType type); public Q_SLOTS: void setWindowTitle(const QString &); diff --git a/src/gui/kernel/qwidget_p.h b/src/gui/kernel/qwidget_p.h index 616a972..73a7d68 100644 --- a/src/gui/kernel/qwidget_p.h +++ b/src/gui/kernel/qwidget_p.h @@ -386,7 +386,6 @@ public: bool paintOnScreen() const; void invalidateGraphicsEffectsRecursively(); - QRegion getOpaqueRegion() const; const QRegion &getOpaqueChildren() const; void setDirtyOpaqueRegion(); diff --git a/src/gui/kernel/qwidget_qws.cpp b/src/gui/kernel/qwidget_qws.cpp index 0f46016..e299c6e 100644 --- a/src/gui/kernel/qwidget_qws.cpp +++ b/src/gui/kernel/qwidget_qws.cpp @@ -280,7 +280,7 @@ void QWidget::destroy(bool destroyWindow, bool destroySubWindows) QApplicationPrivate::leaveModal(this); else if ((windowType() == Qt::Popup)) qApp->d_func()->closePopup(this); - +#ifndef QT_NO_IM if (d->ic) { delete d->ic; d->ic =0; @@ -291,6 +291,7 @@ void QWidget::destroy(bool destroyWindow, bool destroySubWindows) if (qic) qic->widgetDestroyed(this); } +#endif //QT_NO_IM if ((windowType() == Qt::Desktop)) { } else { diff --git a/src/gui/kernel/qwidget_win.cpp b/src/gui/kernel/qwidget_win.cpp index fa12b0d..5bf7649 100644 --- a/src/gui/kernel/qwidget_win.cpp +++ b/src/gui/kernel/qwidget_win.cpp @@ -161,6 +161,9 @@ static void qt_tablet_init() qt_tablet_widget = new QWidget(0); qt_tablet_widget->createWinId(); qt_tablet_widget->setObjectName(QLatin1String("Qt internal tablet widget")); + // We dont need this internal widget to appear in QApplication::topLevelWidgets() + if (QWidgetPrivate::allWidgets) + QWidgetPrivate::allWidgets->remove(qt_tablet_widget); LOGCONTEXT lcMine; qAddPostRoutine(qt_tablet_cleanup); struct tagAXIS tpOri[3]; diff --git a/src/gui/painting/qbackingstore.cpp b/src/gui/painting/qbackingstore.cpp index 3cd1402..f36470a 100644 --- a/src/gui/painting/qbackingstore.cpp +++ b/src/gui/painting/qbackingstore.cpp @@ -498,18 +498,6 @@ static inline void sendUpdateRequest(QWidget *widget, bool updateImmediately) if (!widget) return; -#if defined(Q_WS_WIN) && !defined(Q_OS_WINCE) - if (QApplicationPrivate::inSizeMove && widget->internalWinId() && !updateImmediately - && !widget->testAttribute(Qt::WA_DontShowOnScreen)) { - // Tell Windows to send us a paint event if we're in WM_SIZE/WM_MOVE; posted events - // are blocked until the mouse button is released. See task 146849. - const QRegion rgn(qt_dirtyRegion(widget)); - InvalidateRgn(widget->internalWinId(), rgn.handle(), false); - qt_widget_private(widget)->dirty = QRegion(); - return; - } -#endif - if (updateImmediately) { QEvent event(QEvent::UpdateRequest); QApplication::sendEvent(widget, &event); @@ -891,7 +879,7 @@ void QWidgetPrivate::moveRect(const QRect &rect, int dx, int dy) const QRect parentRect(rect & clipR); bool accelerateMove = accelEnv && isOpaque -#ifndef QT_NO_GRAPHICSCVIEW +#ifndef QT_NO_GRAPHICSVIEW // No accelerate move for proxy widgets. && !tlw->d_func()->extra->proxyWidget #endif @@ -1189,7 +1177,7 @@ void QWidgetBackingStore::sync() : wd->dirty); toClean += widgetDirty; -#ifndef QT_NO_GRAPHICSCVIEW +#ifndef QT_NO_GRAPHICSVIEW if (tlw->d_func()->extra->proxyWidget) { resetWidget(w); continue; diff --git a/src/gui/painting/qprinterinfo_unix.cpp b/src/gui/painting/qprinterinfo_unix.cpp index 7e2946a..6684ff7 100644 --- a/src/gui/painting/qprinterinfo_unix.cpp +++ b/src/gui/painting/qprinterinfo_unix.cpp @@ -421,6 +421,7 @@ int qt_pd_foreach(int /*status */, char * /*key */, int /*keyLen */, int qt_retrieveNisPrinters(QList<QPrinterDescription> *printers) { +#ifndef QT_NO_LIBRARY typedef int (*WildCast)(int, char *, int, char *, int, char *); char printersConfByname[] = "printers.conf.byname"; char *domain; @@ -444,6 +445,7 @@ int qt_retrieveNisPrinters(QList<QPrinterDescription> *printers) if (!err) return Success; } +#endif //QT_NO_LIBRARY return Unavail; } diff --git a/src/gui/painting/qwindowsurface_qws.cpp b/src/gui/painting/qwindowsurface_qws.cpp index 4f489c4..fa0c80e 100644 --- a/src/gui/painting/qwindowsurface_qws.cpp +++ b/src/gui/painting/qwindowsurface_qws.cpp @@ -668,9 +668,11 @@ void QWSWindowSurface::flush(QWidget *widget, const QRegion ®ion, if (!win) return; +#ifndef QT_NO_GRAPHICSVIEW QWExtra *extra = win->d_func()->extra; if (extra && extra->proxyWidget) return; +#endif //QT_NO_GRAPHICSVIEW Q_UNUSED(offset); diff --git a/src/gui/styles/qcleanlooksstyle.cpp b/src/gui/styles/qcleanlooksstyle.cpp index fc12cfe..973e682 100644 --- a/src/gui/styles/qcleanlooksstyle.cpp +++ b/src/gui/styles/qcleanlooksstyle.cpp @@ -3825,6 +3825,7 @@ QSize QCleanlooksStyle::sizeFromContents(ContentsType type, const QStyleOption * } } break; +#ifndef QT_NO_GROUPBOX case CT_GroupBox: // Since we use a bold font we have to recalculate base width if (const QGroupBox *gb = qobject_cast<const QGroupBox*>(widget)) { @@ -3840,6 +3841,7 @@ QSize QCleanlooksStyle::sizeFromContents(ContentsType type, const QStyleOption * } newSize += QSize(0, 1); break; +#endif //QT_NO_GROUPBOX case CT_RadioButton: case CT_CheckBox: newSize += QSize(0, 1); diff --git a/src/gui/styles/qcommonstyle.cpp b/src/gui/styles/qcommonstyle.cpp index 70d130a..bf2f68e 100644 --- a/src/gui/styles/qcommonstyle.cpp +++ b/src/gui/styles/qcommonstyle.cpp @@ -4661,7 +4661,7 @@ int QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWid case PM_ToolBarIconSize: ret = qt_guiPlatformPlugin()->platformHint(QGuiPlatformPlugin::PH_ToolBarIconSize); if (!ret) - ret = proxy()->pixelMetric(PM_SmallIconSize, opt, widget); + ret = int(QStyleHelper::dpiScaled(24.)); break; case PM_TabBarIconSize: @@ -5169,13 +5169,12 @@ int QCommonStyle::styleHint(StyleHint sh, const QStyleOption *opt, const QWidget QPixmap QCommonStyle::standardPixmap(StandardPixmap sp, const QStyleOption *option, const QWidget *widget) const { + const bool rtl = (option && option->direction == Qt::RightToLeft) || (!option && QApplication::isRightToLeft()); #ifdef QT_NO_IMAGEFORMAT_PNG - Q_UNUSED(option); Q_UNUSED(widget); Q_UNUSED(sp); #else QPixmap pixmap; - const bool rtl = (option && option->direction == Qt::RightToLeft) || (!option && QApplication::isRightToLeft()); if (QApplication::desktopSettingsAware() && !QIcon::themeName().isEmpty()) { switch (sp) { diff --git a/src/gui/styles/qgtkstyle.cpp b/src/gui/styles/qgtkstyle.cpp index b8d3674..ab0ab3a 100644 --- a/src/gui/styles/qgtkstyle.cpp +++ b/src/gui/styles/qgtkstyle.cpp @@ -1004,32 +1004,27 @@ void QGtkStyle::drawPrimitive(PrimitiveElement element, gtkPainter.setAlphaSupport(false); GtkShadowType shadow = GTK_SHADOW_OUT; GtkStateType state = GTK_STATE_NORMAL; // Only state supported by gtknotebook - if (const QTabWidget *tabwidget = qobject_cast<const QTabWidget*>(widget)) { - // We should introduce QStyleOptionTabWidgetFrameV2 to obtain this information - // No gap if we do not show the actual tabs - QTabBar *tabBar = tabwidget->findChild<QTabBar*>(); - if (tabwidget->count() > 0 && tabBar->isVisible()) { - QRect tabRect = tabBar->tabRect(tabBar->currentIndex()); - int begin = 0, size = 0; - GtkPositionType frameType = GTK_POS_TOP; - QTabBar::Shape shape = frame->shape; - if (shape == QTabBar::RoundedNorth || shape == QTabBar::RoundedSouth) { - begin = option->direction == Qt::LeftToRight ? - frame->leftCornerWidgetSize.width() + tabRect.left() : - frame->rect.width() - frame->tabBarSize.width() + tabRect.left() - - frame->rightCornerWidgetSize.width(); - size = tabRect.width(); - frameType = (shape == QTabBar::RoundedNorth) ? GTK_POS_TOP : GTK_POS_BOTTOM; - } else { - begin = frame->leftCornerWidgetSize.height() + tabRect.top(); - size = tabRect.height(); - frameType = (shape == QTabBar::RoundedWest) ? GTK_POS_LEFT : GTK_POS_RIGHT; - } - gtkPainter.paintBoxGap(gtkNotebook, "notebook", option->rect, state, shadow, frameType, - begin, size, style); - break; // done + bool reverse = (option->direction == Qt::RightToLeft); + QGtk::gtk_widget_set_direction(gtkNotebook, reverse ? GTK_TEXT_DIR_RTL : GTK_TEXT_DIR_LTR); + if (const QStyleOptionTabWidgetFrameV2 *tabframe = qstyleoption_cast<const QStyleOptionTabWidgetFrameV2*>(option)) { + GtkPositionType frameType = GTK_POS_TOP; + QTabBar::Shape shape = frame->shape; + int gapStart = 0; + int gapSize = 0; + if (shape == QTabBar::RoundedNorth || shape == QTabBar::RoundedSouth) { + frameType = (shape == QTabBar::RoundedNorth) ? GTK_POS_TOP : GTK_POS_BOTTOM; + gapStart = tabframe->selectedTabRect.left(); + gapSize = tabframe->selectedTabRect.width(); + } else { + frameType = (shape == QTabBar::RoundedWest) ? GTK_POS_LEFT : GTK_POS_RIGHT; + gapStart = tabframe->selectedTabRect.y(); + gapSize = tabframe->selectedTabRect.height(); } + gtkPainter.paintBoxGap(gtkNotebook, "notebook", option->rect, state, shadow, frameType, + gapStart, gapSize, style); + break; // done } + // Note this is only the fallback option gtkPainter.paintBox(gtkNotebook, "notebook", option->rect, state, shadow, style); } diff --git a/src/gui/styles/qmacstyle_mac.mm b/src/gui/styles/qmacstyle_mac.mm index 63ba641..38c3feb 100644 --- a/src/gui/styles/qmacstyle_mac.mm +++ b/src/gui/styles/qmacstyle_mac.mm @@ -342,12 +342,12 @@ void drawTabBase(QPainter *p, const QStyleOptionTabBarBaseV2 *tbb, const QWidget borderHighlightTop = QColor(207, 207, 207); } p->setPen(borderHighlightTop); - p->drawLine(0, 0, width, 0); + p->drawLine(tabRect.x(), 0, width, 0); p->setPen(borderTop); - p->drawLine(0, 1, width, 1); + p->drawLine(tabRect.x(), 1, width, 1); // center block - QRect centralRect(0, 2, width, height - 2); + QRect centralRect(tabRect.x(), 2, width, height - 2); if (active) { QColor mainColor = QColor(120, 120, 120); p->fillRect(centralRect, mainColor); @@ -370,9 +370,9 @@ void drawTabBase(QPainter *p, const QStyleOptionTabBarBaseV2 *tbb, const QWidget borderBottom = QColor(127, 127, 127); } p->setPen(borderHighlightBottom); - p->drawLine(0, height - 2, width, height - 2); + p->drawLine(tabRect.x(), height - 2, width, height - 2); p->setPen(borderBottom); - p->drawLine(0, height - 1, width, height - 1); + p->drawLine(tabRect.x(), height - 1, width, height - 1); } /* @@ -3637,17 +3637,19 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter break; } } + bool stretchTabs = (!verticalTabs && tabRect.height() > 22 || verticalTabs && tabRect.width() > 22); + switch (tp) { case QStyleOptionTab::Beginning: tdi.position = kHIThemeTabPositionFirst; - if (sp != QStyleOptionTab::NextIsSelected) + if (sp != QStyleOptionTab::NextIsSelected || stretchTabs) tdi.adornment |= kHIThemeTabAdornmentTrailingSeparator; break; case QStyleOptionTab::Middle: tdi.position = kHIThemeTabPositionMiddle; if (selected) tdi.adornment |= kHIThemeTabAdornmentLeadingSeparator; - if (sp != QStyleOptionTab::NextIsSelected) // Also when we're selected. + if (sp != QStyleOptionTab::NextIsSelected || stretchTabs) // Also when we're selected. tdi.adornment |= kHIThemeTabAdornmentTrailingSeparator; break; case QStyleOptionTab::End: @@ -3659,9 +3661,8 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter tdi.position = kHIThemeTabPositionOnly; break; } - // HITheme doesn't stretch its tabs. Therefore we have to cheat and do the job ourselves. - if ((!verticalTabs && tabRect.height() > 21 || verticalTabs && tabRect.width() > 21)) { + if (stretchTabs) { HIRect hirect = CGRectMake(0, 0, 23, 23); QPixmap pm(23, 23); pm.fill(Qt::transparent); diff --git a/src/gui/styles/qplastiquestyle.cpp b/src/gui/styles/qplastiquestyle.cpp index 09f5d36..f880351 100644 --- a/src/gui/styles/qplastiquestyle.cpp +++ b/src/gui/styles/qplastiquestyle.cpp @@ -5514,9 +5514,6 @@ int QPlastiqueStyle::pixelMetric(PixelMetric metric, const QStyleOption *option, case PM_MenuHMargin: ret = 0; break; - case PM_ToolBarIconSize: - ret = 24; - break; case PM_ButtonShiftHorizontal: case PM_ButtonShiftVertical: ret = 1; diff --git a/src/gui/styles/qstyleoption.cpp b/src/gui/styles/qstyleoption.cpp index 061afcc..f5a2b94 100644 --- a/src/gui/styles/qstyleoption.cpp +++ b/src/gui/styles/qstyleoption.cpp @@ -4654,6 +4654,119 @@ QStyleOptionTabWidgetFrame::QStyleOptionTabWidgetFrame(int version) The default value is QSize(-1, -1), i.e. an invalid size. */ + + +/*! + + \class QStyleOptionTabWidgetFrameV2 + \brief The QStyleOptionTabWidgetFrameV2 class is used to describe the + parameters for drawing the frame around a tab widget. + + QStyleOptionTabWidgetFrameV2 contains all the information that + QStyle functions need to draw the frame around QTabWidget. + + For performance reasons, the access to the member variables is + direct (i.e., using the \c . or \c -> operator). This low-level feel + makes the structures straightforward to use and emphasizes that + these are simply parameters used by the style functions. + + For an example demonstrating how style options can be used, see + the \l {widgets/styles}{Styles} example. + + \sa QStyleOption, QTabWidget +*/ + + +/*! + \variable QStyleOptionTabWidgetFrameV2::tabBarRect + \brief the rectangle containing all the tabs + + The default value is a null rectangle, i.e. a rectangle with both + the width and the height set to 0. +*/ + +/*! + \variable QStyleOptionTabWidgetFrameV2::selectedTabRect + \brief the rectangle containing the selected tab + + This rectangle is contained within the tabBarRect. The default + value is a null rectangle, i.e. a rectangle with both the width + and the height set to 0. +*/ + + +/*! + Constructs a QStyleOptionTabWidgetFrameV2, initializing the members + variables to their default values. +*/ + +QStyleOptionTabWidgetFrameV2::QStyleOptionTabWidgetFrameV2() + : QStyleOptionTabWidgetFrame(Version) +{ +} + + +/*! \internal */ +QStyleOptionTabWidgetFrameV2::QStyleOptionTabWidgetFrameV2(int version) + : QStyleOptionTabWidgetFrame(version) +{ +} + + +/*! + Constructs a QStyleOptionTabWidgetFrameV2 copy of the \a other style option + which can be either of the QStyleOptionTabWidgetFrameV2 or + QStyleOptionTabWidgetFrame types. + + If the \a other style option's version is 1, the new style option's \l + selectedTabRect and tabBarRect will contain null rects + + \sa version +*/ +QStyleOptionTabWidgetFrameV2::QStyleOptionTabWidgetFrameV2(const QStyleOptionTabWidgetFrame &other) +{ + QStyleOptionTabWidgetFrameV2::operator=(other); + +} + + +/*! + Assigns the \a other style option to this style option. The \a + other style option can be either of the QStyleOptionFrameV2 or + QStyleOptionFrame types. + + If the \a{other} style option's version is 1, this style option's + \l FrameFeature value is set to \l QStyleOptionFrameV2::None. If + its version is 2, its \l FrameFeature value is simply copied to + this style option. +*/ +QStyleOptionTabWidgetFrameV2 &QStyleOptionTabWidgetFrameV2::operator=(const QStyleOptionTabWidgetFrame &other) +{ + QStyleOptionTabWidgetFrame::operator=(other); + if (const QStyleOptionTabWidgetFrameV2 *f2 = qstyleoption_cast<const QStyleOptionTabWidgetFrameV2 *>(&other)) { + selectedTabRect = f2->selectedTabRect; + tabBarRect = f2->tabBarRect; + } + return *this; +} + + +/*! + \enum QStyleOptionTabWidgetFrameV2::StyleOptionVersion + + This enum is used to hold information about the version of the style option, and + is defined for each QStyleOption subclass. + + \value Version 2 + + The version is used by QStyleOption subclasses to implement + extensions without breaking compatibility. If you use + qstyleoption_cast(), you normally do not need to check it. + + \sa StyleOptionType +*/ + + #endif // QT_NO_TABWIDGET #ifndef QT_NO_TABBAR diff --git a/src/gui/styles/qstyleoption.h b/src/gui/styles/qstyleoption.h index bf8b479..abd52bf 100644 --- a/src/gui/styles/qstyleoption.h +++ b/src/gui/styles/qstyleoption.h @@ -192,8 +192,28 @@ public: protected: QStyleOptionTabWidgetFrame(int version); }; + +class Q_GUI_EXPORT QStyleOptionTabWidgetFrameV2 : public QStyleOptionTabWidgetFrame +{ +public: + enum StyleOptionVersion { Version = 2 }; + + QRect tabBarRect; + QRect selectedTabRect; + + QStyleOptionTabWidgetFrameV2(); + QStyleOptionTabWidgetFrameV2(const QStyleOptionTabWidgetFrameV2 &other) : + QStyleOptionTabWidgetFrame(Version) { *this = other; } + QStyleOptionTabWidgetFrameV2(const QStyleOptionTabWidgetFrame &other); + QStyleOptionTabWidgetFrameV2 &operator=(const QStyleOptionTabWidgetFrame &other); + +protected: + QStyleOptionTabWidgetFrameV2(int version); +}; + #endif + #ifndef QT_NO_TABBAR class Q_GUI_EXPORT QStyleOptionTabBarBase : public QStyleOption { diff --git a/src/gui/styles/qstylesheetstyle.cpp b/src/gui/styles/qstylesheetstyle.cpp index 2d90aa1..ae1d33a 100644 --- a/src/gui/styles/qstylesheetstyle.cpp +++ b/src/gui/styles/qstylesheetstyle.cpp @@ -4325,7 +4325,7 @@ void QStyleSheetStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *op QRenderRule subRule = renderRule(w, opt, PseudoElement_TabWidgetPane); if (subRule.hasNativeBorder()) { subRule.drawBackground(p, opt->rect); - QStyleOptionTabWidgetFrame frmCopy(*frm); + QStyleOptionTabWidgetFrameV2 frmCopy(*frm); subRule.configurePalette(&frmCopy.palette, QPalette::WindowText, QPalette::Window); baseStyle()->drawPrimitive(pe, &frmCopy, p, w); } else { diff --git a/src/gui/styles/qwindowsstyle.cpp b/src/gui/styles/qwindowsstyle.cpp index 0f72440..5cf738e 100644 --- a/src/gui/styles/qwindowsstyle.cpp +++ b/src/gui/styles/qwindowsstyle.cpp @@ -454,9 +454,6 @@ int QWindowsStyle::pixelMetric(PixelMetric pm, const QStyleOption *opt, const QW ret = proxy()->pixelMetric(PM_LargeIconSize, opt, widget); break; - case PM_ToolBarIconSize: - ret = int(QStyleHelper::dpiScaled(24.)); - break; case PM_DockWidgetTitleMargin: ret = int(QStyleHelper::dpiScaled(2.)); break; diff --git a/src/gui/styles/qwindowsvistastyle.cpp b/src/gui/styles/qwindowsvistastyle.cpp index 6cb8b40..9f5440c 100644 --- a/src/gui/styles/qwindowsvistastyle.cpp +++ b/src/gui/styles/qwindowsvistastyle.cpp @@ -159,7 +159,7 @@ QWindowsVistaStyle::QWindowsVistaStyle() } //convert Qt state flags to uxtheme button states -int buttonStateId(int flags, int partId) +static int buttonStateId(int flags, int partId) { int stateId = 0; if (partId == BP_RADIOBUTTON || partId == BP_CHECKBOX) { @@ -190,7 +190,7 @@ int buttonStateId(int flags, int partId) return stateId; } -void Animation::paint(QPainter *painter, const QStyleOption *option) +void QWindowsVistaAnimation::paint(QPainter *painter, const QStyleOption *option) { Q_UNUSED(option); Q_UNUSED(painter); @@ -205,7 +205,7 @@ void Animation::paint(QPainter *painter, const QStyleOption *option) + ((1-alpha)*_secondaryImage) */ -void Animation::drawBlendedImage(QPainter *painter, QRect rect, float alpha) { +void QWindowsVistaAnimation::drawBlendedImage(QPainter *painter, QRect rect, float alpha) { if (_secondaryImage.isNull() || _primaryImage.isNull()) return; @@ -251,7 +251,7 @@ void Animation::drawBlendedImage(QPainter *painter, QRect rect, float alpha) { initial and final state of the transition, depending on the time difference between _startTime and current time. */ -void Transition::paint(QPainter *painter, const QStyleOption *option) +void QWindowsVistaTransition::paint(QPainter *painter, const QStyleOption *option) { float alpha = 1.0; if (_duration > 0) { @@ -278,7 +278,7 @@ void Transition::paint(QPainter *painter, const QStyleOption *option) secondary pulse images depending on the time difference between _startTime and current time. */ -void Pulse::paint(QPainter *painter, const QStyleOption *option) +void QWindowsVistaPulse::paint(QPainter *painter, const QStyleOption *option) { float alpha = 1.0; if (_duration > 0) { @@ -393,8 +393,8 @@ void QWindowsVistaStyle::drawPrimitive(PrimitiveElement element, const QStyleOpt startImage.fill(0); QPainter startPainter(&startImage); - Animation *anim = d->widgetAnimation(widget); - Transition *t = new Transition; + QWindowsVistaAnimation *anim = d->widgetAnimation(widget); + QWindowsVistaTransition *t = new QWindowsVistaTransition; t->setWidget(w); // If we have a running animation on the widget already, we will use that to paint the initial @@ -531,7 +531,7 @@ void QWindowsVistaStyle::drawPrimitive(PrimitiveElement element, const QStyleOpt case PE_IndicatorCheckBox: case PE_IndicatorRadioButton: { - if (Animation *a = d->widgetAnimation(widget)) { + if (QWindowsVistaAnimation *a = d->widgetAnimation(widget)) { a->paint(painter, option); } else { QWindowsXPStyle::drawPrimitive(element, option, painter, widget); @@ -644,7 +644,7 @@ void QWindowsVistaStyle::drawPrimitive(PrimitiveElement element, const QStyleOpt break; case PE_FrameLineEdit: - if (Animation *anim = d->widgetAnimation(widget)) { + if (QWindowsVistaAnimation *anim = d->widgetAnimation(widget)) { anim->paint(painter, option); } else { QPainter *p = painter; @@ -929,13 +929,13 @@ void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption if (doTransition) { QImage startImage(option->rect.size(), QImage::Format_ARGB32_Premultiplied); QImage endImage(option->rect.size(), QImage::Format_ARGB32_Premultiplied); - Animation *anim = d->widgetAnimation(widget); + QWindowsVistaAnimation *anim = d->widgetAnimation(widget); QStyleOptionButton opt = *button; opt.state = (QStyle::State)oldState; startImage.fill(0); - Transition *t = new Transition; + QWindowsVistaTransition *t = new QWindowsVistaTransition; t->setWidget(w); QPainter startPainter(&startImage); @@ -972,7 +972,7 @@ void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(option)) { - if (Animation *anim = d->widgetAnimation(widget)) { + if (QWindowsVistaAnimation *anim = d->widgetAnimation(widget)) { anim->paint(painter, option); } else { name = QLatin1String("BUTTON"); @@ -999,14 +999,14 @@ void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption !(state & (State_Sunken | State_On)) && !(state & State_MouseOver) && (state & State_Enabled) && (state & State_Active)) { - Animation *anim = d->widgetAnimation(widget); + QWindowsVistaAnimation *anim = d->widgetAnimation(widget); if (!anim && widget) { QImage startImage(option->rect.size(), QImage::Format_ARGB32_Premultiplied); startImage.fill(0); QImage alternateImage(option->rect.size(), QImage::Format_ARGB32_Premultiplied); alternateImage.fill(0); - Pulse *pulse = new Pulse; + QWindowsVistaPulse *pulse = new QWindowsVistaPulse; pulse->setWidget(const_cast<QWidget*>(widget)); QPainter startPainter(&startImage); @@ -1079,7 +1079,7 @@ void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption if (const QProgressBar *progressbar = qobject_cast<const QProgressBar *>(widget)) { if (((progressbar->value() > 0 && d->transitionsEnabled()) || isIndeterminate)) { if (!d->widgetAnimation(progressbar) && progressbar->value() < progressbar->maximum()) { - Animation *a = new Animation; + QWindowsVistaAnimation *a = new QWindowsVistaAnimation; a->setWidget(const_cast<QWidget*>(widget)); a->setStartTime(QTime::currentTime()); d->startAnimation(a); @@ -1095,7 +1095,7 @@ void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption QTime current = QTime::currentTime(); if (isIndeterminate) { - if (Animation *a = d->widgetAnimation(widget)) { + if (QWindowsVistaAnimation *a = d->widgetAnimation(widget)) { int glowSize = 120; int animationWidth = glowSize * 2 + (vertical ? theme.rect.height() : theme.rect.width()); int animOffset = a->startTime().msecsTo(current) / 4; @@ -1165,7 +1165,7 @@ void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption } d->drawBackground(theme); - if (Animation *a = d->widgetAnimation(widget)) { + if (QWindowsVistaAnimation *a = d->widgetAnimation(widget)) { int glowSize = 140; int animationWidth = glowSize * 2 + (vertical ? theme.rect.height() : theme.rect.width()); int animOffset = a->startTime().msecsTo(current) / 4; @@ -1603,8 +1603,8 @@ void QWindowsVistaStyle::drawComplexControl(ComplexControl control, const QStyle if (doTransition) { QImage startImage(option->rect.size(), QImage::Format_ARGB32_Premultiplied); QImage endImage(option->rect.size(), QImage::Format_ARGB32_Premultiplied); - Animation *anim = d->widgetAnimation(widget); - Transition *t = new Transition; + QWindowsVistaAnimation *anim = d->widgetAnimation(widget); + QWindowsVistaTransition *t = new QWindowsVistaTransition; t->setWidget(w); if (!anim) { if (const QStyleOptionComboBox *combo = qstyleoption_cast<const QStyleOptionComboBox*>(option)) { @@ -1651,7 +1651,7 @@ void QWindowsVistaStyle::drawComplexControl(ComplexControl control, const QStyle t->setDuration(500); } - if (Animation *anim = d->widgetAnimation(widget)) { + if (QWindowsVistaAnimation *anim = d->widgetAnimation(widget)) { anim->paint(painter, option); return; } @@ -2217,14 +2217,15 @@ QRect QWindowsVistaStyle::subControlRect(ComplexControl control, const QStyleOpt int xpos = x; int margin = cb->frame ? 3 : 0; int bmarg = cb->frame ? 2 : 0; - xpos += wi - bmarg - 16; + int arrowButtonWidth = bmarg + 16; + xpos += wi - arrowButtonWidth; switch (subControl) { case SC_ComboBoxFrame: rect = cb->rect; break; case SC_ComboBoxArrow: - rect.setRect(xpos, y , wi - xpos, he); + rect.setRect(xpos, y , arrowButtonWidth, he); break; case SC_ComboBoxEditField: rect.setRect(x + margin, y + margin, wi - 2 * margin - 16, he - 2 * margin); @@ -2533,7 +2534,7 @@ void QWindowsVistaStylePrivate::timerEvent() !animations[i]->running() || !QWindowsVistaStylePrivate::useVista()) { - Animation *a = animations.takeAt(i); + QWindowsVistaAnimation *a = animations.takeAt(i); delete a; } } @@ -2546,14 +2547,14 @@ void QWindowsVistaStylePrivate::stopAnimation(const QWidget *w) { for (int i = animations.size() - 1 ; i >= 0 ; --i) { if (animations[i]->widget() == w) { - Animation *a = animations.takeAt(i); + QWindowsVistaAnimation *a = animations.takeAt(i); delete a; break; } } } -void QWindowsVistaStylePrivate::startAnimation(Animation *t) +void QWindowsVistaStylePrivate::startAnimation(QWindowsVistaAnimation *t) { Q_Q(QWindowsVistaStyle); stopAnimation(t->widget()); @@ -2575,11 +2576,11 @@ bool QWindowsVistaStylePrivate::transitionsEnabled() const } -Animation * QWindowsVistaStylePrivate::widgetAnimation(const QWidget *widget) const +QWindowsVistaAnimation * QWindowsVistaStylePrivate::widgetAnimation(const QWidget *widget) const { if (!widget) return 0; - foreach (Animation *a, animations) { + foreach (QWindowsVistaAnimation *a, animations) { if (a->widget() == widget) return a; } diff --git a/src/gui/styles/qwindowsvistastyle_p.h b/src/gui/styles/qwindowsvistastyle_p.h index e9bbb77..04823c1 100644 --- a/src/gui/styles/qwindowsvistastyle_p.h +++ b/src/gui/styles/qwindowsvistastyle_p.h @@ -136,11 +136,11 @@ QT_BEGIN_NAMESPACE #define TDLG_SECONDARYPANEL 8 #endif -class Animation +class QWindowsVistaAnimation { public : - Animation() : _running(true) { } - virtual ~Animation() { } + QWindowsVistaAnimation() : _running(true) { } + virtual ~QWindowsVistaAnimation() { } QWidget * widget() const { return _widget; } bool running() const { return _running; } const QTime &startTime() const { return _startTime; } @@ -161,11 +161,11 @@ protected: // Handles state transition animations -class Transition : public Animation +class QWindowsVistaTransition : public QWindowsVistaAnimation { public : - Transition() : Animation() {} - virtual ~Transition() { } + QWindowsVistaTransition() : QWindowsVistaAnimation() {} + virtual ~QWindowsVistaTransition() { } void setDuration(int duration) { _duration = duration; } void setStartImage(const QImage &image) { _primaryImage = image; } void setEndImage(const QImage &image) { _secondaryImage = image; } @@ -176,11 +176,11 @@ public : // Handles pulse animations (default buttons) -class Pulse: public Animation +class QWindowsVistaPulse: public QWindowsVistaAnimation { public : - Pulse() : Animation() {} - virtual ~Pulse() { } + QWindowsVistaPulse() : QWindowsVistaAnimation() {} + virtual ~QWindowsVistaPulse() { } void setDuration(int duration) { _duration = duration; } void setPrimaryImage(const QImage &image) { _primaryImage = image; } void setAlternateImage(const QImage &image) { _secondaryImage = image; } @@ -199,15 +199,15 @@ public: ~QWindowsVistaStylePrivate(); static bool resolveSymbols(); static inline bool useVista(); - void startAnimation(Animation *); + void startAnimation(QWindowsVistaAnimation *); void stopAnimation(const QWidget *); - Animation* widgetAnimation(const QWidget *) const; + QWindowsVistaAnimation* widgetAnimation(const QWidget *) const; void timerEvent(); bool transitionsEnabled() const; QWidget *treeViewHelper(); private: - QList <Animation*> animations; + QList <QWindowsVistaAnimation*> animations; QBasicTimer animationTimer; QWidget *m_treeViewHelper; }; diff --git a/src/gui/styles/qwindowsxpstyle.cpp b/src/gui/styles/qwindowsxpstyle.cpp index 9ef30e5..9fd9ce9 100644 --- a/src/gui/styles/qwindowsxpstyle.cpp +++ b/src/gui/styles/qwindowsxpstyle.cpp @@ -47,6 +47,7 @@ #include <private/qpaintengine_raster_p.h> #include <private/qapplication_p.h> #include <private/qstylehelper_p.h> +#include <private/qwidget_p.h> #include <qlibrary.h> #include <qpainter.h> #include <qpaintengine.h> @@ -299,7 +300,11 @@ HWND QWindowsXPStylePrivate::winId(const QWidget *widget) if (!limboWidget) { limboWidget = new QWidget(0); + limboWidget->createWinId(); limboWidget->setObjectName(QLatin1String("xp_limbo_widget")); + // We dont need this internal widget to appear in QApplication::topLevelWidgets() + if (QWidgetPrivate::allWidgets) + QWidgetPrivate::allWidgets->remove(limboWidget); } return limboWidget->winId(); @@ -1577,7 +1582,7 @@ case PE_Frame: // This should work, but currently there's an error in the ::drawBackgroundDirectly() // code, when using the HDC directly.. if (useGradient) { - QStyleOptionTabWidgetFrame frameOpt = *tab; + QStyleOptionTabWidgetFrameV2 frameOpt = *tab; frameOpt.rect = widget->rect(); QRect contentsRect = subElementRect(SE_TabWidgetTabContents, &frameOpt, widget); QRegion reg = option->rect; @@ -2836,8 +2841,8 @@ void QWindowsXPStyle::drawComplexControl(ComplexControl cc, const QStyleOptionCo State bflags = toolbutton->state & ~State_Sunken; State mflags = bflags; - - if (bflags & State_AutoRaise) { + bool autoRaise = flags & State_AutoRaise; + if (autoRaise) { if (!(bflags & State_MouseOver) || !(bflags & State_Enabled)) { bflags &= ~State_Raised; } @@ -2856,8 +2861,8 @@ void QWindowsXPStyle::drawComplexControl(ComplexControl cc, const QStyleOptionCo QStyleOption tool(0); tool.palette = toolbutton->palette; if (toolbutton->subControls & SC_ToolButton) { - if (flags & (State_Sunken | State_On | State_Raised) || !(flags & State_AutoRaise)) { - if (toolbutton->features & QStyleOptionToolButton::MenuButtonPopup) { + if (flags & (State_Sunken | State_On | State_Raised) || !autoRaise) { + if (toolbutton->features & QStyleOptionToolButton::MenuButtonPopup && autoRaise) { XPThemeData theme(widget, p, QLatin1String("TOOLBAR")); theme.partId = TP_SPLITBUTTON; theme.rect = button; @@ -2876,13 +2881,12 @@ void QWindowsXPStyle::drawComplexControl(ComplexControl cc, const QStyleOptionCo theme.stateId = stateId; d->drawBackground(theme); } else { - tool.rect = button; + tool.rect = option->rect; tool.state = bflags; - if (widget && !qobject_cast<QToolBar*>(widget->parentWidget()) - && !(bflags & State_AutoRaise)) - proxy()->drawPrimitive(PE_PanelButtonBevel, &tool, p, widget); - else + if (autoRaise) // for tool bars proxy()->drawPrimitive(PE_PanelButtonTool, &tool, p, widget); + else + proxy()->drawPrimitive(PE_PanelButtonBevel, &tool, p, widget); } } } @@ -2899,13 +2903,40 @@ void QWindowsXPStyle::drawComplexControl(ComplexControl cc, const QStyleOptionCo QStyleOptionToolButton label = *toolbutton; label.state = bflags; int fw = 2; + if (!autoRaise) + label.state &= ~State_Sunken; label.rect = button.adjusted(fw, fw, -fw, -fw); proxy()->drawControl(CE_ToolButtonLabel, &label, p, widget); if (toolbutton->subControls & SC_ToolButtonMenu) { tool.rect = menuarea; tool.state = mflags; - proxy()->drawPrimitive(PE_IndicatorButtonDropDown, &tool, p, widget); + if (autoRaise) { + proxy()->drawPrimitive(PE_IndicatorButtonDropDown, &tool, p, widget); + } else { + tool.state = mflags; + menuarea.adjust(-2, 0, 0, 0); + // Draw menu button + if ((bflags & State_Sunken) != (mflags & State_Sunken)){ + p->save(); + p->setClipRect(menuarea); + tool.rect = option->rect; + proxy()->drawPrimitive(PE_PanelButtonBevel, &tool, p, 0); + p->restore(); + } + // Draw arrow + p->save(); + p->setPen(option->palette.dark()); + p->drawLine(menuarea.left(), menuarea.top() + 3, + menuarea.left(), menuarea.bottom() - 3); + p->setPen(option->palette.light()); + p->drawLine(menuarea.left() - 1, menuarea.top() + 3, + menuarea.left() - 1, menuarea.bottom() - 3); + + tool.rect = menuarea.adjusted(2, 3, -2, -1); + proxy()->drawPrimitive(PE_IndicatorArrowDown, &tool, p, widget); + p->restore(); + } } else if (toolbutton->features & QStyleOptionToolButton::HasMenu) { int mbi = proxy()->pixelMetric(PM_MenuButtonIndicator, toolbutton, widget); QRect ir = toolbutton->rect; diff --git a/src/gui/text/qfont.cpp b/src/gui/text/qfont.cpp index 1b4c380..447087c 100644 --- a/src/gui/text/qfont.cpp +++ b/src/gui/text/qfont.cpp @@ -2324,22 +2324,22 @@ QDataStream &operator>>(QDataStream &s, QFont &font) */ QFontInfo::QFontInfo(const QFont &font) : d(font.d.data()) -{ d->ref.ref(); } +{ +} /*! Constructs a copy of \a fi. */ QFontInfo::QFontInfo(const QFontInfo &fi) - : d(fi.d) -{ d->ref.ref(); } + : d(fi.d.data()) +{ +} /*! Destroys the font info object. */ QFontInfo::~QFontInfo() { - if (!d->ref.deref()) - delete d; } /*! @@ -2347,7 +2347,7 @@ QFontInfo::~QFontInfo() */ QFontInfo &QFontInfo::operator=(const QFontInfo &fi) { - qAtomicAssign(d, fi.d); + d = fi.d.data(); return *this; } diff --git a/src/gui/text/qfontengine_qpf.cpp b/src/gui/text/qfontengine_qpf.cpp index 6ff0fbd..94974fc 100644 --- a/src/gui/text/qfontengine_qpf.cpp +++ b/src/gui/text/qfontengine_qpf.cpp @@ -819,7 +819,7 @@ FT_Face QFontEngineQPF::lockFace() const FT_Face face = freetype->face; // ### not perfect - const int ysize = int(fontDef.pixelSize) << 6; + const int ysize = qRound(fontDef.pixelSize * qreal(64)); const int xsize = ysize; if (freetype->xsize != xsize || freetype->ysize != ysize) { diff --git a/src/gui/text/qfontinfo.h b/src/gui/text/qfontinfo.h index 335d761..0998949 100644 --- a/src/gui/text/qfontinfo.h +++ b/src/gui/text/qfontinfo.h @@ -43,6 +43,7 @@ #define QFONTINFO_H #include <QtGui/qfont.h> +#include <QtCore/qsharedpointer.h> QT_BEGIN_HEADER @@ -77,7 +78,7 @@ public: bool exactMatch() const; private: - QFontPrivate *d; + QExplicitlySharedDataPointer<QFontPrivate> d; }; QT_END_NAMESPACE diff --git a/src/gui/text/qfontmetrics.cpp b/src/gui/text/qfontmetrics.cpp index ce122aa..b8c1b33 100644 --- a/src/gui/text/qfontmetrics.cpp +++ b/src/gui/text/qfontmetrics.cpp @@ -165,7 +165,6 @@ extern int qt_defaultDpi(); QFontMetrics::QFontMetrics(const QFont &font) : d(font.d.data()) { - d->ref.ref(); } /*! @@ -196,7 +195,6 @@ QFontMetrics::QFontMetrics(const QFont &font, QPaintDevice *paintdevice) d->screen = screen; } else { d = font.d.data(); - d->ref.ref(); } } @@ -205,8 +203,9 @@ QFontMetrics::QFontMetrics(const QFont &font, QPaintDevice *paintdevice) Constructs a copy of \a fm. */ QFontMetrics::QFontMetrics(const QFontMetrics &fm) - : d(fm.d) -{ d->ref.ref(); } + : d(fm.d.data()) +{ +} /*! Destroys the font metrics object and frees all allocated @@ -214,8 +213,6 @@ QFontMetrics::QFontMetrics(const QFontMetrics &fm) */ QFontMetrics::~QFontMetrics() { - if (!d->ref.deref()) - delete d; } /*! @@ -223,7 +220,7 @@ QFontMetrics::~QFontMetrics() */ QFontMetrics &QFontMetrics::operator=(const QFontMetrics &fm) { - qAtomicAssign(d, fm.d); + d = fm.d.data(); return *this; } @@ -536,7 +533,7 @@ int QFontMetrics::width(const QString &text, int len) const if (len == 0) return 0; - QTextEngine layout(text, d); + QTextEngine layout(text, d.data()); layout.ignoreBidi = true; return qRound(layout.width(0, len)); } @@ -612,7 +609,7 @@ int QFontMetrics::charWidth(const QString &text, int pos) const int from = qMax(0, pos - 8); int to = qMin(text.length(), pos + 8); QString cstr = QString::fromRawData(text.unicode() + from, to - from); - QTextEngine layout(cstr, d); + QTextEngine layout(cstr, d.data()); layout.ignoreBidi = true; layout.itemize(); width = qRound(layout.width(pos-from, 1)); @@ -661,7 +658,7 @@ QRect QFontMetrics::boundingRect(const QString &text) const if (text.length() == 0) return QRect(); - QTextEngine layout(text, d); + QTextEngine layout(text, d.data()); layout.ignoreBidi = true; layout.itemize(); glyph_metrics_t gm = layout.boundingBox(0, text.length()); @@ -770,7 +767,7 @@ QRect QFontMetrics::boundingRect(const QRect &rect, int flags, const QString &te QRectF rb; QRectF rr(rect); - qt_format_text(QFont(d), rr, flags | Qt::TextDontPrint, text, &rb, tabStops, tabArray, + qt_format_text(QFont(d.data()), rr, flags | Qt::TextDontPrint, text, &rb, tabStops, tabArray, tabArrayLen, 0); return rb.toAlignedRect(); @@ -831,7 +828,7 @@ QRect QFontMetrics::tightBoundingRect(const QString &text) const if (text.length() == 0) return QRect(); - QTextEngine layout(text, d); + QTextEngine layout(text, d.data()); layout.ignoreBidi = true; layout.itemize(); glyph_metrics_t gm = layout.tightBoundingBox(0, text.length()); @@ -876,7 +873,7 @@ QString QFontMetrics::elidedText(const QString &text, Qt::TextElideMode mode, in } _text = _text.mid(posA); } - QStackTextEngine engine(_text, QFont(d)); + QStackTextEngine engine(_text, QFont(d.data())); return engine.elidedText(mode, width, flags); } @@ -989,9 +986,8 @@ int QFontMetrics::lineWidth() const from the given \a fontMetrics object. */ QFontMetricsF::QFontMetricsF(const QFontMetrics &fontMetrics) - : d(fontMetrics.d) + : d(fontMetrics.d.data()) { - d->ref.ref(); } /*! @@ -1001,7 +997,7 @@ QFontMetricsF::QFontMetricsF(const QFontMetrics &fontMetrics) */ QFontMetricsF &QFontMetricsF::operator=(const QFontMetrics &other) { - qAtomicAssign(d, other.d); + d = other.d.data(); return *this; } @@ -1021,7 +1017,6 @@ QFontMetricsF &QFontMetricsF::operator=(const QFontMetrics &other) QFontMetricsF::QFontMetricsF(const QFont &font) : d(font.d.data()) { - d->ref.ref(); } /*! @@ -1052,7 +1047,6 @@ QFontMetricsF::QFontMetricsF(const QFont &font, QPaintDevice *paintdevice) d->screen = screen; } else { d = font.d.data(); - d->ref.ref(); } } @@ -1061,8 +1055,9 @@ QFontMetricsF::QFontMetricsF(const QFont &font, QPaintDevice *paintdevice) Constructs a copy of \a fm. */ QFontMetricsF::QFontMetricsF(const QFontMetricsF &fm) - : d(fm.d) -{ d->ref.ref(); } + : d(fm.d.data()) +{ +} /*! Destroys the font metrics object and frees all allocated @@ -1070,8 +1065,6 @@ QFontMetricsF::QFontMetricsF(const QFontMetricsF &fm) */ QFontMetricsF::~QFontMetricsF() { - if (!d->ref.deref()) - delete d; } /*! @@ -1079,7 +1072,7 @@ QFontMetricsF::~QFontMetricsF() */ QFontMetricsF &QFontMetricsF::operator=(const QFontMetricsF &fm) { - qAtomicAssign(d, fm.d); + d = fm.d.data(); return *this; } @@ -1374,7 +1367,7 @@ qreal QFontMetricsF::rightBearing(QChar ch) const */ qreal QFontMetricsF::width(const QString &text) const { - QTextEngine layout(text, d); + QTextEngine layout(text, d.data()); layout.ignoreBidi = true; layout.itemize(); return layout.width(0, text.length()).toReal(); @@ -1451,7 +1444,7 @@ QRectF QFontMetricsF::boundingRect(const QString &text) const if (len == 0) return QRectF(); - QTextEngine layout(text, d); + QTextEngine layout(text, d.data()); layout.ignoreBidi = true; layout.itemize(); glyph_metrics_t gm = layout.boundingBox(0, len); @@ -1559,7 +1552,7 @@ QRectF QFontMetricsF::boundingRect(const QRectF &rect, int flags, const QString& tabArrayLen++; QRectF rb; - qt_format_text(QFont(d), rect, flags | Qt::TextDontPrint, text, &rb, tabStops, tabArray, + qt_format_text(QFont(d.data()), rect, flags | Qt::TextDontPrint, text, &rb, tabStops, tabArray, tabArrayLen, 0); return rb; } @@ -1624,7 +1617,7 @@ QRectF QFontMetricsF::tightBoundingRect(const QString &text) const if (text.length() == 0) return QRect(); - QTextEngine layout(text, d); + QTextEngine layout(text, d.data()); layout.ignoreBidi = true; layout.itemize(); glyph_metrics_t gm = layout.tightBoundingBox(0, text.length()); @@ -1649,7 +1642,7 @@ QRectF QFontMetricsF::tightBoundingRect(const QString &text) const */ QString QFontMetricsF::elidedText(const QString &text, Qt::TextElideMode mode, qreal width, int flags) const { - QStackTextEngine engine(text, QFont(d)); + QStackTextEngine engine(text, QFont(d.data())); return engine.elidedText(mode, QFixed::fromReal(width), flags); } diff --git a/src/gui/text/qfontmetrics.h b/src/gui/text/qfontmetrics.h index 1147e3a..23200c5 100644 --- a/src/gui/text/qfontmetrics.h +++ b/src/gui/text/qfontmetrics.h @@ -43,6 +43,7 @@ #define QFONTMETRICS_H #include <QtGui/qfont.h> +#include <QtCore/qsharedpointer.h> #ifndef QT_INCLUDE_COMPAT #include <QtCore/qrect.h> #endif @@ -131,7 +132,7 @@ private: friend class QFontMetricsF; friend class QStackTextEngine; - QFontPrivate *d; + QExplicitlySharedDataPointer<QFontPrivate> d; }; @@ -187,7 +188,7 @@ public: inline bool operator !=(const QFontMetricsF &other) const { return !operator==(other); } private: - QFontPrivate *d; + QExplicitlySharedDataPointer<QFontPrivate> d; }; QT_END_NAMESPACE diff --git a/src/gui/text/qtextcontrol.cpp b/src/gui/text/qtextcontrol.cpp index ee8b751..3f6545c 100644 --- a/src/gui/text/qtextcontrol.cpp +++ b/src/gui/text/qtextcontrol.cpp @@ -1619,9 +1619,11 @@ void QTextControlPrivate::mouseMoveEvent(Qt::MouseButtons buttons, const QPointF if (cursor.position() != oldCursorPos) emit q->cursorPositionChanged(); _q_updateCurrentCharFormatAndSelection(); +#ifndef QT_NO_IM if (QInputContext *ic = inputContext()) { ic->update(); } +#endif //QT_NO_IM } else { //emit q->visibilityRequest(QRectF(mousePos, QSizeF(1, 1))); if (cursor.position() != oldCursorPos) diff --git a/src/gui/text/qtextdocument.cpp b/src/gui/text/qtextdocument.cpp index a8956b8..1aad385 100644 --- a/src/gui/text/qtextdocument.cpp +++ b/src/gui/text/qtextdocument.cpp @@ -140,7 +140,7 @@ bool Qt::mightBeRichText(const QString& text) /*! Converts the plain text string \a plain to a HTML string with - HTML metacharacters \c{<}, \c{>}, and \c{&} replaced by HTML + HTML metacharacters \c{<}, \c{>}, \c{&}, and \c{"} replaced by HTML entities. Example: @@ -162,6 +162,8 @@ QString Qt::escape(const QString& plain) rich += QLatin1String(">"); else if (plain.at(i) == QLatin1Char('&')) rich += QLatin1String("&"); + else if (plain.at(i) == QLatin1Char('"')) + rich += QLatin1String("""); else rich += plain.at(i); } @@ -956,6 +958,8 @@ QString QTextDocument::defaultStyleSheet() const /*! Returns true if undo is available; otherwise returns false. + + \sa isRedoAvailable(), availableUndoSteps() */ bool QTextDocument::isUndoAvailable() const { @@ -965,6 +969,8 @@ bool QTextDocument::isUndoAvailable() const /*! Returns true if redo is available; otherwise returns false. + + \sa isUndoAvailable(), availableRedoSteps() */ bool QTextDocument::isRedoAvailable() const { @@ -972,6 +978,29 @@ bool QTextDocument::isRedoAvailable() const return d->isRedoAvailable(); } +/*! \since 4.6 + + Returns the number of available undo steps. + + \sa isUndoAvailable() +*/ +int QTextDocument::availableUndoSteps() const +{ + Q_D(const QTextDocument); + return d->availableUndoSteps(); +} + +/*! \since 4.6 + + Returns the number of available redo steps. + + \sa isRedoAvailable() +*/ +int QTextDocument::availableRedoSteps() const +{ + Q_D(const QTextDocument); + return d->availableRedoSteps(); +} /*! \since 4.4 @@ -2038,7 +2067,7 @@ void QTextHtmlExporter::emitAttribute(const char *attribute, const QString &valu html += QLatin1Char(' '); html += QLatin1String(attribute); html += QLatin1String("=\""); - html += value; + html += Qt::escape(value); html += QLatin1Char('"'); } @@ -2302,12 +2331,12 @@ void QTextHtmlExporter::emitFontFamily(const QString &family) { html += QLatin1String(" font-family:"); - QLatin1Char quote('\''); - if (family.contains(quote)) - quote = QLatin1Char('\"'); + QLatin1String quote("\'"); + if (family.contains(QLatin1Char('\''))) + quote = QLatin1String("""); html += quote; - html += family; + html += Qt::escape(family); html += quote; html += QLatin1Char(';'); } @@ -2341,13 +2370,13 @@ void QTextHtmlExporter::emitFragment(const QTextFragment &fragment) const QString name = format.anchorName(); if (!name.isEmpty()) { html += QLatin1String("<a name=\""); - html += name; + html += Qt::escape(name); html += QLatin1String("\"></a>"); } const QString href = format.anchorHref(); if (!href.isEmpty()) { html += QLatin1String("<a href=\""); - html += href; + html += Qt::escape(href); html += QLatin1String("\">"); closeAnchor = true; } diff --git a/src/gui/text/qtextdocument.h b/src/gui/text/qtextdocument.h index e52716a..d217a4d 100644 --- a/src/gui/text/qtextdocument.h +++ b/src/gui/text/qtextdocument.h @@ -142,6 +142,9 @@ public: bool isUndoAvailable() const; bool isRedoAvailable() const; + int availableUndoSteps() const; + int availableRedoSteps() const; + int revision() const; void setDocumentLayout(QAbstractTextDocumentLayout *layout); diff --git a/src/gui/text/qtextdocument_p.h b/src/gui/text/qtextdocument_p.h index ce25c57..c10855b 100644 --- a/src/gui/text/qtextdocument_p.h +++ b/src/gui/text/qtextdocument_p.h @@ -212,6 +212,9 @@ public: inline bool isUndoAvailable() const { return undoEnabled && undoState > 0; } inline bool isRedoAvailable() const { return undoEnabled && undoState < undoStack.size(); } + inline int availableUndoSteps() const { return undoEnabled ? undoState : 0; } + inline int availableRedoSteps() const { return undoEnabled ? qMax(undoStack.size() - undoState - 1, 0) : 0; } + inline QString buffer() const { return text; } QString plainText() const; inline int length() const { return fragments.length(); } diff --git a/src/gui/widgets/qcombobox.cpp b/src/gui/widgets/qcombobox.cpp index ae56d36..1879db4 100644 --- a/src/gui/widgets/qcombobox.cpp +++ b/src/gui/widgets/qcombobox.cpp @@ -192,6 +192,8 @@ void QComboBoxPrivate::_q_modelReset() lineEdit->setText(QString()); updateLineEditGeometry(); } + if (currentIndex.row() != indexBeforeChange) + _q_emitCurrentIndexChanged(currentIndex); q->update(); } @@ -487,18 +489,6 @@ void QComboBoxPrivateContainer::viewDestroyed() } /* - Sets currentIndex on entered if the LeftButton is not pressed. This - means that if mouseTracking(...) is on, we setCurrentIndex and select - even when LeftButton is not pressed. -*/ -void QComboBoxPrivateContainer::setCurrentIndex(const QModelIndex &index) -{ - if (QComboBoxDelegate::isSeparator(index)) - return; - view->setCurrentIndex(index); -} - -/* Returns the item view used for the combobox popup. */ QAbstractItemView *QComboBoxPrivateContainer::itemView() const @@ -523,8 +513,6 @@ void QComboBoxPrivateContainer::setItemView(QAbstractItemView *itemView) disconnect(view->verticalScrollBar(), SIGNAL(rangeChanged(int,int)), this, SLOT(updateScrollers())); #endif - disconnect(view, SIGNAL(entered(QModelIndex)), - this, SLOT(setCurrentIndex(QModelIndex))); disconnect(view, SIGNAL(destroyed()), this, SLOT(viewDestroyed())); @@ -561,8 +549,6 @@ void QComboBoxPrivateContainer::setItemView(QAbstractItemView *itemView) connect(view->verticalScrollBar(), SIGNAL(rangeChanged(int,int)), this, SLOT(updateScrollers())); #endif - connect(view, SIGNAL(entered(QModelIndex)), - this, SLOT(setCurrentIndex(QModelIndex))); connect(view, SIGNAL(destroyed()), this, SLOT(viewDestroyed())); @@ -653,16 +639,20 @@ bool QComboBoxPrivateContainer::eventFilter(QObject *o, QEvent *e) break; } break; - case QEvent::MouseMove: { + case QEvent::MouseMove: if (isVisible()) { QMouseEvent *m = static_cast<QMouseEvent *>(e); QWidget *widget = static_cast<QWidget *>(o); QPoint vector = widget->mapToGlobal(m->pos()) - initialClickPosition; if (vector.manhattanLength() > 9 && blockMouseReleaseTimer.isActive()) blockMouseReleaseTimer.stop(); + QModelIndex indexUnderMouse = view->indexAt(m->pos()); + if (indexUnderMouse.isValid() && indexUnderMouse != view->currentIndex() + && !QComboBoxDelegate::isSeparator(indexUnderMouse)) { + view->setCurrentIndex(indexUnderMouse); + } } break; - } case QEvent::MouseButtonRelease: { QMouseEvent *m = static_cast<QMouseEvent *>(e); if (isVisible() && view->rect().contains(m->pos()) && view->currentIndex().isValid() @@ -992,14 +982,6 @@ void QComboBoxPrivate::_q_dataChanged(const QModelIndex &topLeft, const QModelIn } } -void QComboBoxPrivate::_q_rowsAboutToBeInserted(const QModelIndex & parent, - int /*start*/, int /*end*/) -{ - if (parent != root) - return; - indexBeforeChange = currentIndex.row(); -} - void QComboBoxPrivate::_q_rowsInserted(const QModelIndex &parent, int start, int end) { Q_Q(QComboBox); @@ -1022,11 +1004,8 @@ void QComboBoxPrivate::_q_rowsInserted(const QModelIndex &parent, int start, int } } -void QComboBoxPrivate::_q_rowsAboutToBeRemoved(const QModelIndex &parent, int /*start*/, int /*end*/) +void QComboBoxPrivate::_q_updateIndexBeforeChange() { - if (parent != root) - return; - indexBeforeChange = currentIndex.row(); } @@ -1868,15 +1847,17 @@ void QComboBox::setModel(QAbstractItemModel *model) disconnect(d->model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(_q_dataChanged(QModelIndex,QModelIndex))); disconnect(d->model, SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)), - this, SLOT(_q_rowsAboutToBeInserted(QModelIndex,int,int))); + this, SLOT(_q_updateIndexBeforeChange())); disconnect(d->model, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(_q_rowsInserted(QModelIndex,int,int))); disconnect(d->model, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), - this, SLOT(_q_rowsAboutToBeRemoved(QModelIndex,int,int))); + this, SLOT(_q_updateIndexBeforeChange())); disconnect(d->model, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(_q_rowsRemoved(QModelIndex,int,int))); disconnect(d->model, SIGNAL(destroyed()), this, SLOT(_q_modelDestroyed())); + disconnect(d->model, SIGNAL(modelAboutToBeReset()), + this, SLOT(_q_updateIndexBeforeChange())); disconnect(d->model, SIGNAL(modelReset()), this, SLOT(_q_modelReset())); if (d->model->QObject::parent() == this) @@ -1888,15 +1869,17 @@ void QComboBox::setModel(QAbstractItemModel *model) connect(model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(_q_dataChanged(QModelIndex,QModelIndex))); connect(model, SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)), - this, SLOT(_q_rowsAboutToBeInserted(QModelIndex,int,int))); + this, SLOT(_q_updateIndexBeforeChange())); connect(model, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(_q_rowsInserted(QModelIndex,int,int))); connect(model, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), - this, SLOT(_q_rowsAboutToBeRemoved(QModelIndex,int,int))); + this, SLOT(_q_updateIndexBeforeChange())); connect(model, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(_q_rowsRemoved(QModelIndex,int,int))); connect(model, SIGNAL(destroyed()), this, SLOT(_q_modelDestroyed())); + connect(model, SIGNAL(modelAboutToBeReset()), + this, SLOT(_q_updateIndexBeforeChange())); connect(model, SIGNAL(modelReset()), this, SLOT(_q_modelReset())); diff --git a/src/gui/widgets/qcombobox.h b/src/gui/widgets/qcombobox.h index 6a85096..0652594 100644 --- a/src/gui/widgets/qcombobox.h +++ b/src/gui/widgets/qcombobox.h @@ -52,7 +52,6 @@ QT_BEGIN_HEADER QT_BEGIN_NAMESPACE QT_MODULE(Gui) - #ifndef QT_NO_COMBOBOX class QAbstractItemView; @@ -308,9 +307,8 @@ private: Q_PRIVATE_SLOT(d_func(), void _q_returnPressed()) Q_PRIVATE_SLOT(d_func(), void _q_resetButton()) Q_PRIVATE_SLOT(d_func(), void _q_dataChanged(const QModelIndex &, const QModelIndex &)) - Q_PRIVATE_SLOT(d_func(), void _q_rowsAboutToBeInserted(const QModelIndex & parent, int start, int end)) + Q_PRIVATE_SLOT(d_func(), void _q_updateIndexBeforeChange()) Q_PRIVATE_SLOT(d_func(), void _q_rowsInserted(const QModelIndex & parent, int start, int end)) - Q_PRIVATE_SLOT(d_func(), void _q_rowsAboutToBeRemoved(const QModelIndex & parent, int start, int end)) Q_PRIVATE_SLOT(d_func(), void _q_rowsRemoved(const QModelIndex & parent, int start, int end)) Q_PRIVATE_SLOT(d_func(), void _q_modelDestroyed()) Q_PRIVATE_SLOT(d_func(), void _q_modelReset()) diff --git a/src/gui/widgets/qcombobox_p.h b/src/gui/widgets/qcombobox_p.h index f7458c4..fe42c47 100644 --- a/src/gui/widgets/qcombobox_p.h +++ b/src/gui/widgets/qcombobox_p.h @@ -231,7 +231,6 @@ public: public Q_SLOTS: void scrollItemView(int action); void updateScrollers(); - void setCurrentIndex(const QModelIndex &index); void viewDestroyed(); protected: @@ -357,9 +356,8 @@ public: #endif void _q_resetButton(); void _q_dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight); - void _q_rowsAboutToBeInserted(const QModelIndex & parent, int start, int end); + void _q_updateIndexBeforeChange(); void _q_rowsInserted(const QModelIndex & parent, int start, int end); - void _q_rowsAboutToBeRemoved(const QModelIndex & parent, int start, int end); void _q_rowsRemoved(const QModelIndex & parent, int start, int end); void updateArrow(QStyle::StateFlag state); bool updateHoverControl(const QPoint &pos); diff --git a/src/gui/widgets/qdockarealayout.cpp b/src/gui/widgets/qdockarealayout.cpp index 5a0a9d4..dffec11 100644 --- a/src/gui/widgets/qdockarealayout.cpp +++ b/src/gui/widgets/qdockarealayout.cpp @@ -1556,9 +1556,10 @@ void QDockAreaLayoutInfo::apply(bool animate) } } } - +#ifndef QT_NO_TABBAR if (sep == 1) updateSeparatorWidgets(); +#endif //QT_NO_TABBAR } static void paintSep(QPainter *p, QWidget *w, const QRect &r, Qt::Orientation o, bool mouse_over) @@ -2008,13 +2009,14 @@ bool QDockAreaLayoutInfo::restoreState(QDataStream &stream, QList<QDockWidget*> updateTabBar(); setCurrentTabId(tabId(item_list.at(index))); } -#endif if (!testing && sep == 1) updateSeparatorWidgets(); +#endif return true; } +#ifndef QT_NO_TABBAR void QDockAreaLayoutInfo::updateSeparatorWidgets() const { if (tabbed) { @@ -2065,6 +2067,7 @@ void QDockAreaLayoutInfo::updateSeparatorWidgets() const separatorWidgets.resize(j); Q_ASSERT(separatorWidgets.size() == j); } +#endif //QT_NO_TABBAR #ifndef QT_NO_TABBAR void QDockAreaLayoutInfo::updateTabBar() const @@ -2259,7 +2262,7 @@ QRect QDockAreaLayoutInfo::tabContentRect() const ** QDockAreaLayout */ -QDockAreaLayout::QDockAreaLayout(QMainWindow *win) +QDockAreaLayout::QDockAreaLayout(QMainWindow *win) : fallbackToSizeHints(true) { mainWindow = win; sep = win->style()->pixelMetric(QStyle::PM_DockWidgetSeparatorExtent, 0, win); @@ -2346,6 +2349,9 @@ bool QDockAreaLayout::restoreState(QDataStream &stream, const QList<QDockWidget* for (int i = 0; i < 4; ++i) corners[i] = static_cast<Qt::DockWidgetArea>(cornerData[i]); } + + if (!testing) + fallbackToSizeHints = false; } return ok; @@ -2582,7 +2588,7 @@ void QDockAreaLayout::getGrid(QVector<QLayoutStruct> *_ver_struct_list, { QSize center_hint(0, 0); QSize center_min(0, 0); - bool have_central = centralWidgetItem != 0 && !centralWidgetItem->isEmpty(); + const bool have_central = centralWidgetItem != 0 && !centralWidgetItem->isEmpty(); if (have_central) { center_hint = centralWidgetRect.size(); if (!center_hint.isValid()) @@ -2601,33 +2607,35 @@ void QDockAreaLayout::getGrid(QVector<QLayoutStruct> *_ver_struct_list, center_rect.setBottom(rect.bottom() - docks[QInternal::BottomDock].rect.height() - sep); QSize left_hint = docks[QInternal::LeftDock].size(); - if (left_hint.isNull()) + if (left_hint.isNull() || fallbackToSizeHints) left_hint = docks[QInternal::LeftDock].sizeHint(); QSize left_min = docks[QInternal::LeftDock].minimumSize(); QSize left_max = docks[QInternal::LeftDock].maximumSize(); left_hint = left_hint.boundedTo(left_max).expandedTo(left_min); QSize right_hint = docks[QInternal::RightDock].size(); - if (right_hint.isNull()) + if (right_hint.isNull() || fallbackToSizeHints) right_hint = docks[QInternal::RightDock].sizeHint(); QSize right_min = docks[QInternal::RightDock].minimumSize(); QSize right_max = docks[QInternal::RightDock].maximumSize(); right_hint = right_hint.boundedTo(right_max).expandedTo(right_min); QSize top_hint = docks[QInternal::TopDock].size(); - if (top_hint.isNull()) + if (top_hint.isNull() || fallbackToSizeHints) top_hint = docks[QInternal::TopDock].sizeHint(); QSize top_min = docks[QInternal::TopDock].minimumSize(); QSize top_max = docks[QInternal::TopDock].maximumSize(); top_hint = top_hint.boundedTo(top_max).expandedTo(top_min); QSize bottom_hint = docks[QInternal::BottomDock].size(); - if (bottom_hint.isNull()) + if (bottom_hint.isNull() || fallbackToSizeHints) bottom_hint = docks[QInternal::BottomDock].sizeHint(); QSize bottom_min = docks[QInternal::BottomDock].minimumSize(); QSize bottom_max = docks[QInternal::BottomDock].maximumSize(); bottom_hint = bottom_hint.boundedTo(bottom_max).expandedTo(bottom_min); + fallbackToSizeHints = !have_central; + if (_ver_struct_list != 0) { QVector<QLayoutStruct> &ver_struct_list = *_ver_struct_list; ver_struct_list.resize(3); @@ -3073,9 +3081,10 @@ void QDockAreaLayout::apply(bool animate) widgetAnimator.animate(centralWidgetItem->widget(), centralWidgetRect, animate); } - +#ifndef QT_NO_TABBAR if (sep == 1) updateSeparatorWidgets(); +#endif //QT_NO_TABBAR } void QDockAreaLayout::paintSeparators(QPainter *p, QWidget *widget, @@ -3153,6 +3162,7 @@ int QDockAreaLayout::separatorMove(const QList<int> &separator, const QPoint &or return delta; } +#ifndef QT_NO_TABBAR // Sets the correct positions for the seperator widgets // Allocates new sepearator widgets with getSeparatorWidget void QDockAreaLayout::updateSeparatorWidgets() const @@ -3186,6 +3196,7 @@ void QDockAreaLayout::updateSeparatorWidgets() const separatorWidgets.resize(j); } +#endif //QT_NO_TABBAR QLayoutItem *QDockAreaLayout::itemAt(int *x, int index) const { @@ -3238,7 +3249,6 @@ QSet<QTabBar*> QDockAreaLayout::usedTabBars() const } return result; } -#endif // Returns the set of all used separator widgets QSet<QWidget*> QDockAreaLayout::usedSeparatorWidgets() const @@ -3253,6 +3263,7 @@ QSet<QWidget*> QDockAreaLayout::usedSeparatorWidgets() const } return result; } +#endif QRect QDockAreaLayout::gapRect(const QList<int> &path) const { diff --git a/src/gui/widgets/qdockarealayout_p.h b/src/gui/widgets/qdockarealayout_p.h index 99a9dbb..bd2067b 100644 --- a/src/gui/widgets/qdockarealayout_p.h +++ b/src/gui/widgets/qdockarealayout_p.h @@ -196,9 +196,10 @@ public: QRect rect; QMainWindow *mainWindow; QList<QDockAreaLayoutItem> item_list; - +#ifndef QT_NO_TABBAR void updateSeparatorWidgets() const; QSet<QWidget*> usedSeparatorWidgets() const; +#endif //QT_NO_TABBAR #ifndef QT_NO_TABBAR quintptr currentTabId() const; @@ -233,6 +234,7 @@ public: QDockAreaLayout(QMainWindow *win); QDockAreaLayoutInfo docks[4]; int sep; // separator extent + bool fallbackToSizeHints; //determines if we should use the sizehint for the dock areas (true until the layout is restored or the central widget is set) mutable QVector<QWidget*> separatorWidgets; bool isValid() const; @@ -278,7 +280,9 @@ public: const QPoint &mouse) const; QRegion separatorRegion() const; int separatorMove(const QList<int> &separator, const QPoint &origin, const QPoint &dest); +#ifndef QT_NO_TABBAR void updateSeparatorWidgets() const; +#endif //QT_NO_TABBAR QLayoutItem *itemAt(int *x, int index) const; QLayoutItem *takeAt(int *x, int index); @@ -292,9 +296,10 @@ public: QRect gapRect(const QList<int> &path) const; void keepSize(QDockWidget *w); - +#ifndef QT_NO_TABBAR QSet<QTabBar*> usedTabBars() const; QSet<QWidget*> usedSeparatorWidgets() const; +#endif //QT_NO_TABBAR }; QT_END_NAMESPACE diff --git a/src/gui/widgets/qdockwidget.cpp b/src/gui/widgets/qdockwidget.cpp index 6710275..a8e2a37 100644 --- a/src/gui/widgets/qdockwidget.cpp +++ b/src/gui/widgets/qdockwidget.cpp @@ -685,8 +685,6 @@ void QDockWidgetPrivate::_q_toggleTopLevel() void QDockWidgetPrivate::initDrag(const QPoint &pos, bool nca) { - Q_Q(QDockWidget); - if (state != 0) return; @@ -694,8 +692,6 @@ void QDockWidgetPrivate::initDrag(const QPoint &pos, bool nca) Q_ASSERT(win != 0); QMainWindowLayout *layout = qobject_cast<QMainWindowLayout*>(win->layout()); Q_ASSERT(layout != 0); - if (layout->layoutState.indexOf(q).isEmpty()) //The dock widget has not been added into the main window - return; if (layout->pluggingWidget != 0) // the main window is animating a docking operation return; @@ -1012,6 +1008,12 @@ void QDockWidgetPrivate::setWindowState(bool floating, bool unplug, const QRect { Q_Q(QDockWidget); + if (!floating && parent) { + QMainWindowLayout *mwlayout = qobject_cast<QMainWindowLayout *>(q->parentWidget()->layout()); + if (!mwlayout || mwlayout->dockWidgetArea(q) == Qt::NoDockWidgetArea) + return; // this dockwidget can't be redocked + } + bool wasFloating = q->isFloating(); bool hidden = q->isHidden(); diff --git a/src/gui/widgets/qlinecontrol.cpp b/src/gui/widgets/qlinecontrol.cpp index 7f9ff82..8f17e98 100644 --- a/src/gui/widgets/qlinecontrol.cpp +++ b/src/gui/widgets/qlinecontrol.cpp @@ -447,8 +447,9 @@ void QLineControl::processInputMethodEvent(QInputMethodEvent *event) cursorPositionChanged = true; } } - +#ifndef QT_NO_IM setPreeditArea(m_cursor, event->preeditString()); +#endif //QT_NO_IM m_preeditCursor = event->preeditString().length(); m_hideCursor = false; QList<QTextLayout::FormatRange> formats; diff --git a/src/gui/widgets/qlinecontrol_p.h b/src/gui/widgets/qlinecontrol_p.h index 68898b6..f8e1a5d 100644 --- a/src/gui/widgets/qlinecontrol_p.h +++ b/src/gui/widgets/qlinecontrol_p.h @@ -174,8 +174,10 @@ public: void setMaxLength(int maxLength); int maxLength() const; +#ifndef QT_NO_VALIDATOR const QValidator *validator() const; void setValidator(const QValidator *); +#endif #ifndef QT_NO_COMPLETER QCompleter *completer() const; @@ -282,7 +284,9 @@ private: bool finishChange(int validateFromState = -1, bool update = false, bool edited = true); +#ifndef QT_NO_VALIDATOR QPointer<QValidator> m_validator; +#endif QPointer<QCompleter> m_completer; #ifndef QT_NO_COMPLETER bool advanceToEnabledItem(int dir); @@ -623,6 +627,7 @@ inline int QLineControl::maxLength() const return m_maxLength; } +#ifndef QT_NO_VALIDATOR inline const QValidator *QLineControl::validator() const { return m_validator; @@ -632,6 +637,7 @@ inline void QLineControl::setValidator(const QValidator *v) { m_validator = const_cast<QValidator*>(v); } +#endif #ifndef QT_NO_COMPLETER inline QCompleter *QLineControl::completer() const diff --git a/src/gui/widgets/qmenu.cpp b/src/gui/widgets/qmenu.cpp index ea25901..1b5d1cd 100644 --- a/src/gui/widgets/qmenu.cpp +++ b/src/gui/widgets/qmenu.cpp @@ -1878,6 +1878,10 @@ void QMenu::popup(const QPoint &p, QAction *atAction) if(snapToMouse) //position flowing left from the mouse pos.setX(mouse.x()-size.width()); + //if in a menubar, it should be right-aligned + if (qobject_cast<QMenuBar*>(d->causedPopup.widget)) + pos.rx() -= size.width(); + if (pos.x() < screen.left()+desktopFrame) pos.setX(qMax(p.x(), screen.left()+desktopFrame)); if (pos.x()+size.width()-1 > screen.right()-desktopFrame) diff --git a/src/gui/widgets/qmenubar.cpp b/src/gui/widgets/qmenubar.cpp index f2f0722..689d2e1 100644 --- a/src/gui/widgets/qmenubar.cpp +++ b/src/gui/widgets/qmenubar.cpp @@ -336,30 +336,25 @@ void QMenuBarPrivate::popupAction(QAction *action, bool activateFirst) const bool fitUp = (q->mapToGlobal(adjustedActionRect.topLeft()).y() >= popup_size.height()); const bool fitDown = (pos.y() + popup_size.height() <= screenRect.bottom()); + const bool rtl = q->isRightToLeft(); const int actionWidth = adjustedActionRect.width(); if (!fitUp && !fitDown) { //we should shift the menu - bool shouldShiftToRight = !q->isRightToLeft(); - if (q->isRightToLeft() && popup_size.width() > pos.x()) + bool shouldShiftToRight = !rtl; + if (rtl && popup_size.width() > pos.x()) shouldShiftToRight = true; else if (actionWidth + popup_size.width() + pos.x() > screenRect.right()) shouldShiftToRight = false; - if (shouldShiftToRight) - pos.rx() += actionWidth; - else - pos.rx() -= popup_size.width(); - } else if (q->isRightToLeft()) { - pos.setX(pos.x()-(popup_size.width() - actionWidth)); - } - - if(pos.x() < screenRect.x()) { - pos.setX(screenRect.x()); - } else { - const int off = pos.x()+popup_size.width() - screenRect.right(); - if(off > 0) - pos.setX(qMax(screenRect.x(), pos.x()-off)); - + if (shouldShiftToRight) { + pos.rx() += actionWidth + (rtl ? popup_size.width() : 0); + } else { + //shift to left + if (!rtl) + pos.rx() -= popup_size.width(); + } + } else if (rtl) { + pos.rx() += actionWidth; } if(!defaultPopDown || (fitUp && !fitDown)) diff --git a/src/gui/widgets/qplaintextedit.cpp b/src/gui/widgets/qplaintextedit.cpp index fc61889..bb93546 100644 --- a/src/gui/widgets/qplaintextedit.cpp +++ b/src/gui/widgets/qplaintextedit.cpp @@ -1599,7 +1599,6 @@ void QPlainTextEdit::keyPressEvent(QKeyEvent *e) return; } } -#endif // QT_NO_SHORTCUT if (!(tif & Qt::TextEditable)) { switch (e->key()) { @@ -1627,6 +1626,7 @@ void QPlainTextEdit::keyPressEvent(QKeyEvent *e) } return; } +#endif // QT_NO_SHORTCUT d->sendControlEvent(e); #ifdef QT_KEYPAD_NAVIGATION diff --git a/src/gui/widgets/qsplitter.cpp b/src/gui/widgets/qsplitter.cpp index e3121ae..520a802 100644 --- a/src/gui/widgets/qsplitter.cpp +++ b/src/gui/widgets/qsplitter.cpp @@ -360,13 +360,26 @@ void QSplitterPrivate::recalc(bool update) before a hidden widget must be hidden. */ bool first = true; + bool allInvisible = n != 0; for (int i = 0; i < n ; ++i) { QSplitterLayoutStruct *s = list.at(i); - s->handle->setHidden(first || s->widget->isHidden()); - if (!s->widget->isHidden()) + bool widgetHidden = s->widget->isHidden(); + if (allInvisible && !widgetHidden && !s->collapsed) + allInvisible = false; + s->handle->setHidden(first || widgetHidden); + if (!widgetHidden) first = false; } + if (allInvisible) + for (int i = 0; i < n ; ++i) { + QSplitterLayoutStruct *s = list.at(i); + if (!s->widget->isHidden()) { + s->collapsed = false; + break; + } + } + int fi = 2 * q->frameWidth(); int maxl = fi; int minl = fi; diff --git a/src/gui/widgets/qtabbar.cpp b/src/gui/widgets/qtabbar.cpp index 6c9761c..3935c55 100644 --- a/src/gui/widgets/qtabbar.cpp +++ b/src/gui/widgets/qtabbar.cpp @@ -1694,6 +1694,9 @@ void QTabBar::mousePressEvent(QMouseEvent *event) d->moveTabFinished(d->pressedIndex); d->pressedIndex = d->indexAtPos(event->pos()); +#ifdef Q_WS_MAC + d->previousPressedIndex = d->pressedIndex; +#endif if (d->validIndex(d->pressedIndex)) { QStyleOptionTabBarBaseV2 optTabBase; optTabBase.init(this); @@ -1774,6 +1777,17 @@ void QTabBar::mouseMoveEvent(QMouseEvent *event) update(); } +#ifdef Q_WS_MAC + } else if (!d->documentMode && event->buttons() == Qt::LeftButton && d->previousPressedIndex != -1) { + int newPressedIndex = d->indexAtPos(event->pos()); + if (d->pressedIndex == -1 && d->previousPressedIndex == newPressedIndex) { + d->pressedIndex = d->previousPressedIndex; + update(tabRect(d->pressedIndex)); + } else if(d->pressedIndex != newPressedIndex) { + d->pressedIndex = -1; + update(tabRect(d->previousPressedIndex)); + } +#endif } if (event->buttons() != Qt::LeftButton) { @@ -1798,6 +1812,7 @@ void QTabBarPrivate::setupMovableTab() QPixmap grabImage(grabRect.size()); grabImage.fill(Qt::transparent); QStylePainter p(&grabImage, q); + p.initFrom(q); QStyleOptionTabV3 tab; q->initStyleOption(&tab, pressedIndex); @@ -1865,7 +1880,9 @@ void QTabBar::mouseReleaseEvent(QMouseEvent *event) event->ignore(); return; } - +#ifdef Q_WS_MAC + d->previousPressedIndex = -1; +#endif if (d->movable && d->dragInProgress && d->validIndex(d->pressedIndex)) { int length = d->tabList[d->pressedIndex].dragOffset; int width = verticalTabs(d->shape) diff --git a/src/gui/widgets/qtabbar_p.h b/src/gui/widgets/qtabbar_p.h index 494a340..9f3285b 100644 --- a/src/gui/widgets/qtabbar_p.h +++ b/src/gui/widgets/qtabbar_p.h @@ -77,7 +77,11 @@ public: :currentIndex(-1), pressedIndex(-1), shape(QTabBar::RoundedNorth), layoutDirty(false), drawBase(true), scrollOffset(0), expanding(true), closeButtonOnTabs(false), selectionBehaviorOnRemove(QTabBar::SelectRightTab), paintWithOffsets(true), movable(false), - dragInProgress(false), documentMode(false), movingTab(0) {} + dragInProgress(false), documentMode(false), movingTab(0) +#ifdef Q_WS_MAC + , previousPressedIndex(-1) +#endif + {} int currentIndex; int pressedIndex; @@ -195,7 +199,9 @@ public: bool documentMode; QWidget *movingTab; - +#ifdef Q_WS_MAC + int previousPressedIndex; +#endif // shared by tabwidget and qtabbar static void initStyleBaseOption(QStyleOptionTabBarBaseV2 *optTabBase, QTabBar *tabbar, QSize size) { diff --git a/src/gui/widgets/qtabwidget.cpp b/src/gui/widgets/qtabwidget.cpp index 9aeb033..d22bd54 100644 --- a/src/gui/widgets/qtabwidget.cpp +++ b/src/gui/widgets/qtabwidget.cpp @@ -313,7 +313,16 @@ void QTabWidget::initStyleOption(QStyleOptionTabWidgetFrame *option) const : QTabBar::TriangularEast; break; } + option->tabBarSize = t; + + if (QStyleOptionTabWidgetFrameV2 *tabframe = qstyleoption_cast<QStyleOptionTabWidgetFrameV2*>(option)) { + QRect tbRect = tabBar()->geometry(); + QRect selectedTabRect = tabBar()->tabRect(tabBar()->currentIndex()); + tabframe->tabBarRect = tbRect; + selectedTabRect.moveTopLeft(selectedTabRect.topLeft() + tbRect.topLeft()); + tabframe->selectedTabRect = selectedTabRect; + } } /*! @@ -756,7 +765,7 @@ void QTabWidget::setUpLayout(bool onlyCheck) if (onlyCheck && !d->dirty) return; // nothing to do - QStyleOptionTabWidgetFrame option; + QStyleOptionTabWidgetFrameV2 option; initStyleOption(&option); // this must be done immediately, because QWidgetItem relies on it (even if !isVisible()) @@ -1167,8 +1176,8 @@ void QTabWidget::tabRemoved(int index) void QTabWidget::paintEvent(QPaintEvent *) { Q_D(QTabWidget); - QStylePainter p(this); if (documentMode()) { + QStylePainter p(this, tabBar()); if (QWidget *w = cornerWidget(Qt::TopLeftCorner)) { QStyleOptionTabBarBaseV2 opt; QTabBarPrivate::initStyleBaseOption(&opt, tabBar(), w->size()); @@ -1185,8 +1194,9 @@ void QTabWidget::paintEvent(QPaintEvent *) } return; } + QStylePainter p(this); - QStyleOptionTabWidgetFrame opt; + QStyleOptionTabWidgetFrameV2 opt; initStyleOption(&opt); opt.rect = d->panelRect; p.drawPrimitive(QStyle::PE_FrameTabWidget, opt); diff --git a/src/gui/widgets/qtextedit.cpp b/src/gui/widgets/qtextedit.cpp index f477fee..d995e0f 100644 --- a/src/gui/widgets/qtextedit.cpp +++ b/src/gui/widgets/qtextedit.cpp @@ -1246,7 +1246,6 @@ void QTextEdit::keyPressEvent(QKeyEvent *e) return; } } -#endif // QT_NO_SHORTCUT if (!(tif & Qt::TextEditable)) { switch (e->key()) { @@ -1274,6 +1273,7 @@ void QTextEdit::keyPressEvent(QKeyEvent *e) } return; } +#endif // QT_NO_SHORTCUT { QTextCursor cursor = d->control->textCursor(); diff --git a/src/gui/widgets/qtoolbar.cpp b/src/gui/widgets/qtoolbar.cpp index 40c0b02..5596ca4 100644 --- a/src/gui/widgets/qtoolbar.cpp +++ b/src/gui/widgets/qtoolbar.cpp @@ -183,6 +183,9 @@ void QToolBarPrivate::setWindowState(bool floating, bool unplug, const QRect &re if (visible) q->show(); + + if (floating != wasFloating) + emit q->topLevelChanged(floating); } void QToolBarPrivate::initDrag(const QPoint &pos) @@ -518,6 +521,19 @@ void QToolBarPrivate::plug(const QRect &r) */ /*! + \since 4.6 + + \fn void QToolBar::topLevelChanged(bool topLevel) + + This signal is emitted when the \l floating property changes. + The \a topLevel parameter is true if the toolbar is now floating; + otherwise it is false. + + \sa isWindow() +*/ + + +/*! Constructs a QToolBar with the given \a parent. */ QToolBar::QToolBar(QWidget *parent) diff --git a/src/gui/widgets/qtoolbar.h b/src/gui/widgets/qtoolbar.h index a084673..a1a24f0 100644 --- a/src/gui/widgets/qtoolbar.h +++ b/src/gui/widgets/qtoolbar.h @@ -142,6 +142,7 @@ Q_SIGNALS: void orientationChanged(Qt::Orientation orientation); void iconSizeChanged(const QSize &iconSize); void toolButtonStyleChanged(Qt::ToolButtonStyle toolButtonStyle); + void topLevelChanged(bool topLevel); protected: void actionEvent(QActionEvent *event); diff --git a/src/gui/widgets/qwidgetanimator.cpp b/src/gui/widgets/qwidgetanimator.cpp index f440961..bdd3c75 100644 --- a/src/gui/widgets/qwidgetanimator.cpp +++ b/src/gui/widgets/qwidgetanimator.cpp @@ -105,7 +105,9 @@ void QWidgetAnimator::animate(QWidget *widget, const QRect &_final_geometry, boo #else //we do it in one shot widget->setGeometry(final_geometry); +#ifndef QT_NO_MAINWINDOW m_mainWindowLayout->animationFinished(widget); +#endif //QT_NO_MAINWINDOW #endif //QT_NO_ANIMATION } diff --git a/src/network/access/qnetworkaccessdebugpipebackend.cpp b/src/network/access/qnetworkaccessdebugpipebackend.cpp index b4af5b6..4f7f15c 100644 --- a/src/network/access/qnetworkaccessdebugpipebackend.cpp +++ b/src/network/access/qnetworkaccessdebugpipebackend.cpp @@ -229,7 +229,7 @@ void QNetworkAccessDebugPipeBackend::possiblyFinish() void QNetworkAccessDebugPipeBackend::closeDownstreamChannel() { - qWarning() << "QNetworkAccessDebugPipeBackend::closeDownstreamChannel()" << operation(); + qWarning("QNetworkAccessDebugPipeBackend::closeDownstreamChannel()",operation());; //if (operation() == QNetworkAccessManager::GetOperation) // socket.disconnectFromHost(); } @@ -237,7 +237,7 @@ void QNetworkAccessDebugPipeBackend::closeDownstreamChannel() void QNetworkAccessDebugPipeBackend::socketError() { - qWarning() << "QNetworkAccessDebugPipeBackend::socketError()" << socket.error(); + qWarning("QNetworkAccessDebugPipeBackend::socketError()", socket.error()); QNetworkReply::NetworkError code; switch (socket.error()) { case QAbstractSocket::RemoteHostClosedError: diff --git a/src/network/socket/qabstractsocket.cpp b/src/network/socket/qabstractsocket.cpp index 9fb0b47..89a6e91 100644 --- a/src/network/socket/qabstractsocket.cpp +++ b/src/network/socket/qabstractsocket.cpp @@ -462,6 +462,7 @@ QAbstractSocketPrivate::QAbstractSocketPrivate() isBuffered(false), blockingTimeout(30000), connectTimer(0), + disconnectTimer(0), connectTimeElapsed(0), hostLookupId(-1), socketType(QAbstractSocket::UnknownSocketType), @@ -497,9 +498,10 @@ void QAbstractSocketPrivate::resetSocketLayer() socketEngine = 0; cachedSocketDescriptor = -1; } - if (connectTimer) { + if (connectTimer) connectTimer->stop(); - } + if (disconnectTimer) + disconnectTimer->stop(); } /*! \internal @@ -669,11 +671,11 @@ bool QAbstractSocketPrivate::canWriteNotification() if (socketEngine) { #if defined (Q_OS_WIN) - if (!writeBuffer.isEmpty()) - socketEngine->setWriteNotificationEnabled(true); + if (!writeBuffer.isEmpty()) + socketEngine->setWriteNotificationEnabled(true); #else - if (writeBuffer.isEmpty()) - socketEngine->setWriteNotificationEnabled(false); + if (writeBuffer.isEmpty() && socketEngine->bytesToWrite() == 0) + socketEngine->setWriteNotificationEnabled(false); #endif } @@ -710,11 +712,17 @@ void QAbstractSocketPrivate::connectionNotification() bool QAbstractSocketPrivate::flush() { Q_Q(QAbstractSocket); - if (!socketEngine || !socketEngine->isValid() || writeBuffer.isEmpty()) { + if (!socketEngine || !socketEngine->isValid() || (writeBuffer.isEmpty() + && socketEngine->bytesToWrite() == 0)) { #if defined (QABSTRACTSOCKET_DEBUG) qDebug("QAbstractSocketPrivate::flush() nothing to do: valid ? %s, writeBuffer.isEmpty() ? %s", socketEngine->isValid() ? "yes" : "no", writeBuffer.isEmpty() ? "yes" : "no"); #endif + + // this covers the case when the buffer was empty, but we had to wait for the socket engine to finish + if (state == QAbstractSocket::ClosingState) + q->disconnectFromHost(); + return false; } @@ -751,7 +759,8 @@ bool QAbstractSocketPrivate::flush() } } - if (writeBuffer.isEmpty() && socketEngine && socketEngine->isWriteNotificationEnabled()) + if (writeBuffer.isEmpty() && socketEngine && socketEngine->isWriteNotificationEnabled() + && !socketEngine->bytesToWrite()) socketEngine->setWriteNotificationEnabled(false); if (state == QAbstractSocket::ClosingState) q->disconnectFromHost(); @@ -1087,6 +1096,15 @@ void QAbstractSocketPrivate::_q_abortConnectionAttempt() } } +void QAbstractSocketPrivate::_q_forceDisconnect() +{ + Q_Q(QAbstractSocket); + if (socketEngine && socketEngine->isValid() && state == QAbstractSocket::ClosingState) { + socketEngine->close(); + q->disconnectFromHost(); + } +} + /*! \internal Reads data from the socket layer into the read buffer. Returns @@ -2347,7 +2365,22 @@ void QAbstractSocket::disconnectFromHostImplementation() } // Wait for pending data to be written. - if (d->socketEngine && d->socketEngine->isValid() && d->writeBuffer.size() > 0) { + if (d->socketEngine && d->socketEngine->isValid() && (d->writeBuffer.size() > 0 + || d->socketEngine->bytesToWrite() > 0)) { + // hack: when we are waiting for the socket engine to write bytes (only + // possible when using Socks5 or HTTP socket engine), then close + // anyway after 2 seconds. This is to prevent a timeout on Mac, where we + // sometimes just did not get the write notifier from the underlying + // CFSocket and no progress was made. + if (d->writeBuffer.size() == 0 && d->socketEngine->bytesToWrite() > 0) { + if (!d->disconnectTimer) { + d->disconnectTimer = new QTimer(this); + connect(d->disconnectTimer, SIGNAL(timeout()), this, + SLOT(_q_forceDisconnect()), Qt::DirectConnection); + } + if (!d->disconnectTimer->isActive()) + d->disconnectTimer->start(2000); + } d->socketEngine->setWriteNotificationEnabled(true); #if defined(QABSTRACTSOCKET_DEBUG) diff --git a/src/network/socket/qabstractsocket.h b/src/network/socket/qabstractsocket.h index 5d94a01..5cfae17 100644 --- a/src/network/socket/qabstractsocket.h +++ b/src/network/socket/qabstractsocket.h @@ -216,6 +216,7 @@ private: Q_PRIVATE_SLOT(d_func(), void _q_startConnecting(const QHostInfo &)) Q_PRIVATE_SLOT(d_func(), void _q_abortConnectionAttempt()) Q_PRIVATE_SLOT(d_func(), void _q_testConnection()) + Q_PRIVATE_SLOT(d_func(), void _q_forceDisconnect()) #ifdef QT3_SUPPORT public: diff --git a/src/network/socket/qabstractsocket_p.h b/src/network/socket/qabstractsocket_p.h index 8ccddd3..acf82bf 100644 --- a/src/network/socket/qabstractsocket_p.h +++ b/src/network/socket/qabstractsocket_p.h @@ -93,6 +93,7 @@ public: void _q_startConnecting(const QHostInfo &hostInfo); void _q_testConnection(); void _q_abortConnectionAttempt(); + void _q_forceDisconnect(); bool readSocketNotifierCalled; bool readSocketNotifierState; @@ -148,6 +149,7 @@ public: int blockingTimeout; QTimer *connectTimer; + QTimer *disconnectTimer; int connectTimeElapsed; int hostLookupId; diff --git a/src/network/socket/qabstractsocketengine_p.h b/src/network/socket/qabstractsocketengine_p.h index c639092..14b3c81 100644 --- a/src/network/socket/qabstractsocketengine_p.h +++ b/src/network/socket/qabstractsocketengine_p.h @@ -126,6 +126,8 @@ public: virtual qint64 pendingDatagramSize() const = 0; #endif + virtual qint64 bytesToWrite() const = 0; + virtual int option(SocketOption option) const = 0; virtual bool setOption(SocketOption option, int value) = 0; diff --git a/src/network/socket/qhttpsocketengine.cpp b/src/network/socket/qhttpsocketengine.cpp index fb61dbf..5c28318 100644 --- a/src/network/socket/qhttpsocketengine.cpp +++ b/src/network/socket/qhttpsocketengine.cpp @@ -276,6 +276,16 @@ qint64 QHttpSocketEngine::pendingDatagramSize() const } #endif // QT_NO_UDPSOCKET +qint64 QHttpSocketEngine::bytesToWrite() const +{ + Q_D(const QHttpSocketEngine); + if (d->socket) { + return d->socket->bytesToWrite(); + } else { + return 0; + } +} + int QHttpSocketEngine::option(SocketOption option) const { Q_D(const QHttpSocketEngine); diff --git a/src/network/socket/qhttpsocketengine_p.h b/src/network/socket/qhttpsocketengine_p.h index a423116..76430db 100644 --- a/src/network/socket/qhttpsocketengine_p.h +++ b/src/network/socket/qhttpsocketengine_p.h @@ -110,6 +110,8 @@ public: qint64 pendingDatagramSize() const; #endif // QT_NO_UDPSOCKET + qint64 bytesToWrite() const; + int option(SocketOption option) const; bool setOption(SocketOption option, int value); diff --git a/src/network/socket/qlocalserver_unix.cpp b/src/network/socket/qlocalserver_unix.cpp index 5ffe0c0..e09e547 100644 --- a/src/network/socket/qlocalserver_unix.cpp +++ b/src/network/socket/qlocalserver_unix.cpp @@ -216,24 +216,14 @@ void QLocalServerPrivate::waitForNewConnection(int msec, bool *timedOut) timeout.tv_sec = msec / 1000; timeout.tv_usec = (msec % 1000) * 1000; - // timeout can not be 0 or else select will return an error. - if (0 == msec) - timeout.tv_usec = 1000; - int result = -1; - // on Linux timeout will be updated by select, but _not_ on other systems. - QTime timer; - timer.start(); - while (pendingConnections.isEmpty() && (-1 == msec || timer.elapsed() < msec)) { - result = ::select(listenSocket + 1, &readfds, 0, 0, &timeout); - if (-1 == result && errno != EINTR) { - setError(QLatin1String("QLocalServer::waitForNewConnection")); - closeServer(); - break; - } - if (result > 0) - _q_onNewConnection(); + result = qt_safe_select(listenSocket + 1, &readfds, 0, 0, (msec == -1) ? 0 : &timeout); + if (-1 == result) { + setError(QLatin1String("QLocalServer::waitForNewConnection")); + closeServer(); } + if (result > 0) + _q_onNewConnection(); if (timedOut) *timedOut = (result == 0); } diff --git a/src/network/socket/qnativesocketengine.cpp b/src/network/socket/qnativesocketengine.cpp index 8de821b..ecf5ad9 100644 --- a/src/network/socket/qnativesocketengine.cpp +++ b/src/network/socket/qnativesocketengine.cpp @@ -754,6 +754,12 @@ qint64 QNativeSocketEngine::write(const char *data, qint64 size) return d->nativeWrite(data, size); } + +qint64 QNativeSocketEngine::bytesToWrite() const +{ + return 0; +} + /*! Reads up to \a maxSize bytes into \a data from the socket. Returns the number of bytes read, or -1 if an error occurred. diff --git a/src/network/socket/qnativesocketengine_p.h b/src/network/socket/qnativesocketengine_p.h index 1f6a243..a03d8f1 100644 --- a/src/network/socket/qnativesocketengine_p.h +++ b/src/network/socket/qnativesocketengine_p.h @@ -135,6 +135,8 @@ public: bool hasPendingDatagrams() const; qint64 pendingDatagramSize() const; + qint64 bytesToWrite() const; + qint64 receiveBufferSize() const; void setReceiveBufferSize(qint64 bufferSize); diff --git a/src/network/socket/qsocks5socketengine.cpp b/src/network/socket/qsocks5socketengine.cpp index 30074cf..bd60ad1 100644 --- a/src/network/socket/qsocks5socketengine.cpp +++ b/src/network/socket/qsocks5socketengine.cpp @@ -1235,6 +1235,9 @@ void QSocks5SocketEnginePrivate::_q_controlSocketError(QAbstractSocket::SocketEr if (!readNotificationPending) connectData->readBuffer.clear(); emitReadNotification(); + data->controlSocket->close(); + // cause a disconnect in the outer socket + emitWriteNotification(); } else if (socks5State == Uninitialized || socks5State == AuthenticationMethodsSent || socks5State == Authenticating @@ -1245,6 +1248,7 @@ void QSocks5SocketEnginePrivate::_q_controlSocketError(QAbstractSocket::SocketEr } else { q_func()->setError(data->controlSocket->error(), data->controlSocket->errorString()); emitReadNotification(); + emitWriteNotification(); } } @@ -1623,6 +1627,16 @@ qint64 QSocks5SocketEngine::pendingDatagramSize() const } #endif // QT_NO_UDPSOCKET +qint64 QSocks5SocketEngine::bytesToWrite() const +{ + Q_D(const QSocks5SocketEngine); + if (d->data && d->data->controlSocket) { + return d->data->controlSocket->bytesToWrite(); + } else { + return 0; + } +} + int QSocks5SocketEngine::option(SocketOption option) const { Q_D(const QSocks5SocketEngine); diff --git a/src/network/socket/qsocks5socketengine_p.h b/src/network/socket/qsocks5socketengine_p.h index 7cb0920..2402517 100644 --- a/src/network/socket/qsocks5socketengine_p.h +++ b/src/network/socket/qsocks5socketengine_p.h @@ -100,6 +100,8 @@ public: qint64 pendingDatagramSize() const; #endif // QT_NO_UDPSOCKET + qint64 bytesToWrite() const; + int option(SocketOption option) const; bool setOption(SocketOption option, int value); diff --git a/src/network/ssl/qsslsocket.cpp b/src/network/ssl/qsslsocket.cpp index 1f93534..cfa99c8 100644 --- a/src/network/ssl/qsslsocket.cpp +++ b/src/network/ssl/qsslsocket.cpp @@ -713,6 +713,8 @@ void QSslSocket::close() qDebug() << "QSslSocket::close()"; #endif Q_D(QSslSocket); + if (d->plainSocket) + d->plainSocket->close(); QTcpSocket::close(); // must be cleared, reading/writing not possible on closed socket: diff --git a/src/opengl/opengl.pro b/src/opengl/opengl.pro index a212675..7d6052b 100644 --- a/src/opengl/opengl.pro +++ b/src/opengl/opengl.pro @@ -103,7 +103,7 @@ x11 { LIBS_PRIVATE += -lfreetype } else { ### Note: how does this compile with a non-system freetype? - # This probably doesn't compile + # This probably does not compile } } else { DEFINES *= QT_NO_FREETYPE @@ -150,17 +150,15 @@ embedded { INCLUDEPATH += ../3rdparty/harfbuzz/src -wince*: { - contains(QT_CONFIG,opengles1) { - QMAKE_LIBS += "libGLES_CM.lib" - } - contains(QT_CONFIG,opengles1cl) { - QMAKE_LIBS += "libGLES_CL.lib" - } - contains(QT_CONFIG,opengles2) { - QMAKE_LIBS += "libGLESv2.lib" - } - +contains(QT_CONFIG,opengles1) { + LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES1 + LIBS += $$QMAKE_LFLAGS_OPENGL_ES1 +} else:contains(QT_CONFIG,opengles1cl) { + LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES1CL + LIBS += $$QMAKE_LFLAGS_OPENGL_ES1CL +} else:contains(QT_CONFIG,opengles2) { + LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES2 + LIBS += $$QMAKE_LFLAGS_OPENGL_ES2 } else { LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL LIBS += $$QMAKE_LFLAGS_OPENGL diff --git a/src/opengl/qgl_wince.cpp b/src/opengl/qgl_wince.cpp index 53b9e27..fea2d3a 100644 --- a/src/opengl/qgl_wince.cpp +++ b/src/opengl/qgl_wince.cpp @@ -54,9 +54,9 @@ #include <windows.h> -#include "qegl_p.h" -#include "qgl_egl_p.h" -#include "qgl_cl_p.h" +#include <private/qegl_p.h> +#include <private/qgl_egl_p.h> +#include <private/qgl_cl_p.h> QT_BEGIN_NAMESPACE diff --git a/src/opengl/qwindowsurface_gl.cpp b/src/opengl/qwindowsurface_gl.cpp index 42e1c1e..ebe101d 100644 --- a/src/opengl/qwindowsurface_gl.cpp +++ b/src/opengl/qwindowsurface_gl.cpp @@ -49,12 +49,12 @@ #include <qglpixelbuffer.h> #include <qcolormap.h> #include <qdesktopwidget.h> +#include <private/qwidget_p.h> #include "qdebug.h" #ifdef Q_WS_X11 #include <private/qt_x11_p.h> #include <qx11info_x11.h> -#include <private/qwidget_p.h> #ifndef QT_OPENGL_ES #include <GL/glx.h> @@ -195,6 +195,9 @@ public: if (!initializing && !widget && !cleanedUp) { initializing = true; widget = new QGLWidget; + // We dont need this internal widget to appear in QApplication::topLevelWidgets() + if (QWidgetPrivate::allWidgets) + QWidgetPrivate::allWidgets->remove(widget); initializing = false; } return widget; diff --git a/src/plugins/gfxdrivers/qvfb/main.cpp b/src/plugins/gfxdrivers/qvfb/main.cpp index bcaecab..beca37e 100644 --- a/src/plugins/gfxdrivers/qvfb/main.cpp +++ b/src/plugins/gfxdrivers/qvfb/main.cpp @@ -43,6 +43,7 @@ #include <qscreenvfb_qws.h> #include <qstringlist.h> +#ifndef QT_NO_LIBRARY QT_BEGIN_NAMESPACE class ScreenVfbDriver : public QScreenDriverPlugin @@ -78,3 +79,4 @@ Q_EXPORT_STATIC_PLUGIN(ScreenVfbDriver) Q_EXPORT_PLUGIN2(qscreenvfb, ScreenVfbDriver) QT_END_NAMESPACE +#endif //QT_NO_LIBRARY diff --git a/src/plugins/gfxdrivers/transformed/main.cpp b/src/plugins/gfxdrivers/transformed/main.cpp index 982882e..a9ff97d 100644 --- a/src/plugins/gfxdrivers/transformed/main.cpp +++ b/src/plugins/gfxdrivers/transformed/main.cpp @@ -42,7 +42,7 @@ #include <qscreendriverplugin_qws.h> #include <qscreentransformed_qws.h> #include <qstringlist.h> - +#ifndef QT_NO_LIBRARY QT_BEGIN_NAMESPACE class GfxTransformedDriver : public QScreenDriverPlugin @@ -68,9 +68,12 @@ QStringList GfxTransformedDriver::keys() const QScreen* GfxTransformedDriver::create(const QString& driver, int displayId) { +#ifndef QT_NO_QWS_TRANSFORMED if (driver.toLower() == "transformed") return new QTransformedScreen(displayId); - +#else //QT_NO_QWS_TRANSFORMED + printf("QT buildt with QT_NO_QWS_TRANSFORMED. No screen driver returned\n"); +#endif //QT_NO_QWS_TRANSFORMED return 0; } @@ -78,3 +81,4 @@ Q_EXPORT_STATIC_PLUGIN(GfxTransformedDriver) Q_EXPORT_PLUGIN2(qgfxtransformed, GfxTransformedDriver) QT_END_NAMESPACE +#endif //QT_NO_LIBRARY diff --git a/src/plugins/gfxdrivers/vnc/main.cpp b/src/plugins/gfxdrivers/vnc/main.cpp index aa20d11..58c8c25 100644 --- a/src/plugins/gfxdrivers/vnc/main.cpp +++ b/src/plugins/gfxdrivers/vnc/main.cpp @@ -43,6 +43,7 @@ #include <qscreenvnc_qws.h> #include <qstringlist.h> +#ifndef QT_NO_LIBRARY QT_BEGIN_NAMESPACE class GfxVncDriver : public QScreenDriverPlugin @@ -68,9 +69,12 @@ QStringList GfxVncDriver::keys() const QScreen* GfxVncDriver::create(const QString& driver, int displayId) { +#ifndef QT_NO_QWS_VNC if (driver.toLower() == "vnc") return new QVNCScreen(displayId); - +#else //QT_NO_QWS_VNC + printf("QT buildt with QT_NO_QWS_VNC. No screen driver returned\n"); +#endif //QT_NO_QWS_VNC return 0; } @@ -78,3 +82,5 @@ Q_EXPORT_STATIC_PLUGIN(GfxVncDriver) Q_EXPORT_PLUGIN2(qgfxvnc, GfxVncDriver) QT_END_NAMESPACE + +#endif //QT_NO_LIBRARY diff --git a/src/plugins/graphicssystems/graphicssystems.pro b/src/plugins/graphicssystems/graphicssystems.pro index 14e3cfc..0788933 100644 --- a/src/plugins/graphicssystems/graphicssystems.pro +++ b/src/plugins/graphicssystems/graphicssystems.pro @@ -1,6 +1,6 @@ TEMPLATE = subdirs SUBDIRS += trace -contains(QT_CONFIG, opengl):SUBDIRS += opengl +!wince*:contains(QT_CONFIG, opengl):SUBDIRS += opengl contains(QT_CONFIG, openvg):contains(QT_CONFIG, egl):SUBDIRS += openvg contains(QT_CONFIG, shivavg) { diff --git a/src/qt3support/widgets/q3dockarea.cpp b/src/qt3support/widgets/q3dockarea.cpp index afeefff..bb34622 100644 --- a/src/qt3support/widgets/q3dockarea.cpp +++ b/src/qt3support/widgets/q3dockarea.cpp @@ -1019,6 +1019,7 @@ void Q3DockArea::lineUp(bool keepNewLines) if (!keepNewLines) dw->setNewLine(false); } + layout->invalidate(); layout->activate(); } diff --git a/src/script/api/qscriptstring.cpp b/src/script/api/qscriptstring.cpp index 1ede51c..10fccd0 100644 --- a/src/script/api/qscriptstring.cpp +++ b/src/script/api/qscriptstring.cpp @@ -68,6 +68,10 @@ QT_BEGIN_NAMESPACE Call the toString() function to obtain the string that a QScriptString represents. + + Call the toArrayIndex() function to convert a QScriptString to an + array index. This is useful when using QScriptClass to implement + array-like objects. */ /*! @@ -164,6 +168,31 @@ bool QScriptString::operator!=(const QScriptString &other) const } /*! + \since 4.6 + + Attempts to convert this QScriptString to a QtScript array index, + and returns the result. + + If a conversion error occurs, *\a{ok} is set to false; otherwise + *\a{ok} is set to true. +*/ +quint32 QScriptString::toArrayIndex(bool *ok) const +{ + Q_D(const QScriptString); + if (!d) { + if (ok) + *ok = false; + return -1; + } + bool tmp; + bool *okok = ok ? ok : &tmp; + quint32 result = d->identifier.toArrayIndex(okok); + if (!*okok) + result = -1; + return result; +} + +/*! Returns the string that this QScriptString represents, or a null string if this QScriptString is not valid. diff --git a/src/script/api/qscriptstring.h b/src/script/api/qscriptstring.h index 40d156c..bf5d1d5 100644 --- a/src/script/api/qscriptstring.h +++ b/src/script/api/qscriptstring.h @@ -67,6 +67,8 @@ public: bool operator==(const QScriptString &other) const; bool operator!=(const QScriptString &other) const; + quint32 toArrayIndex(bool *ok = 0) const; + QString toString() const; operator QString() const; diff --git a/src/script/bridge/qscriptqobject.cpp b/src/script/bridge/qscriptqobject.cpp index 345489f..caf1018 100644 --- a/src/script/bridge/qscriptqobject.cpp +++ b/src/script/bridge/qscriptqobject.cpp @@ -1190,6 +1190,7 @@ bool QObjectDelegate::getOwnPropertySlot(QScriptObject *object, JSC::ExecState * const JSC::Identifier &propertyName, JSC::PropertySlot &slot) { +#ifndef QT_NO_PROPERTIES QByteArray name = QString(propertyName.ustring()).toLatin1(); QObject *qobject = data->value; if (!qobject) { @@ -1296,12 +1297,16 @@ bool QObjectDelegate::getOwnPropertySlot(QScriptObject *object, JSC::ExecState * } return QScriptObjectDelegate::getOwnPropertySlot(object, exec, propertyName, slot); +#else //QT_NO_PROPERTIES + return false; +#endif //QT_NO_PROPERTIES } void QObjectDelegate::put(QScriptObject *object, JSC::ExecState* exec, const JSC::Identifier& propertyName, JSC::JSValue value, JSC::PutPropertySlot &slot) { +#ifndef QT_NO_PROPERTIES QByteArray name = ((QString)propertyName.ustring()).toLatin1(); QObject *qobject = data->value; if (!qobject) { @@ -1392,12 +1397,14 @@ void QObjectDelegate::put(QScriptObject *object, JSC::ExecState* exec, } QScriptObjectDelegate::put(object, exec, propertyName, value, slot); +#endif //QT_NO_PROPERTIES } bool QObjectDelegate::deleteProperty(QScriptObject *object, JSC::ExecState *exec, const JSC::Identifier& propertyName, bool checkDontDelete) { +#ifndef QT_NO_PROPERTIES QByteArray name = ((QString)propertyName.ustring()).toLatin1(); QObject *qobject = data->value; if (!qobject) { @@ -1436,6 +1443,9 @@ bool QObjectDelegate::deleteProperty(QScriptObject *object, JSC::ExecState *exec } return QScriptObjectDelegate::deleteProperty(object, exec, propertyName, checkDontDelete); +#else //QT_NO_PROPERTIES + return false; +#endif //QT_NO_PROPERTIES } bool QObjectDelegate::getPropertyAttributes(const QScriptObject *object, @@ -1443,6 +1453,7 @@ bool QObjectDelegate::getPropertyAttributes(const QScriptObject *object, const JSC::Identifier &propertyName, unsigned &attributes) const { +#ifndef QT_NO_PROPERTIES // ### try to avoid duplicating logic from getOwnPropertySlot() QByteArray name = ((QString)propertyName.ustring()).toLatin1(); QObject *qobject = data->value; @@ -1511,12 +1522,16 @@ bool QObjectDelegate::getPropertyAttributes(const QScriptObject *object, } return QScriptObjectDelegate::getPropertyAttributes(object, exec, propertyName, attributes); +#else //QT_NO_PROPERTIES + return false; +#endif //QT_NO_PROPERTIES } void QObjectDelegate::getOwnPropertyNames(QScriptObject *object, JSC::ExecState *exec, JSC::PropertyNameArray &propertyNames, bool includeNonEnumerable) { +#ifndef QT_NO_PROPERTIES QObject *qobject = data->value; if (!qobject) { QString message = QString::fromLatin1("cannot get property names of deleted QObject"); @@ -1560,6 +1575,7 @@ void QObjectDelegate::getOwnPropertyNames(QScriptObject *object, JSC::ExecState } QScriptObjectDelegate::getOwnPropertyNames(object, exec, propertyNames, includeNonEnumerable); +#endif //QT_NO_PROPERTIES } void QObjectDelegate::markChildren(QScriptObject *object, JSC::MarkStack& markStack) diff --git a/src/sql/drivers/psql/qsql_psql.cpp b/src/sql/drivers/psql/qsql_psql.cpp index 4b7c2b5..1e41571 100644 --- a/src/sql/drivers/psql/qsql_psql.cpp +++ b/src/sql/drivers/psql/qsql_psql.cpp @@ -357,7 +357,7 @@ QVariant QPSQLResult::data(int i) } return QString::fromAscii(val); } - return strtod(val, 0); + return QString::fromAscii(val).toDouble(); case QVariant::Date: if (val[0] == '\0') { return QVariant(QDate()); diff --git a/src/sql/drivers/sqlite/qsql_sqlite.cpp b/src/sql/drivers/sqlite/qsql_sqlite.cpp index 2766cca..8355de2 100644 --- a/src/sql/drivers/sqlite/qsql_sqlite.cpp +++ b/src/sql/drivers/sqlite/qsql_sqlite.cpp @@ -228,13 +228,9 @@ bool QSQLiteResultPrivate::fetchNext(QSqlCachedResult::ValueCache &values, int i values[i + idx] = sqlite3_column_int64(stmt, i); break; case QSql::LowPrecisionDouble: - values[i + idx] = sqlite3_column_double(stmt, i); - break; case QSql::HighPrecision: default: - values[i + idx] = QString::fromUtf16(static_cast<const ushort *>( - sqlite3_column_text16(stmt, i)), - sqlite3_column_bytes16(stmt, i) / sizeof(ushort)); + values[i + idx] = sqlite3_column_double(stmt, i); break; }; break; diff --git a/src/sql/models/qsqlquerymodel.cpp b/src/sql/models/qsqlquerymodel.cpp index a72ad8c..1719239 100644 --- a/src/sql/models/qsqlquerymodel.cpp +++ b/src/sql/models/qsqlquerymodel.cpp @@ -417,7 +417,7 @@ bool QSqlQueryModel::setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role) { Q_D(QSqlQueryModel); - if (orientation != Qt::Horizontal || section < 0) + if (orientation != Qt::Horizontal || section < 0 || columnCount() <= section) return false; if (d->headers.size() <= section) diff --git a/tests/auto/collections/tst_collections.cpp b/tests/auto/collections/tst_collections.cpp index 670cff0..f97805e 100644 --- a/tests/auto/collections/tst_collections.cpp +++ b/tests/auto/collections/tst_collections.cpp @@ -164,6 +164,7 @@ private slots: void qtimerList(); void containerTypedefs(); void forwardDeclared(); + void alignment(); }; struct LargeStatic { @@ -3481,5 +3482,113 @@ void tst_Collections::forwardDeclared() { typedef QSet<T1> C; C *x = 0; /* C::iterator i; */ C::const_iterator j; Q_UNUSED(x) } } +#if defined(Q_ALIGNOF) && defined(Q_DECL_ALIGN) + +class Q_DECL_ALIGN(4) Aligned4 +{ + char i; +public: + Aligned4(int i = 0) : i(i) {} + bool checkAligned() const + { + return (quintptr(this) & 3) == 0; + } + + inline bool operator==(const Aligned4 &other) const { return i == other.i; } + inline bool operator<(const Aligned4 &other) const { return i < other.i; } + friend inline int qHash(const Aligned4 &a) { return qHash(a.i); } +}; + +class Q_DECL_ALIGN(128) Aligned128 +{ + char i; +public: + Aligned128(int i = 0) : i(i) {} + bool checkAligned() const + { + return (quintptr(this) & 127) == 0; + } + + inline bool operator==(const Aligned128 &other) const { return i == other.i; } + inline bool operator<(const Aligned128 &other) const { return i < other.i; } + friend inline int qHash(const Aligned128 &a) { return qHash(a.i); } +}; + +template<typename C> +void testVectorAlignment() +{ + typedef typename C::value_type Aligned; + C container; + container.append(Aligned()); + QVERIFY(container[0].checkAligned()); + + for (int i = 0; i < 200; ++i) + container.append(Aligned()); + + for (int i = 0; i < container.size(); ++i) + QVERIFY(container.at(i).checkAligned()); +} + +template<typename C> +void testContiguousCacheAlignment() +{ + typedef typename C::value_type Aligned; + C container(150); + container.append(Aligned()); + QVERIFY(container[container.firstIndex()].checkAligned()); + + for (int i = 0; i < 200; ++i) + container.append(Aligned()); + + for (int i = container.firstIndex(); i < container.lastIndex(); ++i) + QVERIFY(container.at(i).checkAligned()); +} + +template<typename C> +void testAssociativeContainerAlignment() +{ + typedef typename C::key_type Key; + typedef typename C::mapped_type Value; + C container; + container.insert(Key(), Value()); + + typename C::const_iterator it = container.constBegin(); + QVERIFY(it.key().checkAligned()); + QVERIFY(it.value().checkAligned()); + + // add some more elements + for (int i = 0; i < 200; ++i) + container.insert(Key(i), Value(i)); + + it = container.constBegin(); + for ( ; it != container.constEnd(); ++it) { + QVERIFY(it.key().checkAligned()); + QVERIFY(it.value().checkAligned()); + } +} + +void tst_Collections::alignment() +{ + testVectorAlignment<QVector<Aligned4> >(); + testVectorAlignment<QVector<Aligned128> >(); + testContiguousCacheAlignment<QContiguousCache<Aligned4> >(); + testContiguousCacheAlignment<QContiguousCache<Aligned128> >(); + testAssociativeContainerAlignment<QMap<Aligned4, Aligned4> >(); + testAssociativeContainerAlignment<QMap<Aligned4, Aligned128> >(); + testAssociativeContainerAlignment<QMap<Aligned128, Aligned4> >(); + testAssociativeContainerAlignment<QMap<Aligned128, Aligned128> >(); + testAssociativeContainerAlignment<QHash<Aligned4, Aligned4> >(); + testAssociativeContainerAlignment<QHash<Aligned4, Aligned128> >(); + testAssociativeContainerAlignment<QHash<Aligned128, Aligned4> >(); + testAssociativeContainerAlignment<QHash<Aligned128, Aligned128> >(); +} + +#else +void tst_Collections::alignment() +{ + QSKIP("Compiler doesn't support necessary extension keywords", SkipAll) +} +#endif + QTEST_APPLESS_MAIN(tst_Collections) #include "tst_collections.moc" diff --git a/tests/auto/gestures/tst_gestures.cpp b/tests/auto/gestures/tst_gestures.cpp index 92f979f..02c8232 100644 --- a/tests/auto/gestures/tst_gestures.cpp +++ b/tests/auto/gestures/tst_gestures.cpp @@ -103,6 +103,8 @@ int CustomEvent::EventType = 0; class CustomGestureRecognizer : public QGestureRecognizer { public: + static bool ConsumeEvents; + CustomGestureRecognizer() { if (!CustomEvent::EventType) @@ -117,7 +119,9 @@ public: QGestureRecognizer::Result filterEvent(QGesture *state, QObject*, QEvent *event) { if (event->type() == CustomEvent::EventType) { - QGestureRecognizer::Result result = QGestureRecognizer::ConsumeEventHint; + QGestureRecognizer::Result result = 0; + if (CustomGestureRecognizer::ConsumeEvents) + result |= QGestureRecognizer::ConsumeEventHint; CustomGesture *g = static_cast<CustomGesture*>(state); CustomEvent *e = static_cast<CustomEvent*>(event); g->serial = e->serial; @@ -143,6 +147,7 @@ public: QGestureRecognizer::reset(state); } }; +bool CustomGestureRecognizer::ConsumeEvents = false; // same as CustomGestureRecognizer but triggers early without the maybe state class CustomContinuousGestureRecognizer : public QGestureRecognizer @@ -280,6 +285,7 @@ protected: } }; +// TODO rename to sendGestureSequence static void sendCustomGesture(CustomEvent *event, QObject *object, QGraphicsScene *scene = 0) { for (int i = CustomGesture::SerialMaybeThreshold; @@ -322,6 +328,10 @@ private slots: void multipleGesturesInTree(); void multipleGesturesInComplexTree(); void testMapToScene(); + void ungrabGesture(); + void consumeEventHint(); + void unregisterRecognizer(); + void autoCancelGestures(); }; tst_Gestures::tst_Gestures() @@ -334,13 +344,14 @@ tst_Gestures::~tst_Gestures() void tst_Gestures::initTestCase() { - CustomGesture::GestureType = qApp->registerGestureRecognizer(new CustomGestureRecognizer); + CustomGesture::GestureType = QApplication::registerGestureRecognizer(new CustomGestureRecognizer); QVERIFY(CustomGesture::GestureType != Qt::GestureType(0)); QVERIFY(CustomGesture::GestureType != Qt::CustomGesture); } void tst_Gestures::cleanupTestCase() { + QApplication::unregisterGestureRecognizer(CustomGesture::GestureType); } void tst_Gestures::init() @@ -372,6 +383,19 @@ void tst_Gestures::customGesture() QCOMPARE(widget.events.canceled.size(), 0); } +void tst_Gestures::consumeEventHint() +{ + GestureWidget widget; + widget.grabGesture(CustomGesture::GestureType, Qt::WidgetGesture); + + CustomGestureRecognizer::ConsumeEvents = true; + CustomEvent event; + sendCustomGesture(&event, &widget); + CustomGestureRecognizer::ConsumeEvents = false; + + QCOMPARE(widget.customEventsReceived, 0); +} + void tst_Gestures::autoCancelingGestures() { GestureWidget widget; @@ -534,7 +558,7 @@ void tst_Gestures::conflictingGestures() parent.reset(); child->reset(); - Qt::GestureType ContinuousGesture = qApp->registerGestureRecognizer(new CustomContinuousGestureRecognizer); + Qt::GestureType ContinuousGesture = QApplication::registerGestureRecognizer(new CustomContinuousGestureRecognizer); static const int ContinuousGestureEventsCount = CustomGesture::SerialFinishedThreshold - CustomGesture::SerialMaybeThreshold + 1; child->grabGesture(ContinuousGesture); // child accepts override. And it also receives another custom gesture. @@ -547,6 +571,8 @@ void tst_Gestures::conflictingGestures() QCOMPARE(child->events.all.count(), TotalGestureEventsCount + ContinuousGestureEventsCount); QCOMPARE(parent.gestureOverrideEventsReceived, 0); QCOMPARE(parent.gestureEventsReceived, 0); + + QApplication::unregisterGestureRecognizer(ContinuousGesture); } void tst_Gestures::finishedWithoutStarted() @@ -710,6 +736,7 @@ void tst_Gestures::graphicsItemGesture() { QGraphicsScene scene; QGraphicsView view(&scene); + view.setWindowFlags(Qt::X11BypassWindowManagerHint); GestureItem *item = new GestureItem("item"); scene.addItem(item); @@ -772,6 +799,7 @@ void tst_Gestures::graphicsItemTreeGesture() { QGraphicsScene scene; QGraphicsView view(&scene); + view.setWindowFlags(Qt::X11BypassWindowManagerHint); GestureItem *item1 = new GestureItem("item1"); item1->setPos(100, 100); @@ -829,6 +857,7 @@ void tst_Gestures::explicitGraphicsObjectTarget() { QGraphicsScene scene; QGraphicsView view(&scene); + view.setWindowFlags(Qt::X11BypassWindowManagerHint); GestureItem *item1 = new GestureItem("item1"); scene.addItem(item1); @@ -882,6 +911,7 @@ void tst_Gestures::gestureOverChildGraphicsItem() { QGraphicsScene scene; QGraphicsView view(&scene); + view.setWindowFlags(Qt::X11BypassWindowManagerHint); GestureItem *item0 = new GestureItem("item0"); scene.addItem(item0); @@ -951,7 +981,7 @@ void tst_Gestures::twoGesturesOnDifferentLevel() GestureWidget *child = new GestureWidget("child"); l->addWidget(child); - Qt::GestureType SecondGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer); + Qt::GestureType SecondGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer); parent.grabGesture(CustomGesture::GestureType, Qt::WidgetWithChildrenGesture); child->grabGesture(SecondGesture, Qt::WidgetWithChildrenGesture); @@ -978,6 +1008,8 @@ void tst_Gestures::twoGesturesOnDifferentLevel() QCOMPARE(parent.events.all.size(), TotalGestureEventsCount); for(int i = 0; i < child->events.all.size(); ++i) QCOMPARE(parent.events.all.at(i), CustomGesture::GestureType); + + QApplication::unregisterGestureRecognizer(SecondGesture); } void tst_Gestures::multipleGesturesInTree() @@ -989,8 +1021,8 @@ void tst_Gestures::multipleGesturesInTree() GestureWidget *D = new GestureWidget("D", C); Qt::GestureType FirstGesture = CustomGesture::GestureType; - Qt::GestureType SecondGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer); - Qt::GestureType ThirdGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer); + Qt::GestureType SecondGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer); + Qt::GestureType ThirdGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer); A->grabGesture(FirstGesture, Qt::WidgetWithChildrenGesture); // A [1 3] A->grabGesture(ThirdGesture, Qt::WidgetWithChildrenGesture); // | @@ -1046,6 +1078,9 @@ void tst_Gestures::multipleGesturesInTree() QCOMPARE(A->events.all.count(FirstGesture), TotalGestureEventsCount); QCOMPARE(A->events.all.count(SecondGesture), 0); QCOMPARE(A->events.all.count(ThirdGesture), TotalGestureEventsCount); + + QApplication::unregisterGestureRecognizer(SecondGesture); + QApplication::unregisterGestureRecognizer(ThirdGesture); } void tst_Gestures::multipleGesturesInComplexTree() @@ -1057,12 +1092,12 @@ void tst_Gestures::multipleGesturesInComplexTree() GestureWidget *D = new GestureWidget("D", C); Qt::GestureType FirstGesture = CustomGesture::GestureType; - Qt::GestureType SecondGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer); - Qt::GestureType ThirdGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer); - Qt::GestureType FourthGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer); - Qt::GestureType FifthGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer); - Qt::GestureType SixthGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer); - Qt::GestureType SeventhGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer); + Qt::GestureType SecondGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer); + Qt::GestureType ThirdGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer); + Qt::GestureType FourthGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer); + Qt::GestureType FifthGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer); + Qt::GestureType SixthGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer); + Qt::GestureType SeventhGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer); A->grabGesture(FirstGesture, Qt::WidgetWithChildrenGesture); // A [1,3,4] A->grabGesture(ThirdGesture, Qt::WidgetWithChildrenGesture); // | @@ -1139,6 +1174,13 @@ void tst_Gestures::multipleGesturesInComplexTree() QCOMPARE(A->events.all.count(FifthGesture), 0); QCOMPARE(A->events.all.count(SixthGesture), 0); QCOMPARE(A->events.all.count(SeventhGesture), 0); + + QApplication::unregisterGestureRecognizer(SecondGesture); + QApplication::unregisterGestureRecognizer(ThirdGesture); + QApplication::unregisterGestureRecognizer(FourthGesture); + QApplication::unregisterGestureRecognizer(FifthGesture); + QApplication::unregisterGestureRecognizer(SixthGesture); + QApplication::unregisterGestureRecognizer(SeventhGesture); } void tst_Gestures::testMapToScene() @@ -1151,6 +1193,7 @@ void tst_Gestures::testMapToScene() QGraphicsScene scene; QGraphicsView view(&scene); + view.setWindowFlags(Qt::X11BypassWindowManagerHint); GestureItem *item0 = new GestureItem; scene.addItem(item0); @@ -1166,5 +1209,150 @@ void tst_Gestures::testMapToScene() QCOMPARE(event.mapToScene(origin + QPoint(100, 200)), view.mapToScene(QPoint(100, 200))); } +void tst_Gestures::ungrabGesture() // a method on QWidget +{ + class MockGestureWidget : public GestureWidget { + public: + MockGestureWidget(const char *name = 0, QWidget *parent = 0) + : GestureWidget(name, parent) { } + + + QSet<QGesture*> gestures; + protected: + bool event(QEvent *event) + { + if (event->type() == QEvent::Gesture) { + QGestureEvent *gestureEvent = static_cast<QGestureEvent*>(event); + if (gestureEvent) + foreach (QGesture *g, gestureEvent->allGestures()) + gestures.insert(g); + } + return GestureWidget::event(event); + } + }; + + MockGestureWidget parent("A"); + MockGestureWidget *a = &parent; + MockGestureWidget *b = new MockGestureWidget("B", a); + + a->grabGesture(CustomGesture::GestureType, Qt::WidgetGesture); + b->grabGesture(CustomGesture::GestureType, Qt::WidgetWithChildrenGesture); + b->ignoredGestures << CustomGesture::GestureType; + + CustomEvent event; + // sending an event will cause the QGesture objects to be instantiated for the widgets + sendCustomGesture(&event, b); + + QCOMPARE(a->gestures.count(), 1); + QPointer<QGesture> customGestureA; + customGestureA = *(a->gestures.begin()); + QVERIFY(!customGestureA.isNull()); + QCOMPARE(customGestureA->gestureType(), CustomGesture::GestureType); + + QCOMPARE(b->gestures.count(), 1); + QPointer<QGesture> customGestureB; + customGestureB = *(b->gestures.begin()); + QVERIFY(!customGestureB.isNull()); + QVERIFY(customGestureA.data() == customGestureB.data()); + QCOMPARE(customGestureB->gestureType(), CustomGesture::GestureType); + + a->gestures.clear(); + // sending an event will cause the QGesture objects to be instantiated for the widget + sendCustomGesture(&event, a); + + QCOMPARE(a->gestures.count(), 1); + customGestureA = *(a->gestures.begin()); + QVERIFY(!customGestureA.isNull()); + QCOMPARE(customGestureA->gestureType(), CustomGesture::GestureType); + QVERIFY(customGestureA.data() != customGestureB.data()); + + a->ungrabGesture(CustomGesture::GestureType); + QVERIFY(customGestureA.isNull()); + QVERIFY(!customGestureB.isNull()); + + a->gestures.clear(); + a->reset(); + // send again to 'b' and make sure a never gets it. + sendCustomGesture(&event, b); + QCOMPARE(a->gestureEventsReceived, 0); + QCOMPARE(a->gestureOverrideEventsReceived, 0); +} + +void tst_Gestures::unregisterRecognizer() // a method on QApplication +{ + /* + The hardest usecase to get right is when we remove a recognizer while several + of the gestures it created are in active state and we immediately add a new recognizer + for the same type (thus replacing the old one). + The expected result is that all old gestures continue till they are finished/cancelled + and the new recognizer starts creating gestures immediately at registration. + + This implies that deleting of the recognizer happens only when there are no more gestures + that it created. (since gestures might have a pointer to the recognizer) + */ + +} + +void tst_Gestures::autoCancelGestures() +{ + class MockRecognizer : public QGestureRecognizer { + public: + QGestureRecognizer::Result filterEvent(QGesture *gesture, QObject *watched, QEvent *event) + { + Q_UNUSED(gesture); + Q_UNUSED(watched); + if (event->type() == QEvent::MouseButtonPress) + return QGestureRecognizer::GestureTriggered; + if (event->type() == QEvent::MouseButtonRelease) + return QGestureRecognizer::GestureFinished; + return QGestureRecognizer::Ignore; + } + }; + + class MockWidget : public GestureWidget { + public: + MockWidget(const char *name) : GestureWidget(name) { } + + bool event(QEvent *event) + { + if (event->type() == QEvent::Gesture) { + QGestureEvent *ge = static_cast<QGestureEvent*>(event); + Q_ASSERT(ge->allGestures().count() == 1); // can't use QCOMPARE here... + ge->allGestures().first()->setGestureCancelPolicy(QGesture::CancelAllInContext); + } + return GestureWidget::event(event); + } + }; + + MockWidget parent("parent"); // this one sets the cancel policy to CancelAllInContext + parent.resize(300, 100); + GestureWidget *child = new GestureWidget("child", &parent); + child->setGeometry(10, 10, 100, 80); + + Qt::GestureType type = QApplication::registerGestureRecognizer(new MockRecognizer()); + parent.grabGesture(type, Qt::WidgetWithChildrenGesture); + child->grabGesture(type, Qt::WidgetWithChildrenGesture); + + /* + An event is send to both the child and the parent, when the child gets it a gesture is triggered + and send to the child. + When the parent gets the event a new gesture is triggered and delivered to the parent. When the + parent gets it he accepts it and that causes the cancel policy to activate. + The cause of that is the gesture for the child is cancelled and send to the child as such. + */ + QMouseEvent event(QEvent::MouseButtonPress, QPoint(20,20), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); + QApplication::sendEvent(child, &event); + QCOMPARE(child->events.started.count(), 1); + QCOMPARE(child->events.all.count(), 1); + QCOMPARE(parent.events.all.count(), 0); + child->reset(); + QApplication::sendEvent(&parent, &event); + QCOMPARE(parent.events.all.count(), 1); + QCOMPARE(parent.events.started.count(), 1); + QCOMPARE(child->events.started.count(), 0); + QCOMPARE(child->events.all.count(), 1); + QCOMPARE(child->events.canceled.count(), 1); +} + QTEST_MAIN(tst_Gestures) #include "tst_gestures.moc" diff --git a/tests/auto/qactiongroup/tst_qactiongroup.cpp b/tests/auto/qactiongroup/tst_qactiongroup.cpp index 2d215a0..7259479 100644 --- a/tests/auto/qactiongroup/tst_qactiongroup.cpp +++ b/tests/auto/qactiongroup/tst_qactiongroup.cpp @@ -70,6 +70,7 @@ private slots: void separators(); void testActionInTwoQActionGroup(); + void unCheckCurrentAction(); }; tst_QActionGroup::tst_QActionGroup() @@ -278,5 +279,25 @@ void tst_QActionGroup::testActionInTwoQActionGroup() QCOMPARE(group1.actions().isEmpty(), true); } +void tst_QActionGroup::unCheckCurrentAction() +{ + QActionGroup group(0); + QAction action1(&group) ,action2(&group); + action1.setCheckable(true); + action2.setCheckable(true); + QVERIFY(!action1.isChecked()); + QVERIFY(!action2.isChecked()); + action1.setChecked(true); + QVERIFY(action1.isChecked()); + QVERIFY(!action2.isChecked()); + QAction *current = group.checkedAction(); + QCOMPARE(current, &action1); + current->setChecked(false); + QVERIFY(!action1.isChecked()); + QVERIFY(!action2.isChecked()); + QVERIFY(group.checkedAction() == 0); +} + + QTEST_MAIN(tst_QActionGroup) #include "tst_qactiongroup.moc" diff --git a/tests/auto/qalgorithms/tst_qalgorithms.cpp b/tests/auto/qalgorithms/tst_qalgorithms.cpp index 1f1de82..176a451 100644 --- a/tests/auto/qalgorithms/tst_qalgorithms.cpp +++ b/tests/auto/qalgorithms/tst_qalgorithms.cpp @@ -602,9 +602,15 @@ void tst_QAlgorithms::test_qUpperBound() void tst_QAlgorithms::test_qBinaryFind_data() { QTest::addColumn<QList<int> >("data"); - QTest::addColumn<int>("resultValue"); + QTest::addColumn<int>("resultValue"); // -42 means not found QTest::newRow("sorted-duplicate") << (QList<int>() << 1 << 2 << 2 << 3) << 2; + QTest::newRow("sorted-end") << (QList<int>() << -5 << -2 << 0 << 8) << 8; + QTest::newRow("sorted-beginning") << (QList<int>() << -5 << -2 << 0 << 8) << -5; + QTest::newRow("sorted-duplicate-beginning") << (QList<int>() << -5 << -5 << -2 << 0 << 8) << -5; + QTest::newRow("empty") << (QList<int>()) << -42; + QTest::newRow("not found 1 ") << (QList<int>() << 1 << 5 << 8 << 65) << -42; + QTest::newRow("not found 2 ") << (QList<int>() << -456 << -5 << 8 << 65) << -42; } void tst_QAlgorithms::test_qBinaryFind() @@ -612,6 +618,15 @@ void tst_QAlgorithms::test_qBinaryFind() QFETCH(QList<int>, data); QFETCH(int, resultValue); + //-42 means not found + if (resultValue == -42) { + QVERIFY(qBinaryFind(data.constBegin(), data.constEnd(), resultValue) == data.end()); + QVERIFY(qBinaryFind(data, resultValue) == data.end()); + QVERIFY(qBinaryFind(data.begin(), data.end(), resultValue) == data.end()); + QVERIFY(qBinaryFind(data.begin(), data.end(), resultValue, qLess<int>()) == data.end()); + return; + } + QCOMPARE(*qBinaryFind(data.constBegin(), data.constEnd(), resultValue), resultValue); QCOMPARE(*qBinaryFind(data.begin(), data.end(), resultValue), resultValue); QCOMPARE(*qBinaryFind(data, resultValue), resultValue); diff --git a/tests/auto/qapplication/tst_qapplication.cpp b/tests/auto/qapplication/tst_qapplication.cpp index 675e559..5888866 100644 --- a/tests/auto/qapplication/tst_qapplication.cpp +++ b/tests/auto/qapplication/tst_qapplication.cpp @@ -129,6 +129,7 @@ private slots: void style(); void allWidgets(); + void topLevelWidgets(); void setAttribute(); @@ -1795,6 +1796,27 @@ void tst_QApplication::allWidgets() QVERIFY(!app.allWidgets().contains(w)); // removal test } +void tst_QApplication::topLevelWidgets() +{ + int argc = 1; + QApplication app(argc, &argv0, QApplication::GuiServer); + QWidget *w = new QWidget; + w->show(); +#ifndef QT_NO_CLIPBOARD + QClipboard *clipboard = QApplication::clipboard(); + QString originalText = clipboard->text(); + clipboard->setText(QString("newText")); +#endif + app.processEvents(); + QVERIFY(QApplication::topLevelWidgets().contains(w)); + QCOMPARE(QApplication::topLevelWidgets().count(), 1); + delete w; + w = 0; + app.processEvents(); + QCOMPARE(QApplication::topLevelWidgets().count(), 0); +} + + void tst_QApplication::setAttribute() { diff --git a/tests/auto/qcombobox/tst_qcombobox.cpp b/tests/auto/qcombobox/tst_qcombobox.cpp index 0d3469d..51a7ff8 100644 --- a/tests/auto/qcombobox/tst_qcombobox.cpp +++ b/tests/auto/qcombobox/tst_qcombobox.cpp @@ -152,6 +152,8 @@ private slots: void subControlRectsWithOffset(); void task260974_menuItemRectangleForComboBoxPopup(); void removeItem(); + void resetModel(); + void keyBoardNavigationWithMouse(); protected slots: void onEditTextChanged( const QString &newString ); @@ -2416,5 +2418,88 @@ void tst_QComboBox::removeItem() QCOMPARE(cb.count(), 0); } +void tst_QComboBox::resetModel() +{ + class StringListModel : public QStringListModel + { + public: + StringListModel(const QStringList &list) : QStringListModel(list) + { + } + + void reset() + { + QStringListModel::reset(); + } + }; + QComboBox cb; + StringListModel model( QStringList() << "1" << "2"); + QSignalSpy spy(&cb, SIGNAL(currentIndexChanged(int))); + QCOMPARE(spy.count(), 0); + QCOMPARE(cb.currentIndex(), -1); //no selection + + cb.setModel(&model); + + QCOMPARE(spy.count(), 1); + QCOMPARE(cb.currentIndex(), 0); //first item selected + + model.reset(); + QCOMPARE(spy.count(), 2); + QCOMPARE(cb.currentIndex(), -1); //no selection + +} + +void tst_QComboBox::keyBoardNavigationWithMouse() +{ + QComboBox combo; + combo.setEditable(false); + for (int i = 0; i < 80; i++) + combo.addItem( QString::number(i)); + combo.show(); + QApplication::setActiveWindow(&combo); + QTest::qWaitForWindowShown(&combo); + QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&combo)); + + QCOMPARE(combo.currentText(), QLatin1String("0")); + + combo.setFocus(); + QTRY_VERIFY(combo.hasFocus()); + + QTest::keyClick(testWidget->lineEdit(), Qt::Key_Space); + QTest::qWait(30); + QTRY_VERIFY(combo.view()); + QTRY_VERIFY(combo.view()->isVisible()); + QTest::qWait(130); + + QCOMPARE(combo.currentText(), QLatin1String("0")); + + QCursor::setPos(combo.view()->mapToGlobal(combo.view()->rect().center())); + QTest::qWait(200); + +#define GET_SELECTION(SEL) \ + QCOMPARE(combo.view()->selectionModel()->selection().count(), 1); \ + QCOMPARE(combo.view()->selectionModel()->selection().indexes().count(), 1); \ + SEL = combo.view()->selectionModel()->selection().indexes().first().row() + + int selection; + GET_SELECTION(selection); + + //since we moved the mouse is in the middle it should even be around 5; + QVERIFY(selection > 3); + + static const int final = 40; + for (int i = selection + 1; i <= final; i++) + { + QTest::keyClick(combo.view(), Qt::Key_Down); + QTest::qWait(20); + GET_SELECTION(selection); + QCOMPARE(selection, i); + } + + QTest::keyClick(combo.view(), Qt::Key_Enter); + QTRY_COMPARE(combo.currentText(), QString::number(final)); +} + + QTEST_MAIN(tst_QComboBox) #include "tst_qcombobox.moc" diff --git a/tests/auto/qdbusabstractinterface/tst_qdbusabstractinterface.cpp b/tests/auto/qdbusabstractinterface/tst_qdbusabstractinterface.cpp index baf769f..91050f5 100644 --- a/tests/auto/qdbusabstractinterface/tst_qdbusabstractinterface.cpp +++ b/tests/auto/qdbusabstractinterface/tst_qdbusabstractinterface.cpp @@ -103,6 +103,8 @@ private slots: void getComplexSignal_data(); void getComplexSignal(); + void followSignal(); + void createErrors_data(); void createErrors(); @@ -130,6 +132,9 @@ tst_QDBusAbstractInterface::tst_QDBusAbstractInterface() void tst_QDBusAbstractInterface::initTestCase() { + // enable debugging temporarily: + putenv("QDBUS_DEBUG=1"); + // register the object QDBusConnection con = QDBusConnection::sessionBus(); QVERIFY(con.isConnected()); @@ -432,6 +437,60 @@ void tst_QDBusAbstractInterface::getComplexSignal() QCOMPARE(s[0][0].value<RegisteredType>(), expectedValue); } +void tst_QDBusAbstractInterface::followSignal() +{ + const QString serviceToFollow = "com.trolltech.tst_qdbusabstractinterface.FollowMe"; + Pinger p = getPinger(serviceToFollow); + QVERIFY2(p, "Not connected to D-Bus"); + + QDBusConnection con = p->connection(); + QVERIFY(!con.interface()->isServiceRegistered(serviceToFollow)); + Pinger control = getPinger(""); + + // we need to connect the signal somewhere in order for D-Bus to enable the rules + QTestEventLoop::instance().connect(p.data(), SIGNAL(voidSignal()), SLOT(exitLoop())); + QTestEventLoop::instance().connect(control.data(), SIGNAL(voidSignal()), SLOT(exitLoop())); + QSignalSpy s(p.data(), SIGNAL(voidSignal())); + + emit targetObj.voidSignal(); + QTestEventLoop::instance().enterLoop(200); + QVERIFY(!QTestEventLoop::instance().timeout()); + + // signal must not have been received because the service isn't registered + QVERIFY(s.isEmpty()); + + // now register the service + QDBusReply<QDBusConnectionInterface::RegisterServiceReply> r = + con.interface()->registerService(serviceToFollow, QDBusConnectionInterface::DontQueueService, + QDBusConnectionInterface::DontAllowReplacement); + QVERIFY(r.isValid() && r.value() == QDBusConnectionInterface::ServiceRegistered); + QVERIFY(con.interface()->isServiceRegistered(serviceToFollow)); + + // emit the signal again: + emit targetObj.voidSignal(); + QTestEventLoop::instance().enterLoop(2); + QVERIFY(!QTestEventLoop::instance().timeout()); + + // now the signal must have been received: + QCOMPARE(s.size(), 1); + QVERIFY(s.at(0).size() == 0); + s.clear(); + + // disconnect the signal + disconnect(p.data(), SIGNAL(voidSignal()), &QTestEventLoop::instance(), 0); + + // emit the signal again: + emit targetObj.voidSignal(); + QTestEventLoop::instance().enterLoop(2); + QVERIFY(!QTestEventLoop::instance().timeout()); + + // and now it mustn't have been received + QVERIFY(s.isEmpty()); + + // cleanup: + con.interface()->unregisterService(serviceToFollow); +} + void tst_QDBusAbstractInterface::createErrors_data() { QTest::addColumn<QString>("service"); diff --git a/tests/auto/qdbusinterface/tst_qdbusinterface.cpp b/tests/auto/qdbusinterface/tst_qdbusinterface.cpp index e31a3a0..62d6342 100644 --- a/tests/auto/qdbusinterface/tst_qdbusinterface.cpp +++ b/tests/auto/qdbusinterface/tst_qdbusinterface.cpp @@ -171,6 +171,13 @@ class tst_QDBusInterface: public QObject { Q_OBJECT MyObject obj; +public slots: + void testServiceOwnerChanged(const QString &service) + { + if (service == "com.example.Test") + QTestEventLoop::instance().exitLoop(); + } + private slots: void initTestCase(); @@ -235,32 +242,13 @@ void tst_QDBusInterface::invalidAfterServiceOwnerChanged() QDBusInterface invalidInterface("com.example.Test", "/"); QVERIFY(!invalidInterface.isValid()); + QTestEventLoop::instance().connect(connIface, SIGNAL(serviceOwnerChanged(QString, QString, QString)), + SLOT(exitLoop())); QVERIFY(connIface->registerService("com.example.Test") == QDBusConnectionInterface::ServiceRegistered); - QSignalSpy serviceOwnerChangedSpy(connIface, SIGNAL(serviceOwnerChanged(QString, QString, QString))); - - QEventLoop loop; - QObject::connect(connIface, SIGNAL(serviceOwnerChanged(QString, QString, QString)), - &loop, SLOT(quit())); - loop.exec(); - - // at least once, but other services might have changed while running the test, too. - QVERIFY(serviceOwnerChangedSpy.count() >= 1); - bool foundOurService = false; - for (int i = 0; i < serviceOwnerChangedSpy.count(); ++i) { - QList<QVariant> args = serviceOwnerChangedSpy.at(i); - QString name = args[0].toString(); - QString oldOwner = args[1].toString(); - QString newOwner = args[2].toString(); - if (name == QLatin1String("com.example.Test")) { - if (newOwner == conn.baseService()) { - foundOurService = true; - break; - } - } - } - QVERIFY(foundOurService); + QTestEventLoop::instance().enterLoop(5); + QVERIFY(!QTestEventLoop::instance().timeout()); QVERIFY(!invalidInterface.isValid()); } diff --git a/tests/auto/qdbusservicewatcher/qdbusservicewatcher.pro b/tests/auto/qdbusservicewatcher/qdbusservicewatcher.pro new file mode 100644 index 0000000..4970f16 --- /dev/null +++ b/tests/auto/qdbusservicewatcher/qdbusservicewatcher.pro @@ -0,0 +1,8 @@ +load(qttest_p4) +QT = core +contains(QT_CONFIG,dbus): { + SOURCES += tst_qdbusservicewatcher.cpp + QT += dbus +} else { + SOURCES += ../qdbusmarshall/dummy.cpp +} diff --git a/tests/auto/qdbusservicewatcher/tst_qdbusservicewatcher.cpp b/tests/auto/qdbusservicewatcher/tst_qdbusservicewatcher.cpp new file mode 100644 index 0000000..10b43b1 --- /dev/null +++ b/tests/auto/qdbusservicewatcher/tst_qdbusservicewatcher.cpp @@ -0,0 +1,273 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtDBus/QDBusServiceWatcher> +#include <QtDBus> +#include <QtTest> + +class tst_QDBusServiceWatcher: public QObject +{ + Q_OBJECT + QString serviceName; +public: + tst_QDBusServiceWatcher(); + +private slots: + void initTestCase(); + void cleanup(); + + void watchForCreation(); + void watchForDisappearance(); + void watchForOwnerChange(); + void modeChange(); +}; + +tst_QDBusServiceWatcher::tst_QDBusServiceWatcher() + : serviceName("com.example.TestName") +{ +} + +void tst_QDBusServiceWatcher::initTestCase() +{ + QDBusConnection con = QDBusConnection::sessionBus(); + QVERIFY(con.isConnected()); +} + +void tst_QDBusServiceWatcher::cleanup() +{ + // ensure that the name isn't registered + QDBusConnection::sessionBus().unregisterService(serviceName); +} + +void tst_QDBusServiceWatcher::watchForCreation() +{ + QDBusConnection con = QDBusConnection::sessionBus(); + QVERIFY(con.isConnected()); + + QDBusServiceWatcher watcher(serviceName, con, QDBusServiceWatcher::WatchForRegistration); + + QSignalSpy spyR(&watcher, SIGNAL(serviceRegistered(QString))); + QSignalSpy spyU(&watcher, SIGNAL(serviceUnregistered(QString))); + QSignalSpy spyO(&watcher, SIGNAL(serviceOwnerChanged(QString,QString,QString))); + QTestEventLoop::instance().connect(&watcher, SIGNAL(serviceRegistered(QString)), SLOT(exitLoop())); + + // register a name + QVERIFY(con.registerService(serviceName)); + + QTestEventLoop::instance().enterLoop(1); + QVERIFY(!QTestEventLoop::instance().timeout()); + + QCOMPARE(spyR.count(), 1); + QCOMPARE(spyR.at(0).at(0).toString(), serviceName); + + QCOMPARE(spyU.count(), 0); + + QCOMPARE(spyO.count(), 1); + QCOMPARE(spyO.at(0).at(0).toString(), serviceName); + QVERIFY(spyO.at(0).at(1).toString().isEmpty()); + QCOMPARE(spyO.at(0).at(2).toString(), con.baseService()); + + spyR.clear(); + spyU.clear(); + spyO.clear(); + + // unregister it: + con.unregisterService(serviceName); + + // and register again + QVERIFY(con.registerService(serviceName)); + + QTestEventLoop::instance().enterLoop(1); + QVERIFY(!QTestEventLoop::instance().timeout()); + + QCOMPARE(spyR.count(), 1); + QCOMPARE(spyR.at(0).at(0).toString(), serviceName); + + QCOMPARE(spyU.count(), 0); + + QCOMPARE(spyO.count(), 1); + QCOMPARE(spyO.at(0).at(0).toString(), serviceName); + QVERIFY(spyO.at(0).at(1).toString().isEmpty()); + QCOMPARE(spyO.at(0).at(2).toString(), con.baseService()); +} + +void tst_QDBusServiceWatcher::watchForDisappearance() +{ + QDBusConnection con = QDBusConnection::sessionBus(); + QVERIFY(con.isConnected()); + + QDBusServiceWatcher watcher(serviceName, con, QDBusServiceWatcher::WatchForUnregistration); + + QSignalSpy spyR(&watcher, SIGNAL(serviceRegistered(QString))); + QSignalSpy spyU(&watcher, SIGNAL(serviceUnregistered(QString))); + QSignalSpy spyO(&watcher, SIGNAL(serviceOwnerChanged(QString,QString,QString))); + QTestEventLoop::instance().connect(&watcher, SIGNAL(serviceUnregistered(QString)), SLOT(exitLoop())); + + // register a name + QVERIFY(con.registerService(serviceName)); + + // unregister it: + con.unregisterService(serviceName); + + QTestEventLoop::instance().enterLoop(1); + QVERIFY(!QTestEventLoop::instance().timeout()); + + QCOMPARE(spyR.count(), 0); + + QCOMPARE(spyU.count(), 1); + QCOMPARE(spyU.at(0).at(0).toString(), serviceName); + + QCOMPARE(spyO.count(), 1); + QCOMPARE(spyO.at(0).at(0).toString(), serviceName); + QCOMPARE(spyO.at(0).at(1).toString(), con.baseService()); + QVERIFY(spyO.at(0).at(2).toString().isEmpty()); +} + +void tst_QDBusServiceWatcher::watchForOwnerChange() +{ + QDBusConnection con = QDBusConnection::sessionBus(); + QVERIFY(con.isConnected()); + + QDBusServiceWatcher watcher(serviceName, con, QDBusServiceWatcher::WatchForOwnerChange); + + QSignalSpy spyR(&watcher, SIGNAL(serviceRegistered(QString))); + QSignalSpy spyU(&watcher, SIGNAL(serviceUnregistered(QString))); + QSignalSpy spyO(&watcher, SIGNAL(serviceOwnerChanged(QString,QString,QString))); + QTestEventLoop::instance().connect(&watcher, SIGNAL(serviceRegistered(QString)), SLOT(exitLoop())); + + // register a name + QVERIFY(con.registerService(serviceName)); + + QTestEventLoop::instance().enterLoop(1); + QVERIFY(!QTestEventLoop::instance().timeout()); + + QCOMPARE(spyR.count(), 1); + QCOMPARE(spyR.at(0).at(0).toString(), serviceName); + + QCOMPARE(spyU.count(), 0); + + QCOMPARE(spyO.count(), 1); + QCOMPARE(spyO.at(0).at(0).toString(), serviceName); + QVERIFY(spyO.at(0).at(1).toString().isEmpty()); + QCOMPARE(spyO.at(0).at(2).toString(), con.baseService()); + + spyR.clear(); + spyU.clear(); + spyO.clear(); + + // unregister it: + con.unregisterService(serviceName); + + // and register again + QVERIFY(con.registerService(serviceName)); + + QTestEventLoop::instance().enterLoop(1); + QVERIFY(!QTestEventLoop::instance().timeout()); + + QCOMPARE(spyR.count(), 1); + QCOMPARE(spyR.at(0).at(0).toString(), serviceName); + + QCOMPARE(spyU.count(), 1); + QCOMPARE(spyU.at(0).at(0).toString(), serviceName); + + QCOMPARE(spyO.count(), 2); + QCOMPARE(spyO.at(0).at(0).toString(), serviceName); + QCOMPARE(spyO.at(0).at(1).toString(), con.baseService()); + QVERIFY(spyO.at(0).at(2).toString().isEmpty()); + QCOMPARE(spyO.at(1).at(0).toString(), serviceName); + QVERIFY(spyO.at(1).at(1).toString().isEmpty()); + QCOMPARE(spyO.at(1).at(2).toString(), con.baseService()); +} + +void tst_QDBusServiceWatcher::modeChange() +{ + QDBusConnection con = QDBusConnection::sessionBus(); + QVERIFY(con.isConnected()); + + QDBusServiceWatcher watcher(serviceName, con, QDBusServiceWatcher::WatchForRegistration); + + QSignalSpy spyR(&watcher, SIGNAL(serviceRegistered(QString))); + QSignalSpy spyU(&watcher, SIGNAL(serviceUnregistered(QString))); + QSignalSpy spyO(&watcher, SIGNAL(serviceOwnerChanged(QString,QString,QString))); + QTestEventLoop::instance().connect(&watcher, SIGNAL(serviceRegistered(QString)), SLOT(exitLoop())); + + // register a name + QVERIFY(con.registerService(serviceName)); + + QTestEventLoop::instance().enterLoop(1); + QVERIFY(!QTestEventLoop::instance().timeout()); + + QCOMPARE(spyR.count(), 1); + QCOMPARE(spyR.at(0).at(0).toString(), serviceName); + + QCOMPARE(spyU.count(), 0); + + QCOMPARE(spyO.count(), 1); + QCOMPARE(spyO.at(0).at(0).toString(), serviceName); + QVERIFY(spyO.at(0).at(1).toString().isEmpty()); + QCOMPARE(spyO.at(0).at(2).toString(), con.baseService()); + + spyR.clear(); + spyU.clear(); + spyO.clear(); + + watcher.setWatchMode(QDBusServiceWatcher::WatchForUnregistration); + + // unregister it: + con.unregisterService(serviceName); + + QTestEventLoop::instance().connect(&watcher, SIGNAL(serviceUnregistered(QString)), SLOT(exitLoop())); + QTestEventLoop::instance().enterLoop(1); + QVERIFY(!QTestEventLoop::instance().timeout()); + + QCOMPARE(spyR.count(), 0); + + QCOMPARE(spyU.count(), 1); + QCOMPARE(spyU.at(0).at(0).toString(), serviceName); + + QCOMPARE(spyO.count(), 1); + QCOMPARE(spyO.at(0).at(0).toString(), serviceName); + QCOMPARE(spyO.at(0).at(1).toString(), con.baseService()); + QVERIFY(spyO.at(0).at(2).toString().isEmpty()); +} + +QTEST_MAIN(tst_QDBusServiceWatcher) +#include "tst_qdbusservicewatcher.moc" diff --git a/tests/auto/qdockwidget/tst_qdockwidget.cpp b/tests/auto/qdockwidget/tst_qdockwidget.cpp index dc67f36..e62ba8c 100644 --- a/tests/auto/qdockwidget/tst_qdockwidget.cpp +++ b/tests/auto/qdockwidget/tst_qdockwidget.cpp @@ -86,6 +86,7 @@ private slots: void visibilityChanged(); void dockLocationChanged(); void setTitleBarWidget(); + void titleBarDoubleClick(); // task specific tests: void task165177_deleteFocusWidget(); void task169808_setFloating(); @@ -694,6 +695,24 @@ void tst_QDockWidget::setTitleBarWidget() QCOMPARE(w2.isVisible(), false); } +void tst_QDockWidget::titleBarDoubleClick() +{ + QMainWindow win; + QDockWidget dock(&win); + win.show(); + dock.setFloating(true); + + QEvent e(QEvent::NonClientAreaMouseButtonDblClick); + QApplication::sendEvent(&dock, &e); + QVERIFY(dock.isFloating()); + QCOMPARE(win.dockWidgetArea(&dock), Qt::NoDockWidgetArea); + + win.addDockWidget(Qt::TopDockWidgetArea, &dock); + dock.setFloating(true); + QApplication::sendEvent(&dock, &e); + QVERIFY(!dock.isFloating()); + QCOMPARE(win.dockWidgetArea(&dock), Qt::TopDockWidgetArea); +} void tst_QDockWidget::task165177_deleteFocusWidget() { diff --git a/tests/auto/qdom/tst_qdom.cpp b/tests/auto/qdom/tst_qdom.cpp index 0d58554e..6637202 100644 --- a/tests/auto/qdom/tst_qdom.cpp +++ b/tests/auto/qdom/tst_qdom.cpp @@ -322,7 +322,6 @@ void tst_QDom::toString_01_data() */ void tst_QDom::toString_01() { - QFAIL("make test fail instead of timing out, will be fixed later (QT-2357)"); QFETCH(QString, fileName); QFile f(fileName); diff --git a/tests/auto/qfontmetrics/tst_qfontmetrics.cpp b/tests/auto/qfontmetrics/tst_qfontmetrics.cpp index 6b2f0fe..e80f8e0 100644 --- a/tests/auto/qfontmetrics/tst_qfontmetrics.cpp +++ b/tests/auto/qfontmetrics/tst_qfontmetrics.cpp @@ -100,6 +100,20 @@ void tst_QFontMetrics::same() QFontMetrics fm(font); const QString text = QLatin1String("Some stupid STRING"); QCOMPARE(fm.size(0, text), fm.size(0, text)) ; + + { + QImage image; + QFontMetrics fm2(font, &image); + QString text2 = QLatin1String("Foo Foo"); + QCOMPARE(fm2.size(0, text2), fm2.size(0, text2)); //used to crash + } + + { + QImage image; + QFontMetricsF fm3(font, &image); + QString text2 = QLatin1String("Foo Foo"); + QCOMPARE(fm3.size(0, text2), fm3.size(0, text2)); //used to crash + } } diff --git a/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp b/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp index 7b87969..c8a9fac 100644 --- a/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp +++ b/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp @@ -45,6 +45,7 @@ #include <QtGui/qgraphicswidget.h> #include <QtGui/qgraphicsproxywidget.h> #include <QtGui/qgraphicsview.h> +#include <QtGui/qwindowsstyle.h> class tst_QGraphicsAnchorLayout : public QObject { Q_OBJECT; @@ -72,6 +73,7 @@ private slots: void proportionalPreferred(); void example(); void setSpacing(); + void styleDefaults(); void hardComplexS60(); void stability(); void delete_anchor(); @@ -82,6 +84,8 @@ private slots: void expandingParallel(); void floatConflict(); void infiniteMaxSizes(); + void simplifiableUnfeasible(); + void simplificationVsOrder(); }; class RectWidget : public QGraphicsWidget @@ -1102,6 +1106,166 @@ void tst_QGraphicsAnchorLayout::setSpacing() delete view; } +class CustomLayoutStyle : public QWindowsStyle +{ + Q_OBJECT +public: + CustomLayoutStyle() : QWindowsStyle() + { + hspacing = 5; + vspacing = 10; + } + + virtual int pixelMetric(PixelMetric metric, const QStyleOption * option = 0, + const QWidget * widget = 0 ) const; + + int hspacing; + int vspacing; + +protected slots: + int layoutSpacingImplementation(QSizePolicy::ControlType control1, + QSizePolicy::ControlType control2, + Qt::Orientation orientation, + const QStyleOption *option = 0, + const QWidget *widget = 0) const; + +}; + +#define CT1(c) CT2(c, c) +#define CT2(c1, c2) ((uint)c1 << 16) | (uint)c2 + +int CustomLayoutStyle::layoutSpacingImplementation(QSizePolicy::ControlType control1, + QSizePolicy::ControlType control2, + Qt::Orientation orientation, + const QStyleOption * /*option = 0*/, + const QWidget * /*widget = 0*/) const +{ + if (orientation == Qt::Horizontal) { + switch (CT2(control1, control2)) { + case CT1(QSizePolicy::PushButton): + return 2; + break; + } + return 5; + } else { + switch (CT2(control1, control2)) { + case CT1(QSizePolicy::RadioButton): + return 2; + break; + + } + return 10; + } +} + +int CustomLayoutStyle::pixelMetric(PixelMetric metric, const QStyleOption * option /*= 0*/, + const QWidget * widget /*= 0*/ ) const +{ + switch (metric) { + case PM_LayoutLeftMargin: + return 0; + break; + case PM_LayoutTopMargin: + return 3; + break; + case PM_LayoutRightMargin: + return 6; + break; + case PM_LayoutBottomMargin: + return 9; + break; + case PM_LayoutHorizontalSpacing: + return hspacing; + case PM_LayoutVerticalSpacing: + return vspacing; + break; + default: + break; + } + return QWindowsStyle::pixelMetric(metric, option, widget); +} + +void tst_QGraphicsAnchorLayout::styleDefaults() +{ + QSizeF min (10, 10); + QSizeF pref(20, 20); + QSizeF max (50, 50); + + /* + create this layout, where a,b have controlType QSizePolicy::RadioButton + c,d have controlType QSizePolicy::PushButton: + +-------+ + |a | + | b | + | c | + | d| + +-------+ + */ + QGraphicsScene scene; + QGraphicsWidget *a = createItem(min, pref, max); + QSizePolicy spRadioButton = a->sizePolicy(); + spRadioButton.setControlType(QSizePolicy::RadioButton); + a->setSizePolicy(spRadioButton); + + QGraphicsWidget *b = createItem(min, pref, max); + b->setSizePolicy(spRadioButton); + + QGraphicsWidget *c = createItem(min, pref, max); + QSizePolicy spPushButton = c->sizePolicy(); + spPushButton.setControlType(QSizePolicy::PushButton); + c->setSizePolicy(spPushButton); + + QGraphicsWidget *d = createItem(min, pref, max); + d->setSizePolicy(spPushButton); + + QGraphicsWidget *window = new QGraphicsWidget(0, Qt::Window); + + // Test layoutSpacingImplementation + CustomLayoutStyle *style = new CustomLayoutStyle; + style->hspacing = -1; + style->vspacing = -1; + window->setStyle(style); + QGraphicsAnchorLayout *l = new QGraphicsAnchorLayout; + + l->addCornerAnchors(l, Qt::TopLeftCorner, a, Qt::TopLeftCorner); + l->addCornerAnchors(a, Qt::BottomRightCorner, b, Qt::TopLeftCorner); + l->addCornerAnchors(b, Qt::BottomRightCorner, c, Qt::TopLeftCorner); + l->addCornerAnchors(c, Qt::BottomRightCorner, d, Qt::TopLeftCorner); + l->addCornerAnchors(d, Qt::BottomRightCorner, l, Qt::BottomRightCorner); + + window->setLayout(l); + + scene.addItem(window); + + window->show(); + QGraphicsView *view = new QGraphicsView(&scene); + view->resize(200, 200); + view->show(); + + window->adjustSize(); + QCOMPARE(a->geometry(), QRectF(0, 3, 20, 20)); //radio + QCOMPARE(b->geometry(), QRectF(25, 25, 20, 20)); //radio + QCOMPARE(c->geometry(), QRectF(50, 55, 20, 20)); //push + QCOMPARE(d->geometry(), QRectF(72, 85, 20, 20)); //push + QCOMPARE(l->geometry(), QRectF(0, 0, 98, 114)); + + + // Test pixelMetric(PM_Layout{Horizontal|Vertical}Spacing + window->setStyle(0); + + style->hspacing = 1; + style->vspacing = 2; + + window->setStyle(style); + window->adjustSize(); + QCOMPARE(a->geometry(), QRectF(0, 3, 20, 20)); + QCOMPARE(b->geometry(), QRectF(21, 25, 20, 20)); + QCOMPARE(c->geometry(), QRectF(42, 47, 20, 20)); + QCOMPARE(d->geometry(), QRectF(63, 69, 20, 20)); + QCOMPARE(l->geometry(), QRectF(0, 0, 89, 98)); +} + + /*! Taken from "hard" complex case, found at https://cwiki.nokia.com/S60QTUI/AnchorLayoutComplexCases @@ -1755,5 +1919,100 @@ void tst_QGraphicsAnchorLayout::infiniteMaxSizes() QCOMPARE(d->geometry(), QRectF(QWIDGETSIZE_MAX - 50, 0, 50, 10)); } +void tst_QGraphicsAnchorLayout::simplifiableUnfeasible() +{ + QGraphicsWidget *a = createItem(QSizeF(70.0, 100.0), + QSizeF(100.0, 100.0), + QSizeF(100.0, 100.0), "A"); + + QGraphicsWidget *b = createItem(QSizeF(110.0, 100.0), + QSizeF(150.0, 100.0), + QSizeF(190.0, 100.0), "B"); + + QGraphicsAnchorLayout *l = new QGraphicsAnchorLayout; + l->setContentsMargins(0, 0, 0, 0); + l->setSpacing(0); + + l->addAnchor(l, Qt::AnchorTop, a, Qt::AnchorTop); + l->addAnchor(a, Qt::AnchorBottom, b, Qt::AnchorTop); + l->addAnchor(b, Qt::AnchorBottom, l, Qt::AnchorBottom); + + l->addAnchors(l, a, Qt::Horizontal); + l->addAnchor(l, Qt::AnchorLeft, b, Qt::AnchorLeft); + l->addAnchor(b, Qt::AnchorRight, a, Qt::AnchorRight); + + QCOMPARE(l->count(), 2); + + QGraphicsWidget p; + p.setLayout(l); + + l->invalidate(); + QVERIFY(layoutHasConflict(l)); + if (hasSimplification) + QVERIFY(!usedSimplex(l, Qt::Horizontal)); + + // Now we make it valid again + b->setMinimumWidth(100); + + l->invalidate(); + QVERIFY(!layoutHasConflict(l)); + if (hasSimplification) + QVERIFY(!usedSimplex(l, Qt::Horizontal)); + + // And make it invalid again + a->setPreferredWidth(70); + a->setMaximumWidth(70); + + l->invalidate(); + QVERIFY(layoutHasConflict(l)); + if (hasSimplification) + QVERIFY(!usedSimplex(l, Qt::Horizontal)); +} + +/* + Test whether the anchor direction can prevent it from + being simplificated +*/ +void tst_QGraphicsAnchorLayout::simplificationVsOrder() +{ + QSizeF min(10, 10); + QSizeF pref(20, 10); + QSizeF max(50, 10); + + QGraphicsWidget *a = createItem(min, pref, max); + QGraphicsWidget *b = createItem(min, pref, max); + QGraphicsWidget *c = createItem(min, pref, max); + + QGraphicsAnchorLayout *l = new QGraphicsAnchorLayout; + + // Bulk anchors + l->addAnchor(l, Qt::AnchorLeft, a, Qt::AnchorLeft); + l->addAnchor(a, Qt::AnchorRight, b, Qt::AnchorLeft); + l->addAnchor(b, Qt::AnchorLeft, c, Qt::AnchorLeft); + l->addAnchor(c, Qt::AnchorRight, l, Qt::AnchorRight); + + // Problematic anchor, direction b->c + QGraphicsAnchor *anchor = l->addAnchor(b, Qt::AnchorRight, c, Qt::AnchorRight); + anchor->setSpacing(5); + + l->effectiveSizeHint(Qt::MinimumSize); + if (hasSimplification) { + QCOMPARE(usedSimplex(l, Qt::Horizontal), false); + QCOMPARE(usedSimplex(l, Qt::Vertical), false); + } + + // Problematic anchor, direction c->b + delete anchor; + anchor = l->addAnchor(c, Qt::AnchorRight, b, Qt::AnchorRight); + anchor->setSpacing(5); + + l->effectiveSizeHint(Qt::MinimumSize); + if (hasSimplification) { + QEXPECT_FAIL("", "Sequential anchors cannot handle children of opposite directions", Continue); + QCOMPARE(usedSimplex(l, Qt::Horizontal), false); + QCOMPARE(usedSimplex(l, Qt::Vertical), false); + } +} + QTEST_MAIN(tst_QGraphicsAnchorLayout) #include "tst_qgraphicsanchorlayout.moc" diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp index d8cd375..684ad4f 100644 --- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp +++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp @@ -372,6 +372,7 @@ private slots: void itemUsesExtendedStyleOption(); void itemSendsGeometryChanges(); void moveItem(); + void moveLineItem(); void sorting_data(); void sorting(); void itemHasNoContents(); @@ -390,6 +391,7 @@ private slots: void moveWhileDeleting(); void ensureDirtySceneTransform(); void focusScope(); + void focusScope2(); void stackBefore(); void sceneModality(); void panelModality(); @@ -7438,6 +7440,39 @@ void tst_QGraphicsItem::moveItem() COMPARE_REGIONS(view.paintedRegion, expectedParentRegion); } +void tst_QGraphicsItem::moveLineItem() +{ + QGraphicsScene scene; + scene.setSceneRect(0, 0, 200, 200); + QGraphicsLineItem *item = new QGraphicsLineItem(0, 0, 100, 0); + item->setPos(50, 50); + scene.addItem(item); + + MyGraphicsView view(&scene); + view.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&view); +#endif + QTest::qWait(200); + view.reset(); + + const QRect itemDeviceBoundingRect = item->deviceTransform(view.viewportTransform()) + .mapRect(item->boundingRect()).toRect(); + QRegion expectedRegion = itemDeviceBoundingRect.adjusted(-2, -2, 2, 2); // antialiasing + + // Make sure the calculated region is correct. + item->update(); + QTest::qWait(10); + QTRY_COMPARE(view.paintedRegion, expectedRegion); + view.reset(); + + // Old position: (50, 50) + item->setPos(50, 100); + expectedRegion += expectedRegion.translated(0, 50); + QTest::qWait(10); + QCOMPARE(view.paintedRegion, expectedRegion); +} + void tst_QGraphicsItem::sorting_data() { QTest::addColumn<int>("index"); @@ -8431,7 +8466,7 @@ void tst_QGraphicsItem::focusScope() QVERIFY(!scope2->focusScopeItem()); scope3->setParentItem(scope2); QCOMPARE(scope2->focusScopeItem(), (QGraphicsItem *)scope3); - QCOMPARE(scope2->focusItem(), (QGraphicsItem *)scope2); + QCOMPARE(scope2->focusItem(), (QGraphicsItem *)scope3); QGraphicsRectItem *scope1 = new QGraphicsRectItem; scope1->setData(0, "scope1"); @@ -8440,9 +8475,9 @@ void tst_QGraphicsItem::focusScope() QVERIFY(!scope1->focusScopeItem()); scope2->setParentItem(scope1); - QCOMPARE(scope1->focusItem(), (QGraphicsItem *)scope1); - QCOMPARE(scope2->focusItem(), (QGraphicsItem *)0); - QCOMPARE(scope3->focusItem(), (QGraphicsItem *)0); + QCOMPARE(scope1->focusItem(), (QGraphicsItem *)scope3); + QCOMPARE(scope2->focusItem(), (QGraphicsItem *)scope3); + QCOMPARE(scope3->focusItem(), (QGraphicsItem *)scope3); QCOMPARE(scope1->focusScopeItem(), (QGraphicsItem *)scope2); QCOMPARE(scope2->focusScopeItem(), (QGraphicsItem *)scope3); QCOMPARE(scope3->focusScopeItem(), (QGraphicsItem *)0); @@ -8493,11 +8528,13 @@ void tst_QGraphicsItem::focusScope() rect5->setFocus(); rect5->setParentItem(rect4); QCOMPARE(scope3->focusScopeItem(), (QGraphicsItem *)rect5); - QVERIFY(!rect5->hasFocus()); + QVERIFY(rect5->hasFocus()); rect4->setParentItem(0); + QVERIFY(rect5->hasFocus()); QCOMPARE(scope3->focusScopeItem(), (QGraphicsItem *)0); - QVERIFY(scope3->hasFocus()); + QCOMPARE(scope3->focusItem(), (QGraphicsItem *)0); + QVERIFY(!scope3->hasFocus()); QGraphicsRectItem *rectA = new QGraphicsRectItem; QGraphicsRectItem *scopeA = new QGraphicsRectItem(rectA); @@ -8508,7 +8545,7 @@ void tst_QGraphicsItem::focusScope() scopeB->setFocus(); scene.addItem(rectA); - QVERIFY(!rect5->hasFocus()); + QVERIFY(rect5->hasFocus()); QVERIFY(!scopeB->hasFocus()); scopeA->setFocus(); @@ -8516,6 +8553,76 @@ void tst_QGraphicsItem::focusScope() QCOMPARE(scopeB->focusItem(), (QGraphicsItem *)scopeB); } +void tst_QGraphicsItem::focusScope2() +{ + QGraphicsRectItem *child1 = new QGraphicsRectItem; + child1->setFlags(QGraphicsItem::ItemIsFocusable); + child1->setFocus(); + QCOMPARE(child1->focusItem(), (QGraphicsItem *)child1); + + QGraphicsRectItem *child2 = new QGraphicsRectItem; + child2->setFlags(QGraphicsItem::ItemIsFocusable); + + QGraphicsRectItem *rootFocusScope = new QGraphicsRectItem; + rootFocusScope->setFlags(QGraphicsItem::ItemIsFocusable | QGraphicsItem::ItemIsFocusScope); + rootFocusScope->setFocus(); + QCOMPARE(rootFocusScope->focusItem(), (QGraphicsItem *)rootFocusScope); + + child1->setParentItem(rootFocusScope); + child2->setParentItem(rootFocusScope); + + QCOMPARE(rootFocusScope->focusScopeItem(), (QGraphicsItem *)child1); + QCOMPARE(rootFocusScope->focusItem(), (QGraphicsItem *)child1); + + QGraphicsRectItem *siblingChild1 = new QGraphicsRectItem; + siblingChild1->setFlags(QGraphicsItem::ItemIsFocusable); + siblingChild1->setFocus(); + + QGraphicsRectItem *siblingChild2 = new QGraphicsRectItem; + siblingChild2->setFlags(QGraphicsItem::ItemIsFocusable); + + QGraphicsRectItem *siblingFocusScope = new QGraphicsRectItem; + siblingFocusScope->setFlags(QGraphicsItem::ItemIsFocusable | QGraphicsItem::ItemIsFocusScope); + + siblingChild1->setParentItem(siblingFocusScope); + siblingChild2->setParentItem(siblingFocusScope); + + QCOMPARE(siblingFocusScope->focusScopeItem(), (QGraphicsItem *)siblingChild1); + QCOMPARE(siblingFocusScope->focusItem(), (QGraphicsItem *)0); + + QGraphicsItem *root = new QGraphicsRectItem; + rootFocusScope->setParentItem(root); + siblingFocusScope->setParentItem(root); + + QCOMPARE(root->focusItem(), (QGraphicsItem *)child1); + + QGraphicsScene scene; + scene.addItem(root); + + QEvent activate(QEvent::WindowActivate); + qApp->sendEvent(&scene, &activate); + scene.setFocus(); + + QCOMPARE(scene.focusItem(), (QGraphicsItem *)child1); + + // You cannot set focus on a descendant of a focus scope directly; + // this will only change the scope's focus scope item pointer. If + // you want to give true input focus, you must set it directly on + // the scope itself + siblingChild2->setFocus(); + QVERIFY(!siblingChild2->hasFocus()); + QVERIFY(!siblingChild2->focusItem()); + QCOMPARE(siblingFocusScope->focusScopeItem(), (QGraphicsItem *)siblingChild2); + QCOMPARE(siblingFocusScope->focusItem(), (QGraphicsItem *)0); + + // Set focus on the scope; focus is forwarded to the focus scope item. + siblingFocusScope->setFocus(); + QVERIFY(siblingChild2->hasFocus()); + QVERIFY(siblingChild2->focusItem()); + QCOMPARE(siblingFocusScope->focusScopeItem(), (QGraphicsItem *)siblingChild2); + QCOMPARE(siblingFocusScope->focusItem(), (QGraphicsItem *)siblingChild2); +} + void tst_QGraphicsItem::stackBefore() { QGraphicsRectItem parent; @@ -8535,24 +8642,24 @@ void tst_QGraphicsItem::stackBefore() QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child1 << child3 << child4 << child2)); // Move child2 before child1 - child2->stackBefore(child1); + child2->stackBefore(child1); // 2134 QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child1 << child3 << child4)); - child2->stackBefore(child2); + child2->stackBefore(child2); // 2134 QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child1 << child3 << child4)); - child1->setZValue(1); + child1->setZValue(1); // 2341 QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child3 << child4 << child1)); - child1->stackBefore(child2); // no effect + child1->stackBefore(child2); // 2341 QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child3 << child4 << child1)); - child1->setZValue(0); - QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child1 << child3 << child4)); - child4->stackBefore(child1); - QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child4 << child1 << child3)); - child4->setZValue(1); - QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child1 << child3 << child4)); - child3->stackBefore(child1); - QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child3 << child1 << child4)); - child4->setZValue(0); - QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child2 << child4 << child3 << child1)); + child1->setZValue(0); // 1234 + QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child1 << child2 << child3 << child4)); + child4->stackBefore(child1); // 4123 + QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child4 << child1 << child2 << child3)); + child4->setZValue(1); // 1234 (4123) + QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child1 << child2 << child3 << child4)); + child3->stackBefore(child1); // 3124 (4312) + QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child3 << child1 << child2 << child4)); + child4->setZValue(0); // 4312 + QCOMPARE(parent.childItems(), (QList<QGraphicsItem *>() << child4 << child3 << child1 << child2)); // Make them all toplevels child1->setParentItem(0); @@ -8574,24 +8681,24 @@ void tst_QGraphicsItem::stackBefore() QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child1 << child3 << child4 << child2)); // Move child2 before child1 - child2->stackBefore(child1); + child2->stackBefore(child1); // 2134 QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child1 << child3 << child4)); - child2->stackBefore(child2); + child2->stackBefore(child2); // 2134 QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child1 << child3 << child4)); - child1->setZValue(1); + child1->setZValue(1); // 2341 QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child3 << child4 << child1)); - child1->stackBefore(child2); // no effect + child1->stackBefore(child2); // 2341 QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child3 << child4 << child1)); - child1->setZValue(0); - QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child1 << child3 << child4)); - child4->stackBefore(child1); - QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child4 << child1 << child3)); - child4->setZValue(1); - QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child1 << child3 << child4)); - child3->stackBefore(child1); - QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child3 << child1 << child4)); - child4->setZValue(0); - QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child4 << child3 << child1)); + child1->setZValue(0); // 1234 + QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child1 << child2 << child3 << child4)); + child4->stackBefore(child1); // 4123 + QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child4 << child1 << child2 << child3)); + child4->setZValue(1); // 1234 (4123) + QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child1 << child2 << child3 << child4)); + child3->stackBefore(child1); // 3124 (4312) + QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child3 << child1 << child2 << child4)); + child4->setZValue(0); // 4312 + QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child4 << child3 << child1 << child2)); } void tst_QGraphicsItem::QTBUG_4233_updateCachedWithSceneRect() diff --git a/tests/auto/qgraphicsobject/tst_qgraphicsobject.cpp b/tests/auto/qgraphicsobject/tst_qgraphicsobject.cpp index a9fd55a..194665d 100644 --- a/tests/auto/qgraphicsobject/tst_qgraphicsobject.cpp +++ b/tests/auto/qgraphicsobject/tst_qgraphicsobject.cpp @@ -46,6 +46,7 @@ #include <qgraphicssceneevent.h> #include <qgraphicsview.h> #include <qstyleoption.h> +#include <private/qobject_p.h> #include "../../shared/util.h" class tst_QGraphicsObject : public QObject { @@ -65,6 +66,7 @@ private slots: void opacity(); void enabled(); void visible(); + void deleted(); }; @@ -249,6 +251,46 @@ void tst_QGraphicsObject::visible() QVERIFY(object.property("visible") == true); } +class DeleteTester : public QGraphicsObject +{ +public: + DeleteTester(bool *w, bool *pw, QGraphicsItem *parent = 0) + : QGraphicsObject(parent), wasDeleted(w), parentWasDeleted(pw) + { } + + ~DeleteTester() + { + *wasDeleted = QObjectPrivate::get(this)->wasDeleted; + if (QGraphicsItem *p = parentItem()) { + if (QGraphicsObject *o = p->toGraphicsObject()) + *parentWasDeleted = QObjectPrivate::get(o)->wasDeleted; + } + } + + void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget * = 0) + { } + QRectF boundingRect() const + { return QRectF(); } + + bool *wasDeleted; + bool *parentWasDeleted; +}; + +void tst_QGraphicsObject::deleted() +{ + bool item1_parentWasDeleted = false; + bool item1_wasDeleted = false; + bool item2_parentWasDeleted = false; + bool item2_wasDeleted = false; + DeleteTester *item1 = new DeleteTester(&item1_wasDeleted, &item1_parentWasDeleted); + DeleteTester *item2 = new DeleteTester(&item2_wasDeleted, &item2_parentWasDeleted, item1); + delete item1; + + QVERIFY(!item1_wasDeleted); // destructor not called yet + QVERIFY(!item1_parentWasDeleted); // no parent + QVERIFY(!item2_wasDeleted); // destructor not called yet + QVERIFY(item2_parentWasDeleted); +} QTEST_MAIN(tst_QGraphicsObject) #include "tst_qgraphicsobject.moc" diff --git a/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp b/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp index 1109e5e..7d98748 100644 --- a/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp +++ b/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp @@ -45,6 +45,8 @@ #include <private/qgraphicsscenebsptreeindex_p.h> #include <private/qgraphicssceneindex_p.h> #include <private/qgraphicsscenelinearindex_p.h> +#include "../../shared/util.h" + //TESTED_CLASS= //TESTED_FILES= @@ -66,6 +68,7 @@ private slots: void movingItems(); void connectedToSceneRectChanged(); void items(); + void removeItems(); void clear(); private: @@ -268,6 +271,63 @@ void tst_QGraphicsSceneIndex::items() QCOMPARE(scene.items().size(), 3); } +class RectWidget : public QGraphicsWidget +{ + Q_OBJECT +public: + RectWidget(QGraphicsItem *parent = 0) : QGraphicsWidget(parent) + { + } + + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) + { + painter->setBrush(brush); + painter->drawRect(boundingRect()); + } +public: + QBrush brush; +}; + +void tst_QGraphicsSceneIndex::removeItems() +{ + QGraphicsScene scene; + + RectWidget *parent = new RectWidget; + parent->brush = QBrush(QColor(Qt::magenta)); + parent->setGeometry(250, 250, 400, 400); + + RectWidget *widget = new RectWidget(parent); + widget->brush = QBrush(QColor(Qt::blue)); + widget->setGeometry(10, 10, 200, 200); + + RectWidget *widgetChild1 = new RectWidget(widget); + widgetChild1->brush = QBrush(QColor(Qt::green)); + widgetChild1->setGeometry(20, 20, 100, 100); + + RectWidget *widgetChild2 = new RectWidget(widgetChild1); + widgetChild2->brush = QBrush(QColor(Qt::yellow)); + widgetChild2->setGeometry(25, 25, 50, 50); + + scene.addItem(parent); + + QGraphicsView view(&scene); + view.resize(600, 600); + view.show(); + QApplication::setActiveWindow(&view); + QTest::qWaitForWindowShown(&view); + + QApplication::processEvents(); + + scene.removeItem(widgetChild1); + + delete widgetChild1; + + //We move the parent + scene.items(295, 295, 50, 50); + + //This should not crash +} + void tst_QGraphicsSceneIndex::clear() { class MyItem : public QGraphicsItem @@ -298,7 +358,7 @@ void tst_QGraphicsSceneIndex::clear() MyItem *item = new MyItem; scene.addItem(item); qApp->processEvents(); - QCOMPARE(item->numPaints, 1); + QTRY_COMPARE(item->numPaints, 1); } QTEST_MAIN(tst_QGraphicsSceneIndex) diff --git a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp index 9b5e114..f07453c 100644 --- a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp +++ b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp @@ -194,6 +194,8 @@ private slots: void acceptDrops(); void optimizationFlags(); void optimizationFlags_dontSavePainterState(); + void optimizationFlags_dontSavePainterState2_data(); + void optimizationFlags_dontSavePainterState2(); void levelOfDetail_data(); void levelOfDetail(); void scrollBarRanges_data(); @@ -2455,6 +2457,57 @@ void tst_QGraphicsView::optimizationFlags_dontSavePainterState() QTest::qWaitForWindowShown(&painter2); } +void tst_QGraphicsView::optimizationFlags_dontSavePainterState2_data() +{ + QTest::addColumn<bool>("savePainter"); + QTest::newRow("With painter state protection") << true; + QTest::newRow("Without painter state protection") << false; +} + +void tst_QGraphicsView::optimizationFlags_dontSavePainterState2() +{ + QFETCH(bool, savePainter); + + class MyScene : public QGraphicsScene + { + public: + void drawBackground(QPainter *p, const QRectF &) + { transformInDrawBackground = p->worldTransform(); } + + void drawForeground(QPainter *p, const QRectF &) + { transformInDrawForeground = p->worldTransform(); } + + QTransform transformInDrawBackground; + QTransform transformInDrawForeground; + }; + + MyScene scene; + // Add transformed dummy items to make sure the painter's worldTransform() is changed in drawItems. + scene.addRect(0, 0, 20, 20)->setTransform(QTransform::fromScale(2, 2)); + scene.addRect(50, 50, 20, 20)->setTransform(QTransform::fromTranslate(200, 200)); + + CustomView view(&scene); + if (!savePainter) + view.setOptimizationFlag(QGraphicsView::DontSavePainterState); + view.rotate(45); + view.scale(1.5, 1.5); + view.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&view); +#endif + + // Make sure the view is repainted; otherwise the tests below will fail. + view.viewport()->repaint(); + QTest::qWait(200); + QVERIFY(view.painted); + + // Make sure the painter's world transform is preserved after drawItems. + const QTransform expectedTransform = view.viewportTransform(); + QVERIFY(!expectedTransform.isIdentity()); + QCOMPARE(scene.transformInDrawForeground, expectedTransform); + QCOMPARE(scene.transformInDrawBackground, expectedTransform); +} + class LodItem : public QGraphicsRectItem { public: diff --git a/tests/auto/qlistview/tst_qlistview.cpp b/tests/auto/qlistview/tst_qlistview.cpp index 6e211ae..a5ff153 100644 --- a/tests/auto/qlistview/tst_qlistview.cpp +++ b/tests/auto/qlistview/tst_qlistview.cpp @@ -119,6 +119,8 @@ private slots: void task262152_setModelColumnNavigate(); void taskQTBUG_2233_scrollHiddenItems_data(); void taskQTBUG_2233_scrollHiddenItems(); + void taskQTBUG_633_changeModelData(); + void taskQTBUG_435_deselectOnViewportClick(); }; // Testing get/set functions @@ -1132,6 +1134,7 @@ void tst_QListView::selection() #endif v.show(); + QTest::qWaitForWindowShown(&v); QApplication::processEvents(); v.setSelection(selectionRect, QItemSelectionModel::ClearAndSelect); @@ -1184,6 +1187,7 @@ void tst_QListView::scrollTo() lv.setModel(&model); lv.setFixedSize(100, 200); lv.show(); + QTest::qWaitForWindowShown(&lv); //by default, the list view scrolls per item and has no wrapping QModelIndex index = model.index(6,0); @@ -1782,6 +1786,7 @@ void tst_QListView::task262152_setModelColumnNavigate() view.setModelColumn(1); view.show(); + QTest::qWaitForWindowShown(&view); QTest::qWait(100); QTest::keyClick(&view, Qt::Key_Down); QTest::qWait(100); @@ -1829,5 +1834,47 @@ void tst_QListView::taskQTBUG_2233_scrollHiddenItems() } } +void tst_QListView::taskQTBUG_633_changeModelData() +{ + QListView view; + view.setFlow(QListView::LeftToRight); + QStandardItemModel model(5,1); + for (int i = 0; i < model.rowCount(); ++i) { + model.setData( model.index(i, 0), QString::number(i)); + } + + view.setModel(&model); + view.show(); + QTest::qWaitForWindowShown(&view); + model.setData( model.index(1, 0), QLatin1String("long long text")); + QTest::qWait(100); //leave time for relayouting the items + QRect rectLongText = view.visualRect(model.index(1,0)); + QRect rect2 = view.visualRect(model.index(2,0)); + QVERIFY( ! rectLongText.intersects(rect2) ); +} + +void tst_QListView::taskQTBUG_435_deselectOnViewportClick() +{ + QListView view; + QStringListModel model( QStringList() << "1" << "2" << "3" << "4"); + view.setModel(&model); + view.setSelectionMode(QAbstractItemView::ExtendedSelection); + view.selectAll(); + QCOMPARE(view.selectionModel()->selectedIndexes().count(), model.rowCount()); + + + QPoint p = view.visualRect(model.index(model.rowCount() - 1)).center() + QPoint(0, 20); + //first the left button + QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, p); + QVERIFY(!view.selectionModel()->hasSelection()); + + view.selectAll(); + QCOMPARE(view.selectionModel()->selectedIndexes().count(), model.rowCount()); + + //and now the right button + QTest::mouseClick(view.viewport(), Qt::RightButton, 0, p); + QVERIFY(!view.selectionModel()->hasSelection()); +} + QTEST_MAIN(tst_QListView) #include "tst_qlistview.moc" diff --git a/tests/auto/qlistwidget/tst_qlistwidget.cpp b/tests/auto/qlistwidget/tst_qlistwidget.cpp index e825c8f..5c6ed54 100644 --- a/tests/auto/qlistwidget/tst_qlistwidget.cpp +++ b/tests/auto/qlistwidget/tst_qlistwidget.cpp @@ -46,6 +46,7 @@ #include <qlist.h> #include <qlistwidget.h> +#include <private/qlistwidget_p.h> //TESTED_CLASS= //TESTED_FILES= @@ -95,6 +96,8 @@ private slots: void insertItem(); void insertItems_data(); void insertItems(); + void moveItemsPriv_data(); + void moveItemsPriv(); void itemAssignment(); void item_data(); @@ -849,6 +852,62 @@ void tst_QListWidget::removeItems() } +void tst_QListWidget::moveItemsPriv_data() +{ + QTest::addColumn<int>("rowCount"); + QTest::addColumn<int>("srcRow"); + QTest::addColumn<int>("dstRow"); + QTest::addColumn<bool>("shouldHaveSignaled"); + + QTest::newRow("Empty") << 0 << 0 << 0 << false; + QTest::newRow("Overflow src") << 5 << 5 << 2 << false; + QTest::newRow("Underflow src") << 5 << -1 << 2 << false; + QTest::newRow("Overflow dst") << 5 << 2 << 5 << false; + QTest::newRow("Underflow dst") << 5 << 2 << -1 << false; + QTest::newRow("Same place") << 5 << 2 << 2 << false; + QTest::newRow("Up") << 5 << 4 << 2 << true; + QTest::newRow("Down") << 5 << 2 << 4 << true; +} + +void tst_QListWidget::moveItemsPriv() +{ + QFETCH(int, rowCount); + QFETCH(int, srcRow); + QFETCH(int, dstRow); + QFETCH(bool, shouldHaveSignaled); + + for (int r = 0; r < rowCount; ++r) + new QListWidgetItem(QString::number(r), testWidget); + + QListModel *model = dynamic_cast<QListModel *>(testWidget->model()); + QVERIFY(model); + QSignalSpy beginMoveSpy(model, SIGNAL(rowsAboutToBeMoved(QModelIndex,int,int,QModelIndex,int))); + QSignalSpy movedSpy(model, SIGNAL(rowsMoved(QModelIndex,int,int,QModelIndex,int))); + model->move(srcRow, dstRow); + + if (shouldHaveSignaled) { + if (srcRow < dstRow) + QCOMPARE(testWidget->item(dstRow - 1)->text(), QString::number(srcRow)); + else + QCOMPARE(testWidget->item(dstRow)->text(), QString::number(srcRow)); + + QCOMPARE(beginMoveSpy.count(), 1); + const QList<QVariant> &beginMoveArgs = beginMoveSpy.takeFirst(); + QCOMPARE(beginMoveArgs.at(1).toInt(), srcRow); + QCOMPARE(beginMoveArgs.at(2).toInt(), srcRow); + QCOMPARE(beginMoveArgs.at(4).toInt(), dstRow); + + QCOMPARE(movedSpy.count(), 1); + const QList<QVariant> &movedArgs = movedSpy.takeFirst(); + QCOMPARE(movedArgs.at(1).toInt(), srcRow); + QCOMPARE(movedArgs.at(2).toInt(), srcRow); + QCOMPARE(movedArgs.at(4).toInt(), dstRow); + } else { + QCOMPARE(beginMoveSpy.count(), 0); + QCOMPARE(movedSpy.count(), 0); + } +} + void tst_QListWidget::itemStreaming_data() { QTest::addColumn<QString>("text"); diff --git a/tests/auto/qlocalsocket/tst_qlocalsocket.cpp b/tests/auto/qlocalsocket/tst_qlocalsocket.cpp index be39d00..ab7b0ac 100644 --- a/tests/auto/qlocalsocket/tst_qlocalsocket.cpp +++ b/tests/auto/qlocalsocket/tst_qlocalsocket.cpp @@ -976,7 +976,7 @@ void tst_QLocalSocket::writeOnlySocket() #if defined(Q_OS_SYMBIAN) QTest::qWait(250); #endif - QVERIFY(server.waitForNewConnection()); + QVERIFY(server.waitForNewConnection(200)); QLocalSocket* serverSocket = server.nextPendingConnection(); QVERIFY(serverSocket); diff --git a/tests/auto/qmenubar/tst_qmenubar.cpp b/tests/auto/qmenubar/tst_qmenubar.cpp index 07aa9f4..4291c3e 100644 --- a/tests/auto/qmenubar/tst_qmenubar.cpp +++ b/tests/auto/qmenubar/tst_qmenubar.cpp @@ -86,6 +86,18 @@ private: uint sel_count; }; +class Menu : public QMenu +{ + Q_OBJECT + public slots: + void addActions() + { + //this will change the geometry of the menu + addAction("action1"); + addAction("action2"); + } +}; + class tst_QMenuBar : public QObject { Q_OBJECT @@ -1442,7 +1454,7 @@ void tst_QMenuBar::check_menuPosition() #ifdef Q_OS_WINCE_WM QSKIP("Qt/CE uses native menubar", SkipAll); #endif - QMenu menu; + Menu menu; #ifdef QT3_SUPPORT initComplexMenubar(); #else @@ -1496,6 +1508,21 @@ void tst_QMenuBar::check_menuPosition() menu.close(); } + //in RTL, the menu should be stuck at the right of the action geometry + { + Qt::LayoutDirection dir = qApp->layoutDirection(); + qApp->setLayoutDirection(Qt::RightToLeft); + menu.clear(); + QObject::connect(&menu, SIGNAL(aboutToShow()), &menu, SLOT(addActions())); + QRect mbItemRect = mw->menuBar()->actionGeometry(menu_action); + mbItemRect.moveTo(mw->menuBar()->mapToGlobal(mbItemRect.topLeft())); + QTest::keyClick(mw, Qt::Key_M, Qt::AltModifier ); + QVERIFY(menu.isActiveWindow()); + QCOMPARE(menu.geometry().right(), mbItemRect.right()); + menu.close(); + qApp->setLayoutDirection(dir); + } + } void tst_QMenuBar::task223138_triggered() diff --git a/tests/auto/qparallelanimationgroup/tst_qparallelanimationgroup.cpp b/tests/auto/qparallelanimationgroup/tst_qparallelanimationgroup.cpp index 8578d36..8d937e9 100644 --- a/tests/auto/qparallelanimationgroup/tst_qparallelanimationgroup.cpp +++ b/tests/auto/qparallelanimationgroup/tst_qparallelanimationgroup.cpp @@ -56,8 +56,7 @@ public: virtual ~tst_QParallelAnimationGroup(); public Q_SLOTS: - void init(); - void cleanup(); + void initTestCase(); private slots: void construction(); @@ -86,13 +85,13 @@ tst_QParallelAnimationGroup::~tst_QParallelAnimationGroup() { } -void tst_QParallelAnimationGroup::init() +void tst_QParallelAnimationGroup::initTestCase() { qRegisterMetaType<QAbstractAnimation::State>("QAbstractAnimation::State"); -} - -void tst_QParallelAnimationGroup::cleanup() -{ +#if defined(Q_OS_SYMBIAN) || defined(Q_WS_MAC) || defined(Q_WS_WINCE) + // give the Symbian and mac app start event queue time to clear + QTest::qWait(1000); +#endif } void tst_QParallelAnimationGroup::construction() @@ -486,10 +485,6 @@ void tst_QParallelAnimationGroup::updateChildrenWithRunningGroup() void tst_QParallelAnimationGroup::deleteChildrenWithRunningGroup() { -#if defined(Q_OS_SYMBIAN) - // give the Symbian app start event queue time to clear - QTest::qWait(1000); -#endif // test if children can be activated when their group is stopped QParallelAnimationGroup group; diff --git a/tests/auto/qpauseanimation/tst_qpauseanimation.cpp b/tests/auto/qpauseanimation/tst_qpauseanimation.cpp index b11efa0..4d0a7a7 100644 --- a/tests/auto/qpauseanimation/tst_qpauseanimation.cpp +++ b/tests/auto/qpauseanimation/tst_qpauseanimation.cpp @@ -93,8 +93,7 @@ public: virtual ~tst_QPauseAnimation(); public Q_SLOTS: - void init(); - void cleanup(); + void initTestCase(); private slots: void changeDirectionWhileRunning(); @@ -117,20 +116,15 @@ tst_QPauseAnimation::~tst_QPauseAnimation() { } -void tst_QPauseAnimation::init() +void tst_QPauseAnimation::initTestCase() { qRegisterMetaType<QAbstractAnimation::State>("QAbstractAnimation::State"); qRegisterMetaType<QAbstractAnimation::DeletionPolicy>("QAbstractAnimation::DeletionPolicy"); } -void tst_QPauseAnimation::cleanup() -{ -} - void tst_QPauseAnimation::changeDirectionWhileRunning() { - QUnifiedTimer *timer = QUnifiedTimer::instance(); - timer->setConsistentTiming(true); + EnableConsistentTiming enabled; TestablePauseAnimation animation; animation.setDuration(400); @@ -140,8 +134,6 @@ void tst_QPauseAnimation::changeDirectionWhileRunning() animation.setDirection(QAbstractAnimation::Backward); QTest::qWait(animation.totalDuration() + 50); QVERIFY(animation.state() == QAbstractAnimation::Stopped); - - timer->setConsistentTiming(false); } void tst_QPauseAnimation::noTimerUpdates_data() @@ -157,8 +149,7 @@ void tst_QPauseAnimation::noTimerUpdates_data() void tst_QPauseAnimation::noTimerUpdates() { - QUnifiedTimer *timer = QUnifiedTimer::instance(); - timer->setConsistentTiming(true); + EnableConsistentTiming enabled; QFETCH(int, duration); QFETCH(int, loopCount); @@ -168,16 +159,19 @@ void tst_QPauseAnimation::noTimerUpdates() animation.setLoopCount(loopCount); animation.start(); QTest::qWait(animation.totalDuration() + 100); + +#ifdef Q_OS_WIN + if (animation.state() != QAbstractAnimation::Stopped) + QEXPECT_FAIL("", "On windows, consistent timing is not working properly due to bad timer resolution", Abort); +#endif + QVERIFY(animation.state() == QAbstractAnimation::Stopped); QCOMPARE(animation.m_updateCurrentTimeCount, 1 + loopCount); - - timer->setConsistentTiming(false); } void tst_QPauseAnimation::mulitplePauseAnimations() { - QUnifiedTimer *timer = QUnifiedTimer::instance(); - timer->setConsistentTiming(true); + EnableConsistentTiming enabled; TestablePauseAnimation animation; animation.setDuration(200); @@ -188,16 +182,26 @@ void tst_QPauseAnimation::mulitplePauseAnimations() animation.start(); animation2.start(); QTest::qWait(animation.totalDuration() + 100); + +#ifdef Q_OS_WIN + if (animation.state() != QAbstractAnimation::Stopped) + QEXPECT_FAIL("", "On windows, consistent timing is not working properly due to bad timer resolution", Abort); +#endif + QVERIFY(animation.state() == QAbstractAnimation::Stopped); QVERIFY(animation2.state() == QAbstractAnimation::Running); QCOMPARE(animation.m_updateCurrentTimeCount, 2); QCOMPARE(animation2.m_updateCurrentTimeCount, 2); QTest::qWait(550); + +#ifdef Q_OS_WIN + if (animation2.state() != QAbstractAnimation::Stopped) + QEXPECT_FAIL("", "On windows, consistent timing is not working properly due to bad timer resolution", Abort); +#endif + QVERIFY(animation2.state() == QAbstractAnimation::Stopped); QCOMPARE(animation2.m_updateCurrentTimeCount, 3); - - timer->setConsistentTiming(false); } void tst_QPauseAnimation::pauseAndPropertyAnimations() @@ -243,7 +247,7 @@ void tst_QPauseAnimation::pauseResume() animation.pause(); QVERIFY(animation.state() == QAbstractAnimation::Paused); animation.start(); - QTest::qWait(250); + QTest::qWait(300); QVERIFY(animation.state() == QAbstractAnimation::Stopped); QCOMPARE(animation.m_updateCurrentTimeCount, 3); } @@ -260,6 +264,9 @@ void tst_QPauseAnimation::sequentialPauseGroup() animation3.setDuration(200); group.start(); + QCOMPARE(animation1.m_updateCurrentTimeCount, 1); + QCOMPARE(animation2.m_updateCurrentTimeCount, 0); + QCOMPARE(animation3.m_updateCurrentTimeCount, 0); QVERIFY(group.state() == QAbstractAnimation::Running); QVERIFY(animation1.state() == QAbstractAnimation::Running); @@ -267,6 +274,9 @@ void tst_QPauseAnimation::sequentialPauseGroup() QVERIFY(animation3.state() == QAbstractAnimation::Stopped); group.setCurrentTime(250); + QCOMPARE(animation1.m_updateCurrentTimeCount, 2); + QCOMPARE(animation2.m_updateCurrentTimeCount, 1); + QCOMPARE(animation3.m_updateCurrentTimeCount, 0); QVERIFY(group.state() == QAbstractAnimation::Running); QVERIFY(animation1.state() == QAbstractAnimation::Stopped); @@ -275,6 +285,9 @@ void tst_QPauseAnimation::sequentialPauseGroup() QVERIFY(animation3.state() == QAbstractAnimation::Stopped); group.setCurrentTime(500); + QCOMPARE(animation1.m_updateCurrentTimeCount, 2); + QCOMPARE(animation2.m_updateCurrentTimeCount, 2); + QCOMPARE(animation3.m_updateCurrentTimeCount, 1); QVERIFY(group.state() == QAbstractAnimation::Running); QVERIFY(animation1.state() == QAbstractAnimation::Stopped); diff --git a/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp b/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp index 7dd17e5..56c1ced 100644 --- a/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp +++ b/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp @@ -495,7 +495,7 @@ void tst_QPropertyAnimation::startWhenAnotherIsRunning() anim->setEndValue(100); QSignalSpy runningSpy(anim, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); anim->start(QVariantAnimation::DeleteWhenStopped); - QTest::qWait(anim->duration() + 50); + QTest::qWait(anim->duration() + 100); QCOMPARE(runningSpy.count(), 2); //started and then stopped QVERIFY(!anim); } @@ -659,7 +659,7 @@ void tst_QPropertyAnimation::playForwardBackward() anim.setStartValue(0); anim.setEndValue(100); anim.start(); - QTest::qWait(anim.duration() + 50); + QTest::qWait(anim.duration() + 100); QCOMPARE(anim.state(), QAbstractAnimation::Stopped); QCOMPARE(anim.currentTime(), anim.duration()); @@ -667,7 +667,7 @@ void tst_QPropertyAnimation::playForwardBackward() anim.setDirection(QVariantAnimation::Backward); anim.start(); QCOMPARE(anim.state(), QAbstractAnimation::Running); - QTest::qWait(anim.duration() + 50); + QTest::qWait(anim.duration() + 100); QCOMPARE(anim.state(), QAbstractAnimation::Stopped); QCOMPARE(anim.currentTime(), 0); @@ -676,7 +676,7 @@ void tst_QPropertyAnimation::playForwardBackward() anim.start(); QCOMPARE(anim.state(), QAbstractAnimation::Running); QCOMPARE(anim.currentTime(), anim.duration()); - QTest::qWait(anim.duration() + 50); + QTest::qWait(anim.duration() + 100); QCOMPARE(anim.state(), QAbstractAnimation::Stopped); QCOMPARE(anim.currentTime(), 0); } @@ -1093,7 +1093,7 @@ void tst_QPropertyAnimation::valueChanged() QSignalSpy spy(&anim, SIGNAL(valueChanged(QVariant))); anim.start(); - QTest::qWait(anim.duration() + 50); + QTest::qWait(anim.duration() + 100); QCOMPARE(anim.state(), QAbstractAnimation::Stopped); QCOMPARE(anim.currentTime(), anim.duration()); @@ -1144,7 +1144,7 @@ void tst_QPropertyAnimation::twoAnimations() o1.anim.start(); o2.anim.start(); - QTest::qWait(o1.anim.duration() + 50); + QTest::qWait(o1.anim.duration() + 100); QCOMPARE(o1.anim.state(), QAbstractAnimation::Stopped); QCOMPARE(o2.anim.state(), QAbstractAnimation::Stopped); @@ -1194,7 +1194,7 @@ void tst_QPropertyAnimation::deletedInUpdateCurrentTime() MyComposedAnimation composedAnimation(&o, "value", "realValue"); composedAnimation.start(); QCOMPARE(composedAnimation.state(), QAbstractAnimation::Running); - QTest::qWait(composedAnimation.duration() + 50); + QTest::qWait(composedAnimation.duration() + 100); QCOMPARE(composedAnimation.state(), QAbstractAnimation::Stopped); QCOMPARE(o.value(), 1000); diff --git a/tests/auto/qscriptstring/tst_qscriptstring.cpp b/tests/auto/qscriptstring/tst_qscriptstring.cpp index e1a4bc1..1229f4a 100644 --- a/tests/auto/qscriptstring/tst_qscriptstring.cpp +++ b/tests/auto/qscriptstring/tst_qscriptstring.cpp @@ -59,6 +59,8 @@ public: private slots: void test(); void hash(); + void toArrayIndex_data(); + void toArrayIndex(); }; tst_QScriptString::tst_QScriptString() @@ -155,5 +157,40 @@ void tst_QScriptString::hash() QCOMPARE(stringToInt.value(foo), 123); } +void tst_QScriptString::toArrayIndex_data() +{ + QTest::addColumn<QString>("input"); + QTest::addColumn<bool>("expectSuccess"); + QTest::addColumn<quint32>("expectedIndex"); + QTest::newRow("foo") << QString::fromLatin1("foo") << false << quint32(0xffffffff); + QTest::newRow("empty") << QString::fromLatin1("") << false << quint32(0xffffffff); + QTest::newRow("0") << QString::fromLatin1("0") << true << quint32(0); + QTest::newRow("00") << QString::fromLatin1("00") << false << quint32(0xffffffff); + QTest::newRow("1") << QString::fromLatin1("1") << true << quint32(1); + QTest::newRow("123") << QString::fromLatin1("123") << true << quint32(123); + QTest::newRow("-1") << QString::fromLatin1("-1") << false << quint32(0xffffffff); + QTest::newRow("0a") << QString::fromLatin1("0a") << false << quint32(0xffffffff); + QTest::newRow("0x1") << QString::fromLatin1("0x1") << false << quint32(0xffffffff); + QTest::newRow("01") << QString::fromLatin1("01") << false << quint32(0xffffffff); + QTest::newRow("4294967294") << QString::fromLatin1("4294967294") << true << quint32(0xfffffffe); + QTest::newRow("4294967295") << QString::fromLatin1("4294967295") << false << quint32(0xffffffff); +} + +void tst_QScriptString::toArrayIndex() +{ + QFETCH(QString, input); + QFETCH(bool, expectSuccess); + QFETCH(quint32, expectedIndex); + QScriptEngine engine; + for (int x = 0; x < 2; ++x) { + bool isArrayIndex; + bool *ptr = (x == 0) ? &isArrayIndex : (bool*)0; + quint32 result = engine.toStringHandle(input).toArrayIndex(ptr); + if (x == 0) + QCOMPARE(isArrayIndex, expectSuccess); + QCOMPARE(result, expectedIndex); + } +} + QTEST_MAIN(tst_QScriptString) #include "tst_qscriptstring.moc" diff --git a/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp b/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp index aa6801a..f6afc5b 100644 --- a/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp +++ b/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp @@ -929,16 +929,13 @@ void tst_QSequentialAnimationGroup::startDelay() group.addPause(125); QCOMPARE(group.totalDuration(), 375); - QEventLoop loop; - QObject::connect(&group, SIGNAL(finished()), &loop, SLOT(quit())); - - QTime time; - time.start(); group.start(); - loop.exec(); + QCOMPARE(group.state(), QAnimationGroup::Running); - QVERIFY(time.elapsed() >= 375); - QVERIFY(time.elapsed() < 1000); + QTest::qWait(500); + + QVERIFY(group.currentTime() == 375); + QCOMPARE(group.state(), QAnimationGroup::Stopped); } void tst_QSequentialAnimationGroup::clearGroup() diff --git a/tests/auto/qsplitter/tst_qsplitter.cpp b/tests/auto/qsplitter/tst_qsplitter.cpp index cf16421..b832f3a 100644 --- a/tests/auto/qsplitter/tst_qsplitter.cpp +++ b/tests/auto/qsplitter/tst_qsplitter.cpp @@ -102,6 +102,8 @@ private slots: void task187373_addAbstractScrollAreas(); void task187373_addAbstractScrollAreas_data(); void task169702_sizes(); + void taskQTBUG_4101_ensureOneNonCollapsedWidget_data(); + void taskQTBUG_4101_ensureOneNonCollapsedWidget(); private: void removeThirdWidget(); @@ -1281,6 +1283,8 @@ class MyFriendlySplitter : public QSplitter public: MyFriendlySplitter(QWidget *parent = 0) : QSplitter(parent) {} void setRubberBand(int pos) { QSplitter::setRubberBand(pos); } + + friend class tst_QSplitter; }; void tst_QSplitter::rubberBandNotInSplitter() @@ -1403,5 +1407,35 @@ void tst_QSplitter::task169702_sizes() QCOMPARE(testW->size().height(), testW->minimumSizeHint().height()); } +void tst_QSplitter::taskQTBUG_4101_ensureOneNonCollapsedWidget_data() +{ + QTest::addColumn<bool>("testingHide"); + + QTest::newRow("last non collapsed hidden") << true; + QTest::newRow("last non collapsed deleted") << false; +} + +void tst_QSplitter::taskQTBUG_4101_ensureOneNonCollapsedWidget() +{ + QFETCH(bool, testingHide); + + MyFriendlySplitter s; + QLabel *l; + for (int i = 0; i < 5; ++i) { + l = new QLabel(QString("Label ") + QChar('A' + i)); + l->setAlignment(Qt::AlignCenter); + s.addWidget(l); + s.moveSplitter(0, i); // Collapse all the labels except the last one. + } + + s.show(); + if (testingHide) + l->hide(); + else + delete l; + QTest::qWait(100); + QVERIFY(s.sizes().at(0) > 0); +} + QTEST_MAIN(tst_QSplitter) #include "tst_qsplitter.moc" diff --git a/tests/auto/qsqldatabase/tst_qsqldatabase.cpp b/tests/auto/qsqldatabase/tst_qsqldatabase.cpp index 82b6066..fe7c3ea 100644 --- a/tests/auto/qsqldatabase/tst_qsqldatabase.cpp +++ b/tests/auto/qsqldatabase/tst_qsqldatabase.cpp @@ -1234,6 +1234,7 @@ void tst_QSqlDatabase::recordSQLite() FieldDef("integer", QVariant::Int, QVariant(13)), FieldDef("int", QVariant::Int, QVariant(12)), + FieldDef("real", QVariant::String, QVariant(1.234567890123456)), FieldDef() }; diff --git a/tests/auto/qsqlquerymodel/tst_qsqlquerymodel.cpp b/tests/auto/qsqlquerymodel/tst_qsqlquerymodel.cpp index 3131f35..02b48fa 100644 --- a/tests/auto/qsqlquerymodel/tst_qsqlquerymodel.cpp +++ b/tests/auto/qsqlquerymodel/tst_qsqlquerymodel.cpp @@ -96,6 +96,7 @@ private slots: void task_180617(); void task_180617_data() { generic_data(); } + void task_QTBUG_4963_setHeaderDataWithProxyModel(); private: void generic_data(const QString &engine=QString()); @@ -428,6 +429,8 @@ void tst_QSqlQueryModel::setHeaderData() QVERIFY(!model.setHeaderData(5, Qt::Vertical, "foo")); QVERIFY(model.headerData(5, Qt::Vertical).isValid()); + model.setQuery(QSqlQuery("select * from " + qTableName("test"), db)); + qRegisterMetaType<Qt::Orientation>("Qt::Orientation"); QSignalSpy spy(&model, SIGNAL(headerDataChanged(Qt::Orientation, int, int))); QVERIFY(model.setHeaderData(2, Qt::Horizontal, "bar")); @@ -437,10 +440,8 @@ void tst_QSqlQueryModel::setHeaderData() QCOMPARE(spy.value(0).value(1).toInt(), 2); QCOMPARE(spy.value(0).value(2).toInt(), 2); - QVERIFY(model.setHeaderData(7, Qt::Horizontal, "foo", Qt::ToolTipRole)); - QVERIFY(model.headerData(7, Qt::Horizontal, Qt::ToolTipRole).isValid()); - - model.setQuery(QSqlQuery("select * from " + qTableName("test"), db)); + QVERIFY(!model.setHeaderData(7, Qt::Horizontal, "foo", Qt::ToolTipRole)); + QVERIFY(!model.headerData(7, Qt::Horizontal, Qt::ToolTipRole).isValid()); bool isToUpper = db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2"); QCOMPARE(model.headerData(0, Qt::Horizontal).toString(), isToUpper ? QString("ID") : QString("id")); @@ -603,5 +604,14 @@ void tst_QSqlQueryModel::task_180617() QCOMPARE(view.rowAt(0), -1); } +void tst_QSqlQueryModel::task_QTBUG_4963_setHeaderDataWithProxyModel() +{ + QSqlQueryModel plainModel; + QSortFilterProxyModel proxyModel; + proxyModel.setSourceModel(&plainModel); + QVERIFY(!plainModel.setHeaderData(0, Qt::Horizontal, QObject::tr("ID"))); + // And it should not crash. +} + QTEST_MAIN(tst_QSqlQueryModel) #include "tst_qsqlquerymodel.moc" diff --git a/tests/auto/qsslsocket/tst_qsslsocket.cpp b/tests/auto/qsslsocket/tst_qsslsocket.cpp index 2bd1684..db46b66 100644 --- a/tests/auto/qsslsocket/tst_qsslsocket.cpp +++ b/tests/auto/qsslsocket/tst_qsslsocket.cpp @@ -1755,9 +1755,7 @@ void tst_QSslSocket::readFromClosedSocket() socket->close(); QVERIFY(!socket->bytesAvailable()); QVERIFY(!socket->bytesToWrite()); - socket->waitForDisconnected(); - QVERIFY(!socket->bytesAvailable()); - QVERIFY(!socket->bytesToWrite()); + QVERIFY(socket->state() == QAbstractSocket::UnconnectedState); } void tst_QSslSocket::writeBigChunk() diff --git a/tests/auto/qstringbuilder1/qstringbuilder1.pro b/tests/auto/qstringbuilder1/qstringbuilder1.pro index 1ca9d45..5bb14d4 100644 --- a/tests/auto/qstringbuilder1/qstringbuilder1.pro +++ b/tests/auto/qstringbuilder1/qstringbuilder1.pro @@ -3,7 +3,4 @@ load(qttest_p4) QT = core SOURCES += tst_qstringbuilder1.cpp -HEADERS += ../qstringbuilder1/stringbuilder.h - -DEFINES += SCENARIO=1 diff --git a/tests/auto/qstringbuilder1/stringbuilder.cpp b/tests/auto/qstringbuilder1/stringbuilder.cpp index 9fea137..f35d4d2 100644 --- a/tests/auto/qstringbuilder1/stringbuilder.cpp +++ b/tests/auto/qstringbuilder1/stringbuilder.cpp @@ -39,61 +39,9 @@ ** ****************************************************************************/ -// This is included in various .cpp files as a compile test for various scenarios -// depending on NO_CAST_* and QT_USE_FAST_OPERATOR_PLUS and QT_USE_FAST_CONCATENATION - -#if SCENARIO == 1 -// this is the "no harm done" version. Only operator% is active, -// with NO_CAST * defined -#define P % -#undef QT_USE_FAST_OPERATOR_PLUS -#undef QT_USE_FAST_CONCATENATION -#define QT_NO_CAST_FROM_ASCII -#define QT_NO_CAST_TO_ASCII -#endif - - -#if SCENARIO == 2 -// this is the "full" version. Operator+ is replaced by a QStringBuilder -// based version -// with NO_CAST * defined -#define P + -#define QT_USE_FAST_OPERATOR_PLUS -#define QT_USE_FAST_CONCATENATION -#define QT_NO_CAST_FROM_ASCII -#define QT_NO_CAST_TO_ASCII -#endif - -#if SCENARIO == 3 -// this is the "no harm done" version. Only operator% is active, -// with NO_CAST * _not_ defined -#define P % -#undef QT_USE_FAST_OPERATOR_PLUS -#undef QT_USE_FAST_CONCATENATION -#undef QT_NO_CAST_FROM_ASCII -#undef QT_NO_CAST_TO_ASCII -#endif - -#if SCENARIO == 4 -// this is the "full" version. Operator+ is replaced by a QStringBuilder -// based version -// with NO_CAST * _not_ defined -#define P + -#define QT_USE_FAST_OPERATOR_PLUS -#define QT_USE_FAST_CONCATENATION -#undef QT_NO_CAST_FROM_ASCII -#undef QT_NO_CAST_TO_ASCII -#endif - -#include <QtTest/QtTest> -#include "stringbuilder.h" - -//TESTED_CLASS=QStringBuilder -//TESTED_FILES=qstringbuilder.cpp - #define LITERAL "some literal" -void tst_QStringBuilder::scenario() +void runScenario() { QLatin1Literal l1literal(LITERAL); QLatin1String l1string(LITERAL); @@ -129,5 +77,3 @@ void tst_QStringBuilder::scenario() QCOMPARE(r, r2); #endif } - -QTEST_APPLESS_MAIN(tst_QStringBuilder) diff --git a/tests/auto/qstringbuilder1/stringbuilder.h b/tests/auto/qstringbuilder1/stringbuilder.h deleted file mode 100644 index 5ac9dbe..0000000 --- a/tests/auto/qstringbuilder1/stringbuilder.h +++ /dev/null @@ -1,55 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef TST_QSTRINGBUILDER_H -#define TST_QSTRINGBUILDER_H - -#include <qobject.h> - -class tst_QStringBuilder : public QObject -{ - Q_OBJECT - -private slots: - void scenario(); -}; - -#endif diff --git a/tests/auto/qstringbuilder1/tst_qstringbuilder1.cpp b/tests/auto/qstringbuilder1/tst_qstringbuilder1.cpp index bd2e4b0..d0a613c 100644 --- a/tests/auto/qstringbuilder1/tst_qstringbuilder1.cpp +++ b/tests/auto/qstringbuilder1/tst_qstringbuilder1.cpp @@ -39,4 +39,35 @@ ** ****************************************************************************/ -#include "../qstringbuilder1/stringbuilder.cpp" + +// SCENARIO 1 +// this is the "no harm done" version. Only operator% is active, +// with NO_CAST * defined +#define P % +#undef QT_USE_FAST_OPERATOR_PLUS +#undef QT_USE_FAST_CONCATENATION +#define QT_NO_CAST_FROM_ASCII +#define QT_NO_CAST_TO_ASCII + + +#include <QtTest/QtTest> + +//TESTED_CLASS=QStringBuilder +//TESTED_FILES=qstringbuilder.cpp + +#define LITERAL "some literal" + +void runScenario(); // Defined in stringbuilder.cpp #included below. + +class tst_QStringBuilder1 : public QObject +{ + Q_OBJECT + +private slots: + void scenario() { runScenario(); } +}; + +#include "stringbuilder.cpp" +#include "tst_qstringbuilder1.moc" + +QTEST_APPLESS_MAIN(tst_QStringBuilder1) diff --git a/tests/auto/qstringbuilder2/qstringbuilder2.pro b/tests/auto/qstringbuilder2/qstringbuilder2.pro index c0b3ebc..4152dc3 100644 --- a/tests/auto/qstringbuilder2/qstringbuilder2.pro +++ b/tests/auto/qstringbuilder2/qstringbuilder2.pro @@ -3,6 +3,3 @@ load(qttest_p4) QT = core SOURCES += tst_qstringbuilder2.cpp -HEADERS += ../qstringbuilder1/stringbuilder.h - -DEFINES += SCENARIO=2 diff --git a/tests/auto/qstringbuilder2/tst_qstringbuilder2.cpp b/tests/auto/qstringbuilder2/tst_qstringbuilder2.cpp index bd2e4b0..4470928 100644 --- a/tests/auto/qstringbuilder2/tst_qstringbuilder2.cpp +++ b/tests/auto/qstringbuilder2/tst_qstringbuilder2.cpp @@ -39,4 +39,36 @@ ** ****************************************************************************/ + +// SCENARIO 2 +// this is the "full" version. Operator+ is replaced by a QStringBuilder +// based version +// with NO_CAST * defined +#define P + +#define QT_USE_FAST_OPERATOR_PLUS +#define QT_USE_FAST_CONCATENATION +#define QT_NO_CAST_FROM_ASCII +#define QT_NO_CAST_TO_ASCII + + +#include <QtTest/QtTest> + +//TESTED_CLASS=QStringBuilder +//TESTED_FILES=qstringbuilder.cpp + +#define LITERAL "some literal" + +void runScenario(); // Defined in stringbuilder.cpp #included below. + +class tst_QStringBuilder2 : public QObject +{ + Q_OBJECT + +private slots: + void scenario() { runScenario(); } +}; + #include "../qstringbuilder1/stringbuilder.cpp" +#include "tst_qstringbuilder2.moc" + +QTEST_APPLESS_MAIN(tst_QStringBuilder2) diff --git a/tests/auto/qstringbuilder3/qstringbuilder3.pro b/tests/auto/qstringbuilder3/qstringbuilder3.pro index 93d1a39..b4d2225 100644 --- a/tests/auto/qstringbuilder3/qstringbuilder3.pro +++ b/tests/auto/qstringbuilder3/qstringbuilder3.pro @@ -3,6 +3,3 @@ load(qttest_p4) QT = core SOURCES += tst_qstringbuilder3.cpp -HEADERS += ../qstringbuilder1/stringbuilder.h - -DEFINES += SCENARIO=3 diff --git a/tests/auto/qstringbuilder3/tst_qstringbuilder3.cpp b/tests/auto/qstringbuilder3/tst_qstringbuilder3.cpp index bd2e4b0..30f0181 100644 --- a/tests/auto/qstringbuilder3/tst_qstringbuilder3.cpp +++ b/tests/auto/qstringbuilder3/tst_qstringbuilder3.cpp @@ -39,4 +39,35 @@ ** ****************************************************************************/ + +// SCENARIO 3 +// this is the "no harm done" version. Only operator% is active, +// with NO_CAST * _not_ defined +#define P % +#undef QT_USE_FAST_OPERATOR_PLUS +#undef QT_USE_FAST_CONCATENATION +#undef QT_NO_CAST_FROM_ASCII +#undef QT_NO_CAST_TO_ASCII + + +#include <QtTest/QtTest> + +//TESTED_CLASS=QStringBuilder +//TESTED_FILES=qstringbuilder.cpp + +#define LITERAL "some literal" + +void runScenario(); // Defined in stringbuilder.cpp #included below. + +class tst_QStringBuilder3 : public QObject +{ + Q_OBJECT + +private slots: + void scenario() { runScenario(); } +}; + #include "../qstringbuilder1/stringbuilder.cpp" +#include "tst_qstringbuilder3.moc" + +QTEST_APPLESS_MAIN(tst_QStringBuilder3) diff --git a/tests/auto/qstringbuilder4/qstringbuilder4.pro b/tests/auto/qstringbuilder4/qstringbuilder4.pro index eeec447..6ec5228 100644 --- a/tests/auto/qstringbuilder4/qstringbuilder4.pro +++ b/tests/auto/qstringbuilder4/qstringbuilder4.pro @@ -3,6 +3,3 @@ load(qttest_p4) QT = core SOURCES += tst_qstringbuilder4.cpp -HEADERS += ../qstringbuilder1/stringbuilder.h - -DEFINES += SCENARIO=4 diff --git a/tests/auto/qstringbuilder4/tst_qstringbuilder4.cpp b/tests/auto/qstringbuilder4/tst_qstringbuilder4.cpp index 2159283..95b4ec3 100644 --- a/tests/auto/qstringbuilder4/tst_qstringbuilder4.cpp +++ b/tests/auto/qstringbuilder4/tst_qstringbuilder4.cpp @@ -4,7 +4,7 @@ ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the QtXmlPatterns module of the Qt Toolkit. +** This file is part of the test suite module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage @@ -39,4 +39,36 @@ ** ****************************************************************************/ + +// SCENARIO 4 +// this is the "full" version. Operator+ is replaced by a QStringBuilder +// based version +// with NO_CAST * _not_ defined +#define P + +#define QT_USE_FAST_OPERATOR_PLUS +#define QT_USE_FAST_CONCATENATION +#undef QT_NO_CAST_FROM_ASCII +#undef QT_NO_CAST_TO_ASCII + + +#include <QtTest/QtTest> + +//TESTED_CLASS=QStringBuilder +//TESTED_FILES=qstringbuilder.cpp + +#define LITERAL "some literal" + +void runScenario(); // Defined in stringbuilder.cpp #included below. + +class tst_QStringBuilder4 : public QObject +{ + Q_OBJECT + +private slots: + void scenario() { runScenario(); } +}; + #include "../qstringbuilder1/stringbuilder.cpp" +#include "tst_qstringbuilder4.moc" + +QTEST_APPLESS_MAIN(tst_QStringBuilder4) diff --git a/tests/auto/qtableview/tst_qtableview.cpp b/tests/auto/qtableview/tst_qtableview.cpp index d8110e1..227ca6f 100644 --- a/tests/auto/qtableview/tst_qtableview.cpp +++ b/tests/auto/qtableview/tst_qtableview.cpp @@ -41,6 +41,7 @@ #include <QtGui/QtGui> +#include <private/qtablewidget_p.h> #include <QtTest/QtTest> #include "../../shared/util.h" #include "private/qapplication_p.h" @@ -58,6 +59,13 @@ } \ } while(0) +#ifdef QT_BUILD_INTERNAL +#define VERIFY_SPANS_CONSISTENCY(TEST_VIEW_) \ + QVERIFY(static_cast<QTableViewPrivate*>(QObjectPrivate::get(TEST_VIEW_))->spans.checkConsistency()) +#else +#define VERIFY_SPANS_CONSISTENCY(TEST_VIEW_) (void)false +#endif + typedef QList<int> IntList; Q_DECLARE_METATYPE(IntList) @@ -188,12 +196,15 @@ private slots: void task248688_autoScrollNavigation(); void task259308_scrollVerticalHeaderSwappedSections(); void task191545_dragSelectRows(); + void taskQTBUG_5062_spansInconsistency(); void mouseWheel_data(); void mouseWheel(); void addColumnWhileEditing(); void task234926_setHeaderSorting(); + + void changeHeaderData(); }; // Testing get/set functions @@ -2017,8 +2028,9 @@ void tst_QTableView::resizeRowsToContents() view.resizeRowsToContents(); QCOMPARE(resizedSpy.count(), model.rowCount()); - for (int r = 0; r < model.rowCount(); ++r) + for (int r = 0; r < model.rowCount(); ++r) { QCOMPARE(view.rowHeight(r), rowHeight); + } } void tst_QTableView::resizeColumnsToContents_data() @@ -2898,6 +2910,8 @@ void tst_QTableView::span() view.clearSpans(); QCOMPARE(view.rowSpan(row, column), 1); QCOMPARE(view.columnSpan(row, column), 1); + + VERIFY_SPANS_CONSISTENCY(&view); } typedef QVector<QRect> SpanList; @@ -3033,6 +3047,8 @@ void tst_QTableView::spans() QCOMPARE(view.columnSpan(pos.x(), pos.y()), expectedColumnSpan); QCOMPARE(view.rowSpan(pos.x(), pos.y()), expectedRowSpan); + + VERIFY_SPANS_CONSISTENCY(&view); } void tst_QTableView::spansAfterRowInsertion() @@ -3067,6 +3083,8 @@ void tst_QTableView::spansAfterRowInsertion() view.model()->insertRows(12, 2); QCOMPARE(view.rowSpan(7, 3), 5); QCOMPARE(view.columnSpan(7, 3), 3); + + VERIFY_SPANS_CONSISTENCY(&view); } void tst_QTableView::spansAfterColumnInsertion() @@ -3101,6 +3119,8 @@ void tst_QTableView::spansAfterColumnInsertion() view.model()->insertColumns(12, 2); QCOMPARE(view.rowSpan(3, 7), 3); QCOMPARE(view.columnSpan(3, 7), 5); + + VERIFY_SPANS_CONSISTENCY(&view); } void tst_QTableView::spansAfterRowRemoval() @@ -3138,6 +3158,8 @@ void tst_QTableView::spansAfterRowRemoval() QCOMPARE(view.columnSpan(span.top(), span.left()), span.width()); QCOMPARE(view.rowSpan(span.top(), span.left()), span.height()); } + + VERIFY_SPANS_CONSISTENCY(&view); } void tst_QTableView::spansAfterColumnRemoval() @@ -3176,6 +3198,8 @@ void tst_QTableView::spansAfterColumnRemoval() QCOMPARE(view.columnSpan(span.left(), span.top()), span.height()); QCOMPARE(view.rowSpan(span.left(), span.top()), span.width()); } + + VERIFY_SPANS_CONSISTENCY(&view); } class Model : public QAbstractTableModel { @@ -3267,12 +3291,12 @@ void tst_QTableView::resizeToContents() //now let's check the row/col sizes for(int i = 0;i<table.columnCount();i++) { - QVERIFY( table.columnWidth(i) == table2.columnWidth(i)); - QVERIFY( table2.columnWidth(i) == table3.columnWidth(i)); + QCOMPARE( table.columnWidth(i), table2.columnWidth(i)); + QCOMPARE( table2.columnWidth(i), table3.columnWidth(i)); } for(int i = 0;i<table.rowCount();i++) { - QVERIFY( table.rowHeight(i) == table2.rowHeight(i)); - QVERIFY( table2.rowHeight(i) == table3.rowHeight(i)); + QCOMPARE( table.rowHeight(i), table2.rowHeight(i)); + QCOMPARE( table2.rowHeight(i), table3.rowHeight(i)); } } @@ -3844,5 +3868,41 @@ void tst_QTableView::task234926_setHeaderSorting() QCOMPARE(model.stringList() , sortedDataD); } +void tst_QTableView::taskQTBUG_5062_spansInconsistency() +{ + const int nRows = 5; + const int nColumns = 5; + + QtTestTableModel model(nRows, nColumns); + QtTestTableView view; + view.setModel(&model); + + for (int i = 0; i < nRows; ++i) + view.setSpan(i, 0, 1, nColumns); + view.setSpan(2, 0, 1, 1); + view.setSpan(3, 0, 1, 1); + + VERIFY_SPANS_CONSISTENCY(&view); +} + +void tst_QTableView::changeHeaderData() +{ + QTableView view; + QStandardItemModel model(5,5); + view.setModel(&model); + view.show(); + QTest::qWaitForWindowShown(&view); + + QString text = "long long long text"; + const int textWidth = view.fontMetrics().width(text); + QVERIFY(view.verticalHeader()->width() < textWidth); + + model.setHeaderData(2, Qt::Vertical, text); + QTest::qWait(100); //leave time for layout + + QVERIFY(view.verticalHeader()->width() > textWidth); +} + + QTEST_MAIN(tst_QTableView) #include "tst_qtableview.moc" diff --git a/tests/auto/qtextdocument/qtextdocument.pro b/tests/auto/qtextdocument/qtextdocument.pro index d3ec45d..1e44a9c 100644 --- a/tests/auto/qtextdocument/qtextdocument.pro +++ b/tests/auto/qtextdocument/qtextdocument.pro @@ -1,4 +1,5 @@ load(qttest_p4) +QT += xml HEADERS += common.h SOURCES += tst_qtextdocument.cpp diff --git a/tests/auto/qtextdocument/tst_qtextdocument.cpp b/tests/auto/qtextdocument/tst_qtextdocument.cpp index f393393..5237438 100644 --- a/tests/auto/qtextdocument/tst_qtextdocument.cpp +++ b/tests/auto/qtextdocument/tst_qtextdocument.cpp @@ -59,6 +59,7 @@ #include <qfontmetrics.h> #include <qimage.h> #include <qtextlayout.h> +#include <QDomDocument> #include "common.h" @@ -175,6 +176,8 @@ private slots: void testUndoBlocks(); void receiveCursorPositionChangedAfterContentsChange(); + void escape_data(); + void escape(); private: void backgroundImage_checkExpectedHtml(const QTextDocument &doc); @@ -576,7 +579,7 @@ void tst_QTextDocument::task240325() } void tst_QTextDocument::stylesheetFont_data() -{ +{ QTest::addColumn<QString>("stylesheet"); QTest::addColumn<QFont>("font"); @@ -732,7 +735,7 @@ void tst_QTextDocument::toHtml_data() cursor.insertText("Blah", fmt); QTest::newRow("font-family-with-quotes1") << QTextDocumentFragment(&doc) - << QString("<p DEFAULTBLOCKSTYLE><span style=\" font-family:\"Foo's Family\";\">Blah</span></p>"); + << QString("<p DEFAULTBLOCKSTYLE><span style=\" font-family:"Foo's Family";\">Blah</span></p>"); } { @@ -743,7 +746,7 @@ void tst_QTextDocument::toHtml_data() cursor.insertText("Blah", fmt); QTest::newRow("font-family-with-quotes2") << QTextDocumentFragment(&doc) - << QString("<p DEFAULTBLOCKSTYLE><span style=\" font-family:'Foo\"s Family';\">Blah</span></p>"); + << QString("<p DEFAULTBLOCKSTYLE><span style=\" font-family:'Foo"s Family';\">Blah</span></p>"); } { @@ -974,6 +977,30 @@ void tst_QTextDocument::toHtml_data() { CREATE_DOC_AND_CURSOR(); + QTextCharFormat fmt; + fmt.setAnchor(true); + fmt.setAnchorHref("http://www.kde.org/?a=1&b=2"); + cursor.insertText("Blah", fmt); + + QTest::newRow("href anchor with &") << QTextDocumentFragment(&doc) + << QString("<p DEFAULTBLOCKSTYLE><a href=\"http://www.kde.org/?a=1&b=2\">Blah</a></p>"); + } + + { + CREATE_DOC_AND_CURSOR(); + + QTextCharFormat fmt; + fmt.setAnchor(true); + fmt.setAnchorHref("http://www.kde.org/?a='&b=\""); + cursor.insertText("Blah", fmt); + + QTest::newRow("href anchor with ' and \"") << QTextDocumentFragment(&doc) + << QString("<p DEFAULTBLOCKSTYLE><a href=\"http://www.kde.org/?a='&b="\">Blah</a></p>"); + } + + { + CREATE_DOC_AND_CURSOR(); + cursor.insertTable(2, 2); QTest::newRow("simpletable") << QTextDocumentFragment(&doc) @@ -1541,6 +1568,9 @@ void tst_QTextDocument::toHtml() QString output = doc->toHtml(); QCOMPARE(output, expectedOutput); + + QDomDocument document; + QVERIFY2(document.setContent(output), "Output was not valid XML"); } void tst_QTextDocument::toHtml2() @@ -2652,5 +2682,25 @@ void tst_QTextDocument::receiveCursorPositionChangedAfterContentsChange() QCOMPARE(rec.first, QString("contentsChanged")); } +void tst_QTextDocument::escape_data() +{ + QTest::addColumn<QString>("original"); + QTest::addColumn<QString>("expected"); + + QTest::newRow("1") << "Hello World\n" << "Hello World\n"; + QTest::newRow("2") << "#include <QtCore>" << "#include <QtCore>"; + QTest::newRow("3") << "<p class=\"cool\"><a href=\"http://example.com/?foo=bar&bar=foo\">plop --> </a></p>" + << "<p class="cool"><a href="http://example.com/?foo=bar&amp;bar=foo">plop --&gt; </a></p>"; + QTest::newRow("4") << QString::fromUtf8("<\320\222\321\201>") << QString::fromUtf8("<\320\222\321\201>"); +} + +void tst_QTextDocument::escape() +{ + QFETCH(QString, original); + QFETCH(QString, expected); + + QCOMPARE(Qt::escape(original), expected); +} + QTEST_MAIN(tst_QTextDocument) #include "tst_qtextdocument.moc" diff --git a/tests/auto/qtextedit/fullWidthSelection/centered-fully-selected.png b/tests/auto/qtextedit/fullWidthSelection/centered-fully-selected.png Binary files differindex 7467478..ced6eb6 100644 --- a/tests/auto/qtextedit/fullWidthSelection/centered-fully-selected.png +++ b/tests/auto/qtextedit/fullWidthSelection/centered-fully-selected.png diff --git a/tests/auto/qtextedit/fullWidthSelection/centered-partly-selected.png b/tests/auto/qtextedit/fullWidthSelection/centered-partly-selected.png Binary files differindex 7a10e63..481b99c 100644 --- a/tests/auto/qtextedit/fullWidthSelection/centered-partly-selected.png +++ b/tests/auto/qtextedit/fullWidthSelection/centered-partly-selected.png diff --git a/tests/auto/qtextedit/fullWidthSelection/last-char-on-line.png b/tests/auto/qtextedit/fullWidthSelection/last-char-on-line.png Binary files differindex df5b92e..292d3f9 100644 --- a/tests/auto/qtextedit/fullWidthSelection/last-char-on-line.png +++ b/tests/auto/qtextedit/fullWidthSelection/last-char-on-line.png diff --git a/tests/auto/qtextedit/fullWidthSelection/last-char-on-parag.png b/tests/auto/qtextedit/fullWidthSelection/last-char-on-parag.png Binary files differindex d58d4cc..69b72ed 100644 --- a/tests/auto/qtextedit/fullWidthSelection/last-char-on-parag.png +++ b/tests/auto/qtextedit/fullWidthSelection/last-char-on-parag.png diff --git a/tests/auto/qtextedit/fullWidthSelection/multiple-full-width-lines.png b/tests/auto/qtextedit/fullWidthSelection/multiple-full-width-lines.png Binary files differindex c5c3c22..467b91e 100644 --- a/tests/auto/qtextedit/fullWidthSelection/multiple-full-width-lines.png +++ b/tests/auto/qtextedit/fullWidthSelection/multiple-full-width-lines.png diff --git a/tests/auto/qtextedit/fullWidthSelection/nowrap_long.png b/tests/auto/qtextedit/fullWidthSelection/nowrap_long.png Binary files differindex 7ded254..cce921b 100644 --- a/tests/auto/qtextedit/fullWidthSelection/nowrap_long.png +++ b/tests/auto/qtextedit/fullWidthSelection/nowrap_long.png diff --git a/tests/auto/qtextedit/fullWidthSelection/single-full-width-line.png b/tests/auto/qtextedit/fullWidthSelection/single-full-width-line.png Binary files differindex d2fd629..937494a 100644 --- a/tests/auto/qtextedit/fullWidthSelection/single-full-width-line.png +++ b/tests/auto/qtextedit/fullWidthSelection/single-full-width-line.png diff --git a/tests/auto/qtextedit/tst_qtextedit.cpp b/tests/auto/qtextedit/tst_qtextedit.cpp index 59abbd5..fee030c 100644 --- a/tests/auto/qtextedit/tst_qtextedit.cpp +++ b/tests/auto/qtextedit/tst_qtextedit.cpp @@ -1967,7 +1967,7 @@ void tst_QTextEdit::fullWidthSelection() qt_setQtEnableTestFont(true); QFont testFont; testFont.setFamily("__Qt__Box__Engine__"); - testFont.setPixelSize(12); + testFont.setPixelSize(11); testFont.setWeight(QFont::Normal); QTextCharFormat cf; cf.setFont(testFont); @@ -2015,7 +2015,7 @@ void tst_QTextEdit::fullWidthSelection2() qt_setQtEnableTestFont(true); QFont testFont; testFont.setFamily("__Qt__Box__Engine__"); - testFont.setPixelSize(12); + testFont.setPixelSize(11); testFont.setWeight(QFont::Normal); QTextCharFormat cf; cf.setFont(testFont); diff --git a/tests/auto/qtreeview/tst_qtreeview.cpp b/tests/auto/qtreeview/tst_qtreeview.cpp index da58725..90e6c5c 100644 --- a/tests/auto/qtreeview/tst_qtreeview.cpp +++ b/tests/auto/qtreeview/tst_qtreeview.cpp @@ -235,6 +235,7 @@ private slots: void task254234_proxySort(); void task248022_changeSelection(); void task245654_changeModelAndExpandAll(); + void doubleClickedWithSpans(); }; class QtTestModel: public QAbstractItemModel @@ -2891,7 +2892,10 @@ void tst_QTreeView::styleOptionViewItem() QVERIFY(!opt.text.isEmpty()); QCOMPARE(opt.index, index); - QCOMPARE(!(opt.features & QStyleOptionViewItemV2::Alternate), !(index.row() % 2)); + //qDebug() << index << opt.text; + + if (allCollapsed) + QCOMPARE(!(opt.features & QStyleOptionViewItemV2::Alternate), !(index.row() % 2)); QCOMPARE(!(opt.features & QStyleOptionViewItemV2::HasCheckIndicator), !opt.text.contains("Checkable")); if (opt.text.contains("Beginning")) @@ -2911,12 +2915,16 @@ void tst_QTreeView::styleOptionViewItem() else QCOMPARE(opt.checkState, Qt::Unchecked); + QCOMPARE(!(opt.state & QStyle::State_Children) , !opt.text.contains("HasChildren")); + QCOMPARE(!!(opt.state & QStyle::State_Sibling) , !opt.text.contains("Last")); + QVERIFY(!opt.text.contains("Assert")); QStyledItemDelegate::paint(painter, option, index); count++; } mutable int count; + bool allCollapsed; }; QTreeView view; @@ -2926,8 +2934,9 @@ void tst_QTreeView::styleOptionViewItem() view.setItemDelegate(&delegate); model.appendRow(QList<QStandardItem*>() << new QStandardItem("Beginning") << new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") ); + QStandardItem *par1 = new QStandardItem("Beginning HasChildren"); model.appendRow(QList<QStandardItem*>() - << new QStandardItem("Beginning") << new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") ); + << par1 << new QStandardItem("Middle HasChildren") << new QStandardItem("Middle HasChildren") << new QStandardItem("End HasChildren") ); model.appendRow(QList<QStandardItem*>() << new QStandardItem("OnlyOne") << new QStandardItem("Assert") << new QStandardItem("Assert") << new QStandardItem("Assert") ); QStandardItem *checkable = new QStandardItem("Checkable"); @@ -2937,13 +2946,143 @@ void tst_QTreeView::styleOptionViewItem() checked->setCheckState(Qt::Checked); model.appendRow(QList<QStandardItem*>() << new QStandardItem("Beginning") << checkable << checked << new QStandardItem("End") ); + model.appendRow(QList<QStandardItem*>() + << new QStandardItem("Beginning Last") << new QStandardItem("Middle Last") << new QStandardItem("Middle Last") << new QStandardItem("End Last") ); + + par1->appendRow(QList<QStandardItem*>() + << new QStandardItem("Beginning") << new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") ); + QStandardItem *par2 = new QStandardItem("Beginning HasChildren"); + par1->appendRow(QList<QStandardItem*>() + << par2 << new QStandardItem("Middle HasChildren") << new QStandardItem("Middle HasChildren") << new QStandardItem("End HasChildren") ); + par2->appendRow(QList<QStandardItem*>() + << new QStandardItem("Beginning Last") << new QStandardItem("Middle Last") << new QStandardItem("Middle Last") << new QStandardItem("End Last") ); + + QStandardItem *par3 = new QStandardItem("Beginning Last"); + par1->appendRow(QList<QStandardItem*>() + << par3 << new QStandardItem("Middle Last") << new QStandardItem("Middle Last") << new QStandardItem("End Last") ); + par3->appendRow(QList<QStandardItem*>() + << new QStandardItem("Assert") << new QStandardItem("Assert") << new QStandardItem("Assert") << new QStandardItem("Asser") ); + view.setRowHidden(0, par3->index(), true); + par1->appendRow(QList<QStandardItem*>() + << new QStandardItem("Assert") << new QStandardItem("Assert") << new QStandardItem("Assert") << new QStandardItem("Asser") ); + view.setRowHidden(3, par1->index(), true); + view.setFirstColumnSpanned(2, QModelIndex(), true); view.setAlternatingRowColors(true); delegate.count = 0; + delegate.allCollapsed = true; view.showMaximized(); + QApplication::processEvents(); QTRY_VERIFY(delegate.count >= 13); + delegate.count = 0; + delegate.allCollapsed = false; + view.expandAll(); + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 13); + delegate.count = 0; + view.collapse(par2->index()); + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 4); + + + //test dynamic models + { + delegate.count = 0; + QStandardItemModel model2; + QStandardItem *item0 = new QStandardItem("OnlyOne Last"); + model2.appendRow(QList<QStandardItem*>() << item0); + view.setModel(&model2); + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 1); + QApplication::processEvents(); + + QStandardItem *item00 = new QStandardItem("OnlyOne Last"); + item0->appendRow(QList<QStandardItem*>() << item00); + item0->setText("OnlyOne Last HasChildren"); + QApplication::processEvents(); + delegate.count = 0; + view.expandAll(); + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 2); + QApplication::processEvents(); + + QStandardItem *item1 = new QStandardItem("OnlyOne Last"); + delegate.count = 0; + item0->setText("OnlyOne HasChildren"); + model2.appendRow(QList<QStandardItem*>() << item1); + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 3); + QApplication::processEvents(); + + QStandardItem *item01 = new QStandardItem("OnlyOne Last"); + delegate.count = 0; + item00->setText("OnlyOne"); + item0->appendRow(QList<QStandardItem*>() << item01); + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 4); + QApplication::processEvents(); + + QStandardItem *item000 = new QStandardItem("OnlyOne Last"); + delegate.count = 0; + item00->setText("OnlyOne HasChildren"); + item00->appendRow(QList<QStandardItem*>() << item000); + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 5); + QApplication::processEvents(); + + delegate.count = 0; + item0->removeRow(0); + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 3); + QApplication::processEvents(); + + item00 = new QStandardItem("OnlyOne"); + item0->insertRow(0, QList<QStandardItem*>() << item00); + QApplication::processEvents(); + delegate.count = 0; + view.expandAll(); + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 4); + QApplication::processEvents(); + + delegate.count = 0; + item0->removeRow(1); + item00->setText("OnlyOne Last"); + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 3); + QApplication::processEvents(); + + delegate.count = 0; + item0->removeRow(0); + item0->setText("OnlyOne"); + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 2); + QApplication::processEvents(); + + //with hidden items + item0->setText("OnlyOne HasChildren"); + item00 = new QStandardItem("OnlyOne"); + item0->appendRow(QList<QStandardItem*>() << item00); + item01 = new QStandardItem("Assert"); + item0->appendRow(QList<QStandardItem*>() << item01); + view.setRowHidden(1, item0->index(), true); + view.expandAll(); + QStandardItem *item02 = new QStandardItem("OnlyOne Last"); + item0->appendRow(QList<QStandardItem*>() << item02); + delegate.count = 0; + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 4); + QApplication::processEvents(); + + item0->removeRow(2); + item00->setText("OnlyOne Last"); + delegate.count = 0; + QApplication::processEvents(); + QTRY_VERIFY(delegate.count >= 3); + QApplication::processEvents(); + } } class task174627_TreeView : public QTreeView @@ -3507,7 +3646,35 @@ void tst_QTreeView::task245654_changeModelAndExpandAll() } +void tst_QTreeView::doubleClickedWithSpans() +{ + QTreeView view; + QStandardItemModel model(1, 2); + view.setModel(&model); + view.setFirstColumnSpanned(0, QModelIndex(), true); + view.show(); + QTest::qWaitForWindowShown(&view); + + QPoint p(10, 10); + QCOMPARE(view.indexAt(p), model.index(0, 0)); + QSignalSpy spy(&view, SIGNAL(doubleClicked(QModelIndex))); + QTest::mousePress(view.viewport(), Qt::LeftButton, 0, p); + QTest::mouseDClick(view.viewport(), Qt::LeftButton, 0, p); + QTest::mouseRelease(view.viewport(), Qt::LeftButton, 0, p); + QCOMPARE(spy.count(), 1); + //let's click on the 2nd column + p.setX(p.x() + view.header()->sectionSize(0)); + QCOMPARE(view.indexAt(p), model.index(0, 0)); + + //end the previous edition + QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, p); + QTest::qWait(100); + QTest::mousePress(view.viewport(), Qt::LeftButton, 0, p); + QTest::mouseDClick(view.viewport(), Qt::LeftButton, 0, p); + QTest::mouseRelease(view.viewport(), Qt::LeftButton, 0, p); + QCOMPARE(spy.count(), 2); +} QTEST_MAIN(tst_QTreeView) #include "tst_qtreeview.moc" diff --git a/tests/auto/qudpsocket/tst_qudpsocket.cpp b/tests/auto/qudpsocket/tst_qudpsocket.cpp index 7ea2163..9418be0 100644 --- a/tests/auto/qudpsocket/tst_qudpsocket.cpp +++ b/tests/auto/qudpsocket/tst_qudpsocket.cpp @@ -719,6 +719,8 @@ void tst_QUdpSocket::outOfProcessConnectedClientServerTest() QProcess serverProcess; serverProcess.start(QLatin1String("clientserver/clientserver server 1 1"), QIODevice::ReadWrite | QIODevice::Text); + QVERIFY2(serverProcess.waitForStarted(3000), + qPrintable("Failed to start subprocess: " + serverProcess.errorString())); // Wait until the server has started and reports success. while (!serverProcess.canReadLine()) @@ -732,6 +734,9 @@ void tst_QUdpSocket::outOfProcessConnectedClientServerTest() clientProcess.start(QString::fromLatin1("clientserver/clientserver connectedclient %1 %2") .arg(QLatin1String("127.0.0.1")).arg(serverPort), QIODevice::ReadWrite | QIODevice::Text); + QVERIFY2(clientProcess.waitForStarted(3000), + qPrintable("Failed to start subprocess: " + clientProcess.errorString())); + // Wait until the server has started and reports success. while (!clientProcess.canReadLine()) QVERIFY(clientProcess.waitForReadyRead(3000)); @@ -779,6 +784,8 @@ void tst_QUdpSocket::outOfProcessUnconnectedClientServerTest() QProcess serverProcess; serverProcess.start(QLatin1String("clientserver/clientserver server 1 1"), QIODevice::ReadWrite | QIODevice::Text); + QVERIFY2(serverProcess.waitForStarted(3000), + qPrintable("Failed to start subprocess: " + serverProcess.errorString())); // Wait until the server has started and reports success. while (!serverProcess.canReadLine()) @@ -792,6 +799,9 @@ void tst_QUdpSocket::outOfProcessUnconnectedClientServerTest() clientProcess.start(QString::fromLatin1("clientserver/clientserver unconnectedclient %1 %2") .arg(QLatin1String("127.0.0.1")).arg(serverPort), QIODevice::ReadWrite | QIODevice::Text); + QVERIFY2(clientProcess.waitForStarted(3000), + qPrintable("Failed to start subprocess: " + clientProcess.errorString())); + // Wait until the server has started and reports success. while (!clientProcess.canReadLine()) QVERIFY(clientProcess.waitForReadyRead(3000)); diff --git a/tests/auto/qvariant/tst_qvariant.cpp b/tests/auto/qvariant/tst_qvariant.cpp index 9295897..e2a606f 100644 --- a/tests/auto/qvariant/tst_qvariant.cpp +++ b/tests/auto/qvariant/tst_qvariant.cpp @@ -270,6 +270,8 @@ private slots: void task256984_setValue(); void numericalConvert(); + void moreCustomTypes(); + void variantInVariant(); }; Q_DECLARE_METATYPE(QDate) @@ -318,6 +320,14 @@ void tst_QVariant::constructor() QVariant var6(qlonglong(0)); QCOMPARE(var6.type(), QVariant::LongLong); QCOMPARE(var6.typeName(), "qlonglong"); + + QVariant var7 = 5; + QVERIFY(var7.isValid()); + QVERIFY(!var7.isNull()); + QVariant var8; + var8.setValue<int>(5); + QVERIFY(var8.isValid()); + QVERIFY(!var8.isNull()); } void tst_QVariant::copy_constructor() @@ -3127,7 +3137,254 @@ void tst_QVariant::numericalConvert() } +template<class T> void playWithVariant(const T &orig, bool isNull, const QString &toString, double toDouble, bool toBool) +{ + QVariant v = QVariant::fromValue(orig); + QVERIFY(v.isValid()); + QCOMPARE(v.isNull(), isNull); + QCOMPARE(v.toString(), toString); + QCOMPARE(v.toDouble(), toDouble); + QCOMPARE(v.toBool(), toBool); + QCOMPARE(qvariant_cast<T>(v), orig); + + { + QVariant v2 = v; + QCOMPARE(v2, v); + QVERIFY(v2.isValid()); + QCOMPARE(v2.isNull(), isNull); + QCOMPARE(v2.toString(), toString); + QCOMPARE(v2.toDouble(), toDouble); + QCOMPARE(v2.toBool(), toBool); + QCOMPARE(qvariant_cast<T>(v2), orig); + + QVariant v3; + v = QVariant(); + QCOMPARE(v3, v); + v = v2; + QCOMPARE(v, v2); + QCOMPARE(qvariant_cast<T>(v2), qvariant_cast<T>(v)); + QCOMPARE(v2.toString(), toString); + v3 = qVariantFromValue(orig); + + QVERIFY(v3.isValid()); + QCOMPARE(v3.isNull(), isNull); + QCOMPARE(v3.toString(), toString); + QCOMPARE(v3.toDouble(), toDouble); + QCOMPARE(v3.toBool(), toBool); + QCOMPARE(qvariant_cast<T>(v3), qvariant_cast<T>(v)); + } + + QVERIFY(v.isValid()); + QCOMPARE(v.isNull(), isNull); + QCOMPARE(v.toString(), toString); + QCOMPARE(v.toDouble(), toDouble); + QCOMPARE(v.toBool(), toBool); + QCOMPARE(qvariant_cast<T>(v), orig); + + if (qMetaTypeId<T>() != qMetaTypeId<QVariant>()) { + QCOMPARE(v.userType(), qMetaTypeId<T>()); + QCOMPARE(QVariant::typeToName(QVariant::Type(v.userType())), QMetaType::typeName(qMetaTypeId<T>())); + } +} + + +struct MyPrimitive +{ + char x, y; + bool operator==(const MyPrimitive &o) const + { + return x == o.x && y == o.y; + } +}; +Q_DECLARE_TYPEINFO(MyPrimitive, Q_PRIMITIVE_TYPE); + +struct MyData +{ + void *ptr; + MyData() : ptr(this) {} + ~MyData() { Q_ASSERT(ptr == this); } + MyData(const MyData& o) : ptr(this) { Q_ASSERT(o.ptr == &o); } + MyData &operator=(const MyData &o) + { + Q_ASSERT(ptr == this); + Q_ASSERT(o.ptr == &o); + return *this; + } + bool operator==(const MyData &o) const + { + Q_ASSERT(ptr == this); + Q_ASSERT(o.ptr == &o); + return true; + } +}; + +struct MyMovable +{ + static int count; + int v; + MyMovable() { v = count++; } + ~MyMovable() { count--; } + MyMovable(const MyMovable &o) : v(o.v) { count++; } + + bool operator==(const MyMovable &o) const + { + return v == o.v; + } +}; + +int MyMovable::count = 0; + + +Q_DECLARE_TYPEINFO(MyMovable, Q_MOVABLE_TYPE); + +Q_DECLARE_METATYPE(QList<QSize>) +Q_DECLARE_METATYPE(MyPrimitive) +Q_DECLARE_METATYPE(MyData) +Q_DECLARE_METATYPE(MyMovable) +Q_DECLARE_METATYPE(QList<MyPrimitive>) +Q_DECLARE_METATYPE(QList<MyData>) +Q_DECLARE_METATYPE(QList<MyMovable>) +Q_DECLARE_METATYPE(MyPrimitive *) +Q_DECLARE_METATYPE(MyData *) +Q_DECLARE_METATYPE(MyMovable *) +void tst_QVariant::moreCustomTypes() +{ + { + QList<QSize> listSize; + playWithVariant(listSize, false, QString(), 0, false); + listSize << QSize(4,5) << QSize(89,23) << QSize(5,6); + playWithVariant(listSize, false, QString(), 0, false); + } + + { + QString str; + playWithVariant(str, true, QString(), 0, false); + str = QString::fromLatin1("123456789.123"); + playWithVariant(str, false, str, 123456789.123, true); + } + + { + QSize size; + playWithVariant(size, false, QString(), 0, false); + playWithVariant(QSize(45,78), false, QString(), 0, false); + } + + { + MyData d; + playWithVariant(d, false, QString(), 0, false); + playWithVariant(&d, false, QString(), 0, false); + QList<MyData> l; + playWithVariant(l, false, QString(), 0, false); + l << MyData() << MyData(); + playWithVariant(l, false, QString(), 0, false); + } + + { + MyPrimitive d = { 4, 5 }; + playWithVariant(d, false, QString(), 0, false); + playWithVariant(&d, false, QString(), 0, false); + QList<MyPrimitive> l; + playWithVariant(l, false, QString(), 0, false); + l << d; + playWithVariant(l, false, QString(), 0, false); + } + + { + MyMovable d; + playWithVariant(d, false, QString(), 0, false); + playWithVariant(&d, false, QString(), 0, false); + QList<MyMovable> l; + playWithVariant(l, false, QString(), 0, false); + l << MyMovable() << d; + playWithVariant(l, false, QString(), 0, false); + } + QCOMPARE(MyMovable::count, 0); + + { + playWithVariant(12.12, false, "12.12", 12.12, true); + playWithVariant(12.12f, false, "12.12", 12.12f, true); + playWithVariant('a', false, "a", 'a', true); + playWithVariant((unsigned char)('a'), false, "a", 'a', true); + playWithVariant( quint8(12), false, "\xc", 12, true); + playWithVariant( qint8(13), false, "\xd", 13, true); + playWithVariant(quint16(14), false, "14", 14, true); + playWithVariant( qint16(15), false, "15", 15, true); + playWithVariant(quint32(16), false, "16", 16, true); + playWithVariant( qint32(17), false, "17", 17, true); + playWithVariant(quint64(18), false, "18", 18, true); + playWithVariant( qint64(19), false, "19", 19, true); + playWithVariant( qint8(-12), false, "\xf4", -12, true); + playWithVariant( qint16(-13), false, "-13", -13, true); + playWithVariant( qint32(-14), false, "-14", -14, true); + playWithVariant( qint64(-15), false, "-15", -15, true); + playWithVariant(quint64(0), false, "0", 0, false); + playWithVariant( true, false, "true", 1, true); + playWithVariant( false, false, "false", 0, false); + + playWithVariant(QString("hello\n"), false, "hello\n", 0, true); + } + + { + int i = 5; + playWithVariant((void *)(&i), false, QString(), 0, false); + playWithVariant((void *)(0), false, QString(), 0, false); + } + + { + QVariant v1 = QVariant::fromValue(5); + QVariant v2 = QVariant::fromValue(5.0); + QVariant v3 = QVariant::fromValue(quint16(5)); + QVariant v4 = 5; + QVariant v5 = QVariant::fromValue(MyPrimitive()); + QVariant v6 = QVariant::fromValue(MyMovable()); + QVariant v7 = QVariant::fromValue(MyData()); + playWithVariant(v1, false, "5", 5, true); + playWithVariant(v2, false, "5", 5, true); + playWithVariant(v3, false, "5", 5, true); + playWithVariant(v4, false, "5", 5, true); + + playWithVariant(v5, false, QString(), 0, false); + } +} + + +void tst_QVariant::variantInVariant() +{ + QVariant var1 = 5; + QCOMPARE(var1.type(), QVariant::Int); + QVariant var2 = var1; + QCOMPARE(var2, var1); + QCOMPARE(var2.type(), QVariant::Int); + QVariant var3 = QVariant::fromValue(var1); + QCOMPARE(var3, var1); + QCOMPARE(var3.type(), QVariant::Int); + QVariant var4 = qvariant_cast<QVariant>(var1); + QCOMPARE(var4, var1); + QCOMPARE(var4.type(), QVariant::Int); + QVariant var5; + var5 = var1; + QCOMPARE(var5, var1); + QCOMPARE(var5.type(), QVariant::Int); + QVariant var6; + var6.setValue(var1); + QCOMPARE(var6, var1); + QCOMPARE(var6.type(), QVariant::Int); + + QCOMPARE(QVariant::fromValue(var1), QVariant::fromValue(var2)); + QCOMPARE(qvariant_cast<QVariant>(var3), QVariant::fromValue(var4)); + QCOMPARE(qvariant_cast<QVariant>(var5), qvariant_cast<QVariant>(var6)); + + QString str("hello"); + QVariant var8 = qvariant_cast<QVariant>(QVariant::fromValue(QVariant::fromValue(str))); + QCOMPARE((int)var8.type(), (int)QVariant::String); + QCOMPARE(qvariant_cast<QString>(QVariant(qvariant_cast<QVariant>(var8))), str); + + QVariant var9(qMetaTypeId<QVariant>(), &var1); + QCOMPARE(var9.userType(), qMetaTypeId<QVariant>()); + QCOMPARE(qvariant_cast<QVariant>(var9), var1); +} + QTEST_MAIN(tst_QVariant) #include "tst_qvariant.moc" diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp index 5630370..3d801cc 100644 --- a/tests/auto/qwidget/tst_qwidget.cpp +++ b/tests/auto/qwidget/tst_qwidget.cpp @@ -332,6 +332,7 @@ private slots: void doubleRepaint(); #ifndef Q_WS_MAC void resizeInPaintEvent(); + void opaqueChildren(); #endif void setMaskInResizeEvent(); @@ -6319,6 +6320,7 @@ void tst_QWidget::compatibilityChildInsertedEvents() widget.show(); expected = EventRecorder::EventList() + << qMakePair(&widget, QEvent::WinIdChange) << qMakePair(&widget, QEvent::Polish) << qMakePair(&widget, QEvent::Move) << qMakePair(&widget, QEvent::Resize) @@ -6404,6 +6406,7 @@ void tst_QWidget::compatibilityChildInsertedEvents() widget.show(); expected = EventRecorder::EventList() + << qMakePair(&widget, QEvent::WinIdChange) << qMakePair(&widget, QEvent::Polish) #ifdef QT_HAS_QT3SUPPORT << qMakePair(&widget, QEvent::ChildInserted) @@ -6501,6 +6504,7 @@ void tst_QWidget::compatibilityChildInsertedEvents() widget.show(); expected = EventRecorder::EventList() + << qMakePair(&widget, QEvent::WinIdChange) << qMakePair(&widget, QEvent::Polish) #ifdef QT_HAS_QT3SUPPORT << qMakePair(&widget, QEvent::ChildInserted) @@ -8272,6 +8276,47 @@ void tst_QWidget::resizeInPaintEvent() // Make sure the resize triggers another update. QTRY_COMPARE(widget.numPaintEvents, 1); } + +void tst_QWidget::opaqueChildren() +{ + QWidget widget; + widget.resize(200, 200); + + QWidget child(&widget); + child.setGeometry(-700, -700, 200, 200); + + QWidget grandChild(&child); + grandChild.resize(200, 200); + + QWidget greatGrandChild(&grandChild); + greatGrandChild.setGeometry(50, 50, 200, 200); + greatGrandChild.setPalette(Qt::red); + greatGrandChild.setAutoFillBackground(true); // Opaque child widget. + + widget.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&widget); +#endif + QTest::qWait(100); + + // Child, grandChild and greatGrandChild are outside the ancestor clip. + QRegion expectedOpaqueRegion(50, 50, 150, 150); + QCOMPARE(qt_widget_private(&grandChild)->getOpaqueChildren(), expectedOpaqueRegion); + + // Now they are all inside the ancestor clip. + child.setGeometry(50, 50, 150, 150); + QCOMPARE(qt_widget_private(&grandChild)->getOpaqueChildren(), expectedOpaqueRegion); + + // Set mask on greatGrandChild. + const QRegion mask(10, 10, 50, 50); + greatGrandChild.setMask(mask); + expectedOpaqueRegion &= mask.translated(50, 50); + QCOMPARE(qt_widget_private(&grandChild)->getOpaqueChildren(), expectedOpaqueRegion); + + // Make greatGrandChild "transparent". + greatGrandChild.setAutoFillBackground(false); + QCOMPARE(qt_widget_private(&grandChild)->getOpaqueChildren(), QRegion()); +} #endif diff --git a/tests/manual/gestures/graphicsview/main.cpp b/tests/manual/gestures/graphicsview/main.cpp index e9065eb..de92afe 100644 --- a/tests/manual/gestures/graphicsview/main.cpp +++ b/tests/manual/gestures/graphicsview/main.cpp @@ -152,8 +152,8 @@ private: MainWindow::MainWindow() { - (void)qApp->registerGestureRecognizer(new MousePanGestureRecognizer); - ThreeFingerSlideGesture::Type = qApp->registerGestureRecognizer(new ThreeFingerSlideGestureRecognizer); + (void)QApplication::registerGestureRecognizer(new MousePanGestureRecognizer); + ThreeFingerSlideGesture::Type = QApplication::registerGestureRecognizer(new ThreeFingerSlideGestureRecognizer); tabWidget = new QTabWidget; diff --git a/tests/manual/gestures/scrollarea/mousepangesturerecognizer.cpp b/tests/manual/gestures/scrollarea/mousepangesturerecognizer.cpp index 5f94dbc..63d3e76 100644 --- a/tests/manual/gestures/scrollarea/mousepangesturerecognizer.cpp +++ b/tests/manual/gestures/scrollarea/mousepangesturerecognizer.cpp @@ -49,7 +49,7 @@ MousePanGestureRecognizer::MousePanGestureRecognizer() { } -QGesture* MousePanGestureRecognizer::createGesture(QObject *) const +QGesture* MousePanGestureRecognizer::createGesture(QObject *) { return new QPanGesture; } diff --git a/tests/manual/gestures/scrollarea/mousepangesturerecognizer.h b/tests/manual/gestures/scrollarea/mousepangesturerecognizer.h index c92d477..b062fd0 100644 --- a/tests/manual/gestures/scrollarea/mousepangesturerecognizer.h +++ b/tests/manual/gestures/scrollarea/mousepangesturerecognizer.h @@ -49,7 +49,7 @@ class MousePanGestureRecognizer : public QGestureRecognizer public: MousePanGestureRecognizer(); - QGesture* createGesture(QObject *target) const; + QGesture* createGesture(QObject *target); QGestureRecognizer::Result filterEvent(QGesture *state, QObject *watched, QEvent *event); void reset(QGesture *state); }; diff --git a/tests/manual/textrendering/glyphshaping/glyphshaping.pro b/tests/manual/textrendering/glyphshaping/glyphshaping.pro new file mode 100644 index 0000000..caa9028 --- /dev/null +++ b/tests/manual/textrendering/glyphshaping/glyphshaping.pro @@ -0,0 +1,5 @@ +SOURCES = main.cpp +OTHER_FILES = glyphshaping_data.xml +glyphshaping_data.path = . +glyphshaping_data.sources = $$PWD/glyphshaping_data.xml +DEPLOYMENT += glyphshaping_data diff --git a/tests/manual/textrendering/glyphshaping/glyphshaping_data.xml b/tests/manual/textrendering/glyphshaping/glyphshaping_data.xml new file mode 100644 index 0000000..040804e --- /dev/null +++ b/tests/manual/textrendering/glyphshaping/glyphshaping_data.xml @@ -0,0 +1,251 @@ +<?xml version="1.0" encoding="UTF-8"?> +<shapingtests> + + <language name="Vietnamese"> + <test + name="capital U, combining horn" + inpututf16="0x0055, 0x031B" + outpututf16="0x01AF" + /> + <test + name="capital U, apostrophe" + inpututf16="0x0055, 0x0027" + outpututf16="0x0055" + /> + <test + name="capital U, modifier prime" + inpututf16="0x0055, 0x02B9" + outpututf16="0x0055" + /> + <test + name="capital U, modifier apostrophe" + inpututf16="0x0055, 0x02BC" + outpututf16="0x0055" + /> + <test + name="capital U, combining comma above right" + inpututf16="0x0055, 0x0315" + outpututf16="0x0055, 0x0315" + /> + <test + name="capital U, right single quote mark" + inpututf16="0x0055, 0x2019" + outpututf16="0x0055" + /> + <test + name="capital U with horn, space" + inpututf16="0x01AF, 0x0020" + outpututf16="0x01AF" + /> + <test + name="capital E, combining horn" + inpututf16="0x0045, 0x031B" + outpututf16="0x0045, 0x031B" + /> + <test + name="capital A, combining breve, combining acute" + inpututf16="0x0041, 0x0306, 0x0301" + outpututf16="0x1EAE" + /> + <test + name="capital A with breve, combining acute" + inpututf16="0x0102, 0x0301" + outpututf16="0x1EAE" + /> + <test + name="capital A, combining acute, combining breve" + inpututf16="0x0041, 0x0301, 0x0306" + outpututf16="0x0041, 0x0301, 0x0306" + /> + <test + name="capital A, combining dot below, combining breve" + inpututf16="0x0041, 0x0323" + outpututf16="0x0306" + /> + <test + name="capital A with dot below, combining breve" + inpututf16="0x1EA0, 0x0306" + outpututf16="0x1EB6" + /> + <test + name="capital A with breve, combining dot below" + inpututf16="0x0102, 0x0323" + outpututf16="0x0102, 0x0323" + /> + <test + name="capital E, combining circumflex, combining acute" + inpututf16="0x0045, 0x0302, 0x0301" + outpututf16="0x1EBE" + /> + <test + name="capital E with circumflex, combining acute" + inpututf16="0x00CA, 0x0301" + outpututf16="0x1EBE" + /> + <test + name="capital O, combining horn, combining hook above" + inpututf16="0x004F, 0x031B, 0x0309" + outpututf16="0x1EDE" + /> + <test + name="capital O with horn, combining hook above" + inpututf16="0x01A0, 0x0309" + outpututf16="0x1EDE" + /> + </language> + + <language name="Tamil"> + <test + name="Tamil Ka" + inpututf16="0x0B95" + outputglyphids="0x0bf6" + /> + <test + name="Tamil e" + inpututf16="0x0B8E" + outputglyphids="0x0bf0" + /> + <test + name="Latin A" + inpututf16="0x0061" + outpututf16="0x0061" + /> + <test + name="Hindi Ka" + inpututf16="0x0905" + outputglyphids="0x0528" + /> + <test + name="03 - 1: Latin 06" + inpututf16="0x0036" + outputglyphids="0x077A" + /> + <test + name="03 - 2: Tamil 06" + inpututf16="0x0BEC" + outputglyphids="0x0c20" + /> + <test + name="10 1.3.6 - 1: Pa, Virama, Ka, Virama, Tta, -e" + inpututf16="0x0BAA, 0x0BCD, 0x0B95, 0x0BCD, 0x0B9F, 0x0BC7" + outputglyphids="0x0c3a, 0x0c30, 0x0c13, 0x0bfb" + /> + <test + name="10 1.3.6 - 2: Pa, Virama, Ka, AU" + inpututf16="0x0BAA, 0x0BCD, 0x0B95, 0x0BCC" + outputglyphids="0x0c3a, 0x0c12, 0x0bf6, 0x0c19" + /> + <test + name="10 1.3.6 - 3: Ka, Virama, Ssa, OO" + inpututf16="0x0B95, 0x0BCD, 0x0BB7, 0x0BCB" + outputglyphids="0x0c13, 0x0c2f, 0x0c0d" + /> + <test + name="11: Ka, -e" + inpututf16="0x0B95, 0x0BC7" + outputglyphids="0x0c13, 0x0bf6" + /> + <test + name="12 1.3.5.2: Ka, O" + inpututf16="0x0B95, 0x0BCA" + outputglyphids="0x0c12, 0x0bf6, 0x0c0d" + /> + <test + name="13 - 1: Ka" + inpututf16="0x0B95" + outputglyphids="0x0bf6" + /> + <test + name="13 - 2: Aythem, A" + inpututf16="0x0B83, 0x0B85" + /> + <test + name="14 - 1: Ka, Anusvara" + inpututf16="0x0B95, 0x0B82" + outputglyphids="0x0bf6, 0x0be8" + /> + <test + name="14 - 2: Ka" + inpututf16="0x0B95" + outputglyphids="0x0bf6" + /> + <test + name="15 - 1: Ra, Virama" + inpututf16="0x0BB0, 0x0BCD" + outputglyphids="0x0c03" + /> + <test + name="15 - 2: ZWJ" + inpututf16="0x8205" + /> + <test + name="16: Ka, Anusvara" + inpututf16="0x0B95, 0x0B82" + outputglyphids="0x0bf6" + /> + <test + name="17 1.3.11 - 1: Tta, I" + inpututf16="0x0B9F, 0x0BBF" + outputglyphids="0x0c51" + /> + <test + name="17 1.3.11 - 2: Tta, Ii" + inpututf16="0x0B9F, 0x0BC0" + outputglyphids="0x0c52" + /> + <test + name="18 - 1: Ra, I" + inpututf16="0x0BB0, 0x0BBF" + outputglyphids="0x0c0d, 0x0c0e" + /> + <test + name="18 - 2: Ra, Ii" + inpututf16="0x0BB0, 0x0BC0" + outputglyphids="0x0c0d, 0x0c0f" + /> + <test + name="19 - 1: Nga, I" + inpututf16="0x0B99, 0x0BBF" + outputglyphids="0x0bf7, 0x0c0e" + /> + <test + name="19 - 2: Nga, Ii" + inpututf16="0x0B99, 0x0BC0" + outputglyphids="0x0c4a" + /> + <test + name="20 - 1: Ja, U" + inpututf16="0x0B9C, 0x0BC1" + outputglyphids="0x0bf9, 0x0c10" + /> + <test + name="20 - 2: Ja, Uu" + inpututf16="0x0B9C, 0x0BC2" + outputglyphids="0x0bf9, 0x0c11" + /> + <test + name="21 1.3.15: Ka, Ai" + inpututf16="0x0B95, 0x0BC8" + outputglyphids="0x0c14, 0x0bf6" + /> + <test + name="22: Ka, Virama, Ssa" + inpututf16="0x0B95, 0x0BCD, 0x0BB7" + outputglyphids="0x0c2f" + /> + <test + name="23 1.3.17: Sa, Virama, Ra, Matra I" + inpututf16="0x0BB8, 0x0BCD, 0x0BB0, 0x0BC0" + outputglyphids="0x0c79" + /> + <test + name="24 1.3.18 - 1: Ka" + inpututf16="0x0B95" + outputglyphids="0x0bf6" + /> + <test + name="24 1.3.18 - 2: Virama, ZWJ" + inpututf16="0x0BCD, 0x8205" + /> + </language> +</shapingtests> diff --git a/tests/manual/textrendering/glyphshaping/main.cpp b/tests/manual/textrendering/glyphshaping/main.cpp new file mode 100644 index 0000000..d2b53a0 --- /dev/null +++ b/tests/manual/textrendering/glyphshaping/main.cpp @@ -0,0 +1,269 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtGui> + +static const int fontPixelSize = 25; +static const QLatin1String fontFamily("Series 60 Sans"); + +struct testDataSet +{ + QString language; + QString name; + QString input; + QString inputOriginal; + QString output; + QString outputOriginal; + QVector<uint> outputGlyphIDs; + QString outputGlyphIDsOriginal; +}; + +QString charHexCsv2String(const QString &csv) +{ + QString result; + foreach (const QString &charString, csv.split(QLatin1Char(','), QString::SkipEmptyParts)) { + bool isOk; + const uint charUInt = charString.toUInt(&isOk, 16); + Q_ASSERT(isOk); + const int size = charUInt >= SHRT_MAX ? 2:1; + result.append(QString::fromUtf16((const ushort*)&charUInt, size)); + } + return result; +} + +QList<testDataSet> testDataSetList() +{ + QList<testDataSet> result; + QFile file("glyphshaping_data.xml"); + const bool success = file.open(QIODevice::ReadOnly); + Q_ASSERT(success); + + const QLatin1String language("language"); + const QLatin1String test("test"); + const QLatin1String inputUtf16("inpututf16"); + const QLatin1String outputUtf16("outpututf16"); + const QLatin1String outputGlyphIDs("outputglyphids"); + const QLatin1String name("name"); + + QString languageName; + + QXmlStreamReader reader(&file); + while (!reader.atEnd()) { + const QXmlStreamReader::TokenType token = reader.readNext(); + switch (token) { + case QXmlStreamReader::StartElement: + if (reader.name() == language) { + Q_ASSERT(reader.attributes().hasAttribute(name)); + languageName = reader.attributes().value(name).toString(); + } else if (reader.name() == test) { + if (!reader.attributes().hasAttribute(outputUtf16) + && !reader.attributes().hasAttribute(outputGlyphIDs)) + continue; + Q_ASSERT(!languageName.isEmpty()); + Q_ASSERT(reader.attributes().hasAttribute(name)); + Q_ASSERT(reader.attributes().hasAttribute(inputUtf16)); + testDataSet set; + set.language = languageName; + set.name = reader.attributes().value(name).toString(); + set.inputOriginal = reader.attributes().value(inputUtf16).toString(); + set.input = charHexCsv2String(set.inputOriginal); + set.outputOriginal = reader.attributes().value(outputUtf16).toString(); + set.output = charHexCsv2String(set.outputOriginal); + set.outputGlyphIDsOriginal = reader.attributes().value(outputGlyphIDs).toString(); + result.append(set); + } + break; + default: + break; + } + } + return result; +} + +QImage renderedText(const QString &text, const QFont &font) +{ + const QFontMetrics metrics(font); + const QRect boundingRect = metrics.boundingRect(text); + QImage result(boundingRect.size(), QImage::Format_ARGB32); + result.fill(0); + + QPainter p(&result); + p.setFont(font); + p.drawText(boundingRect.translated(-boundingRect.topLeft()), text); + + return result; +} + +QString dumpImageHtml(const QString &text, const QString &pathName) +{ + if (text.isEmpty()) + return QLatin1String("<td/>"); + QFont font(fontFamily); + font.setPixelSize(fontPixelSize); + const QImage textImage = renderedText(text, font); + const QString imageFileName = + (pathName + QDir::separator() + QLatin1String("%1.png")) + .arg(textImage.cacheKey()); + const bool success = textImage.save(imageFileName); + Q_ASSERT(success); + return + QString::fromLatin1("<td title=\"%2\"><img src=\"%1\" alt=\"%2\" width=\"%3\" height=\"%4\"/></td>") + .arg(QDir::cleanPath(imageFileName)).arg(text).arg(textImage.width()).arg(textImage.height()); +} + +QString dlItem(const QString &dt, const QString &dd) +{ + if (!dd.trimmed().isEmpty()) + return QString::fromLatin1("\t\t\t\t\t\t<dt>%1</dt><dd>%2</dd>\n").arg(dt).arg(dd); + return QString(); +} + +bool dumpHtml(const QString &pathName) +{ + QFile htmlPage(pathName + QDir::separator() + QLatin1String("index.html")); + if (!htmlPage.open(QFile::WriteOnly)) + return false; + + QString platformName = QString::fromLatin1( +#if defined(Q_OS_WIN) + "Win32" +#elif defined(Q_WS_X11) + "X11" +#elif defined(Q_OS_SYMBIAN) + "Symbian" +#else + "" +#endif + ); + + QString result = QString::fromLatin1( + "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n" + " \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n\n" + "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n" + "\t<head>\n" + "\t\t<title>Qt on %1 glyph shaping (%2)</title>\n" + "\t\t<meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\" />\n" + "\t\t<style type=\"text/css\" media=\"screen\">\n" + "\t\t\ttable { font-family: Arial; background-color: #ccccff; font-size: 12pt; }\n" + "\t\t\ttd { font-family:\"%2\"; background-color: #eeeeee; font-size: %3px; }\n" + "\t\t\tth { font-weight:normal; }\n" + "\t\t\tdl { font-family: Arial; font-size: 8pt; margin: 3px; }\n" + "\t\t\tdt { font-weight: bold; float: left; }\n" + "\t\t\ttr:hover { background-color: #ddddff; }\n" + "\t\t\ttd:hover { background-color: #ddddff; }\n" + "\t\t</style>\n" + "\t</head>\n" + "\t<body>\n" + "\t\t<h1>Qt on %1 glyph shaping (%2)</h1>\n" + "\t\t<dl>\n" + "\t\t\t<dt>I</dt><dd>Input Utf-16 to shaper</dd>\n" + "\t\t\t<dt>O-Utf</dt><dd>expected output Utf-16</dd>\n" + "\t\t\t<dt>O-ID</dt><dd>expected output Glyph IDs for \"Series 60 Sans\"</dd>\n" + "\t\t</dl>\n" + "\t\t<table>\n" + ).arg(platformName).arg(fontFamily).arg(fontPixelSize); + + QString languageName; + foreach (const testDataSet &dataSet, testDataSetList()) { + if (languageName != dataSet.language) { + result.append(QString::fromLatin1( + "\t\t\t<tr>\n" + "\t\t\t\t<th rowspan=\"2\"><h2>%1</h2></th>\n" + "\t\t\t\t<th colspan=\"2\">Qt/%2</th>\n" + "\t\t\t\t<th rowspan=\"2\">Glyphs</th>\n" + "\t\t\t\t<th colspan=\"2\">Browser</th>\n" + "\t\t\t</tr>\n" + "\t\t\t<tr>\n" + "\t\t\t\t<th>In</th>\n" + "\t\t\t\t<th>Out</th>\n" + "\t\t\t\t<th>In</th>\n" + "\t\t\t\t<th>Out</th>\n" + "\t\t\t</tr>\n" + ).arg(dataSet.language).arg(platformName)); + languageName = dataSet.language; + } + QString glyphsData; + if (!dataSet.inputOriginal.isEmpty()) + glyphsData.append(dlItem(QLatin1String("I"), dataSet.inputOriginal)); + if (!dataSet.outputOriginal.isEmpty()) + glyphsData.append(dlItem(QLatin1String("O-Utf"), dataSet.outputOriginal)); + if (!dataSet.outputGlyphIDsOriginal.isEmpty()) + glyphsData.append(dlItem(QLatin1String("O-ID"), dataSet.outputGlyphIDsOriginal)); + if (!glyphsData.isEmpty()) { + glyphsData.prepend(QLatin1String("\t\t\t\t\t<dl>\n")); + glyphsData.append(QLatin1String("\t\t\t\t\t</dl>\n")); + } + result.append(QString::fromLatin1( + "\t\t\t<tr>\n" + "\t\t\t\t<th>%1</th>\n" + "\t\t\t\t%2\n" + "\t\t\t\t%3\n" + "\t\t\t\t<td>\n" + "%4" + "\t\t\t\t</td>\n" + "\t\t\t\t<td>%5</td>\n" + "\t\t\t\t<td>%6</td>\n" + "\t\t\t</tr>\n" + ).arg(dataSet.name) + .arg(dumpImageHtml(dataSet.input, pathName)) + .arg(dumpImageHtml(dataSet.output, pathName)) + .arg(glyphsData) + .arg(dataSet.input) + .arg(dataSet.output) + ); + } + + result.append(QString::fromLatin1( + "\t\t</table>\n" + "\t</body>\n" + "</html>") + ); + + htmlPage.write(result.toUtf8()); + + return true; +} + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + return dumpHtml(QLatin1String(".")) ? 0 : 1; +} diff --git a/tests/manual/textrendering/textperformance/main.cpp b/tests/manual/textrendering/textperformance/main.cpp new file mode 100644 index 0000000..47e0a88 --- /dev/null +++ b/tests/manual/textrendering/textperformance/main.cpp @@ -0,0 +1,231 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtGui> + +static const int lastMeasurementsCount = 50; + +class FontBlaster: public QWidget +{ + Q_OBJECT + +public: + FontBlaster(QWidget *parent = 0) + : QWidget(parent) + , m_currentMode(0) + { + setFocusPolicy(Qt::StrongFocus); + } + + void paintEvent(QPaintEvent *event) + { + Q_UNUSED(event); + QPainter p(this); + + if (!m_timer.isNull()) + m_lastMeasurements.append(m_timer.elapsed()); + m_timer.start(); + + p.save(); + m_modes[m_currentMode].function(p, size()); + p.restore(); + + const QFontMetrics fm = p.fontMetrics(); + p.setOpacity(0.7); + p.fillRect(0, 0, width(), fm.height(), Qt::gray); + p.fillRect(0, height() - fm.height(), width(), height(), Qt::gray); + p.setOpacity(1); + p.setPen(palette().color(QPalette::Text)); + p.drawText(2, fm.ascent(), m_modes[m_currentMode].name); + + if (m_lastMeasurements.count() == lastMeasurementsCount) { + m_lastMeasurements.removeFirst(); + int lastMsecsSum = 0; + foreach(const int measurement, m_lastMeasurements) + lastMsecsSum += measurement; + + p.drawText(2, height() - fm.descent(), + QLatin1String("Fps: ") + + QString::number(1000 / ((qreal)lastMsecsSum / lastMeasurementsCount), 'f', 1) + ); + } + + QTimer::singleShot(0, this, SLOT(repaint())); + } + + /* + Creating all kinds of size/weight/italic combinations, stress testing + the glyph cache. + Also: painting with different opacities, stress testing blitting. + */ + static void paintDifferentFontStyles(QPainter &p, const QSize &size) + { + static const QString text = QLatin1String("Qt rocks!!!"); + static const int textsPerPaint = 30; + for (int i = 0; i < textsPerPaint; i++) { + const int fontSize = 4 + (qrand() % 5); + const int fontWeight = (qrand() % 2) == 1 ? QFont::Normal : QFont::Bold; + const bool fontItalic = (qrand() % 2) == 1; + const QFont font("Default", fontSize, fontWeight, fontItalic); + p.setFont(font); + p.setPen(QColor::fromHsv(qrand() % 359, 155 + qrand() % 100, + 155 + qrand() % 100, 100 + qrand() % 155)); + const QSize textSize(p.fontMetrics().boundingRect(text).size()); + const QPoint position( + -textSize.width() / 2 + (qrand() % size.width()), + textSize.height() / 2 + (qrand() % size.height())); + p.drawText(position, text); + } + } + + /* + Drawing a multiline latin text, stress testing the text layout system. + */ + static void paintLongLatinText(QPainter &p, const QSize &size) + { + static const char* const pieces[] = { + "lorem ipsum", + "dolor sit amet", + "consectetuer", + "sed diam nonumy", + "eos et accusam", + "sea takimata sanctus" + }; + static const int piecesCount = (int)(sizeof pieces / sizeof pieces[0]); + static const int piecesPerPaint = 30; + + QString text; + for (int i = 0; i < piecesPerPaint; ++i) { + QString piece = QLatin1String(pieces[qrand() % piecesCount]); + if (i == 0 || qrand() % 2) { + // Make this piece the beginning of a new sentence. + piece[0] = piece[0].toUpper(); + if (i > 0) + piece.prepend(QLatin1String(". ")); + } else { + piece.prepend(QLatin1String(", ")); + } + text.append(piece); + } + text.append(QLatin1Char('.')); + + p.drawText(QRectF(QPointF(0, 0), QSizeF(size)), + Qt::AlignTop | Qt::AlignAbsolute | Qt::TextWordWrap, text); + } + + /* + Drawing one text with several snippets of different writingSystems, stress + testing the font merging in the font database. + */ + static void paintInternationalText(QPainter &p, const QSize &size) + { + static QStringList samples; + if (samples.isEmpty()) { + foreach (const QFontDatabase::WritingSystem system, QFontDatabase().writingSystems()) + if (system != QFontDatabase::Ogham && system != QFontDatabase::Runic) + samples.append(QFontDatabase::writingSystemSample(system)); + } + static const int systemsPerPaint = 65; + QString text; + for (int i = 0; i < systemsPerPaint; i++) { + if (i > 0) + text.append(QLatin1Char(' ')); + text.append(samples.at(qrand() % samples.count())); + } + p.drawText(QRectF(QPointF(0, 0), QSizeF(size)), + Qt::AlignTop | Qt::AlignAbsolute | Qt::TextWordWrap, text); + } + +protected: + void nextMode() + { + m_currentMode = (m_currentMode + 1) % m_modesCount; + m_lastMeasurements.clear(); + } + + void keyPressEvent(QKeyEvent *event) + { + Q_UNUSED(event); + nextMode(); + } + + void mousePressEvent(QMouseEvent *event) + { + Q_UNUSED(event); + nextMode(); + } + +private: + static const struct mode { + QString name; + void (*function)(QPainter &, const QSize&); + } m_modes[]; + static const int m_modesCount; + + int m_currentMode; + QList<int> m_lastMeasurements; + QTime m_timer; +}; + +const struct FontBlaster::mode FontBlaster::m_modes[] = { + { QLatin1String("Qt rocks!!!"), FontBlaster::paintDifferentFontStyles }, + { QLatin1String("Latin"), FontBlaster::paintLongLatinText }, + { QLatin1String("International"), FontBlaster::paintInternationalText } +}; + +const int FontBlaster::m_modesCount = + (int)(sizeof m_modes / sizeof m_modes[0]); + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + + FontBlaster dlg; +#ifdef Q_OS_SYMBIAN + dlg.showFullScreen(); +#else + dlg.show(); +#endif + + return a.exec(); +} + +#include "main.moc" diff --git a/tests/manual/textrendering/textperformance/textperformance.pro b/tests/manual/textrendering/textperformance/textperformance.pro new file mode 100644 index 0000000..bba41b9 --- /dev/null +++ b/tests/manual/textrendering/textperformance/textperformance.pro @@ -0,0 +1 @@ +SOURCES = main.cpp diff --git a/tools/assistant/tools/assistant/centralwidget.cpp b/tools/assistant/tools/assistant/centralwidget.cpp index 04739d4..2722b2f 100644 --- a/tools/assistant/tools/assistant/centralwidget.cpp +++ b/tools/assistant/tools/assistant/centralwidget.cpp @@ -230,6 +230,7 @@ CentralWidget::CentralWidget(QHelpEngine *engine, MainWindow *parent) #endif tabWidget = new QTabWidget(this); + tabWidget->setDocumentMode(true); connect(tabWidget, SIGNAL(currentChanged(int)), this, SLOT(currentPageChanged(int))); diff --git a/tools/assistant/translations/translations.pro b/tools/assistant/translations/translations.pro index 6ff1fc9..95501ab 100644 --- a/tools/assistant/translations/translations.pro +++ b/tools/assistant/translations/translations.pro @@ -44,6 +44,7 @@ TR_DIR = $$PWD/../../../translations TRANSLATIONS = \ $$TR_DIR/assistant_da.ts \ $$TR_DIR/assistant_de.ts \ + $$TR_DIR/assistant_fr.ts \ $$TR_DIR/assistant_ja.ts \ $$TR_DIR/assistant_pl.ts \ $$TR_DIR/assistant_ru.ts \ diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index 6d46c18..28645a0 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -1412,7 +1412,6 @@ void Configure::applySpecSpecifics() dictionary[ "WEBKIT" ] = "no"; dictionary[ "PHONON" ] = "yes"; dictionary[ "DIRECTSHOW" ] = "no"; - dictionary[ "LTCG" ] = "yes"; // We only apply MMX/IWMMXT for mkspecs we know they work if (dictionary[ "XQMAKESPEC" ].startsWith("wincewm")) { dictionary[ "MMX" ] = "yes"; @@ -2438,14 +2437,17 @@ void Configure::generateOutputVars() if ( dictionary["OPENGL_ES_CM"] == "yes" ) { qtConfig += "opengles1"; + qtConfig += "egl"; } if ( dictionary["OPENGL_ES_2"] == "yes" ) { qtConfig += "opengles2"; + qtConfig += "egl"; } if ( dictionary["OPENGL_ES_CL"] == "yes" ) { qtConfig += "opengles1cl"; + qtConfig += "egl"; } if ( dictionary["OPENVG"] == "yes" ) { diff --git a/tools/designer/src/lib/shared/qdesigner_tabwidget.cpp b/tools/designer/src/lib/shared/qdesigner_tabwidget.cpp index 2789bd3..f4f3d24 100644 --- a/tools/designer/src/lib/shared/qdesigner_tabwidget.cpp +++ b/tools/designer/src/lib/shared/qdesigner_tabwidget.cpp @@ -399,6 +399,7 @@ static const char *currentTabNameKey = "currentTabName"; static const char *currentTabIconKey = "currentTabIcon"; static const char *currentTabToolTipKey = "currentTabToolTip"; static const char *currentTabWhatsThisKey = "currentTabWhatsThis"; +static const char *tabMovableKey = "movable"; QTabWidgetPropertySheet::QTabWidgetPropertySheet(QTabWidget *object, QObject *parent) : QDesignerPropertySheet(object, parent), @@ -411,6 +412,8 @@ QTabWidgetPropertySheet::QTabWidgetPropertySheet(QTabWidget *object, QObject *pa formWindowBase()->addReloadableProperty(this, indexOf(QLatin1String(currentTabIconKey))); createFakeProperty(QLatin1String(currentTabToolTipKey), qVariantFromValue(qdesigner_internal::PropertySheetStringValue())); createFakeProperty(QLatin1String(currentTabWhatsThisKey), qVariantFromValue(qdesigner_internal::PropertySheetStringValue())); + // Prevent the tab widget's drag and drop handling from interfering with Designer's + createFakeProperty(QLatin1String(tabMovableKey), QVariant(false)); } QTabWidgetPropertySheet::TabWidgetProperty QTabWidgetPropertySheet::tabWidgetPropertyFromName(const QString &name) diff --git a/tools/linguist/linguist/mainwindow.cpp b/tools/linguist/linguist/mainwindow.cpp index 9bc6641..7f09a1c 100644 --- a/tools/linguist/linguist/mainwindow.cpp +++ b/tools/linguist/linguist/mainwindow.cpp @@ -269,6 +269,7 @@ MainWindow::MainWindow() m_editActiveModel(-1), m_statistics(0) { + setUnifiedTitleAndToolBarOnMac(true); m_ui.setupUi(this); #ifndef Q_WS_MAC diff --git a/tools/linguist/phrasebooks/french.qph b/tools/linguist/phrasebooks/french.qph index d38da5a..9440345 100644 --- a/tools/linguist/phrasebooks/french.qph +++ b/tools/linguist/phrasebooks/french.qph @@ -1326,4 +1326,24 @@ <source>Close All Except %1</source> <target>Fermer tout sauf %1</target> </phrase> +<phrase> + <source>Remove</source> + <target>Suppression</target> +</phrase> +<phrase> + <source>About...</source> + <target>À propos…</target> +</phrase> +<phrase> + <source>Minimize</source> + <target>Minimiser</target> +</phrase> +<phrase> + <source>Remove</source> + <target>Supprimer</target> +</phrase> +<phrase> + <source>Select All</source> + <target>Sélectionner tout</target> +</phrase> </QPH> diff --git a/tools/qdoc3/cppcodeparser.cpp b/tools/qdoc3/cppcodeparser.cpp index 84ec3f4..843bec8 100644 --- a/tools/qdoc3/cppcodeparser.cpp +++ b/tools/qdoc3/cppcodeparser.cpp @@ -1759,7 +1759,6 @@ bool CppCodeParser::matchProperty(InnerNode *parent) property->setDesignable(value.toLower() == "true"); else if (key == "RESET") tre->addPropertyFunction(property, value, PropertyNode::Resetter); - else if (key == "NOTIFY") { tre->addPropertyFunction(property, value, PropertyNode::Notifier); } diff --git a/translations/assistant_fr.ts b/translations/assistant_fr.ts new file mode 100644 index 0000000..91fcc1a --- /dev/null +++ b/translations/assistant_fr.ts @@ -0,0 +1,1080 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="fr_FR"> +<context> + <name>AboutDialog</name> + <message> + <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="110"/> + <source>&Close</source> + <translation>&Fermer</translation> + </message> +</context> +<context> + <name>AboutLabel</name> + <message> + <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="96"/> + <source>Warning</source> + <translation>Avertissement</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="97"/> + <source>Unable to launch external application. +</source> + <translation>Impossible d'ouvrir l'application externe. +</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="98"/> + <source>OK</source> + <translation>OK</translation> + </message> +</context> +<context> + <name>BookmarkDialog</name> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui" line="19"/> + <source>Add Bookmark</source> + <translation>Ajouter un signet</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui" line="29"/> + <source>Bookmark:</source> + <translation>Signet :</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui" line="36"/> + <source>Add in Folder:</source> + <translation>Ajouter dans le dossier :</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui" line="65"/> + <source>+</source> + <translation>+</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui" line="93"/> + <source>New Folder</source> + <translation>Nouveau dossier</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="184"/> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="202"/> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="241"/> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="259"/> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="289"/> + <source>Bookmarks</source> + <translation>Signets</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="228"/> + <source>Delete Folder</source> + <translation>Supprimer le dossier</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="229"/> + <source>Rename Folder</source> + <translation>Renommer le dossier</translation> + </message> +</context> +<context> + <name>BookmarkManager</name> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="663"/> + <source>Bookmarks</source> + <translation>Signets</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="700"/> + <source>Remove</source> + <translation>Suppression</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="701"/> + <source>You are going to delete a Folder, this will also<br>remove it's content. Are you sure to continue?</source> + <translation>Vous allez supprimer un dossier, ceci va aussi<br>supprimer son contenu. Voulez-vous continuer?</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="844"/> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="853"/> + <source>New Folder</source> + <translation>Nouveau dossier</translation> + </message> +</context> +<context> + <name>BookmarkWidget</name> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="391"/> + <source>Delete Folder</source> + <translation>Supprimer le dossier</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="392"/> + <source>Rename Folder</source> + <translation>Renommer le dossier</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="394"/> + <source>Show Bookmark</source> + <translation>Afficher le signet</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="395"/> + <source>Show Bookmark in New Tab</source> + <translation>Afficher le signet dans un nouvel onglet</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="398"/> + <source>Delete Bookmark</source> + <translation>Supprimer le signet</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="399"/> + <source>Rename Bookmark</source> + <translation>Renommer le signet</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="437"/> + <source>Filter:</source> + <translation>Filtre :</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="461"/> + <source>Add</source> + <translation>Ajouter</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="470"/> + <source>Remove</source> + <translation>Retirer</translation> + </message> +</context> +<context> + <name>CentralWidget</name> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="238"/> + <source>Add new page</source> + <translation>Créer une nouvelle page</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="247"/> + <source>Close current page</source> + <translation>Fermer la page courante</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="559"/> + <source>Print Document</source> + <translation>Imprimer le document</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="707"/> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="709"/> + <source>unknown</source> + <translation>inconnu</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="802"/> + <source>Add New Page</source> + <translation>Créer une nouvelle page</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="805"/> + <source>Close This Page</source> + <translation>Fermer cette page</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="808"/> + <source>Close Other Pages</source> + <translation>Fermer les autres pages</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="813"/> + <source>Add Bookmark for this Page...</source> + <translation>Ajouter un signet pour cette page...</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="1068"/> + <source>Search</source> + <translation>Recherche</translation> + </message> +</context> +<context> + <name>ContentWindow</name> + <message> + <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="158"/> + <source>Open Link</source> + <translation>Ouvrir le lien</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="159"/> + <source>Open Link in New Tab</source> + <translation>Ouvrir le lien dans un nouvel onglet</translation> + </message> +</context> +<context> + <name>FilterNameDialogClass</name> + <message> + <location filename="../tools/assistant/tools/assistant/filternamedialog.ui" line="13"/> + <source>Add Filter Name</source> + <translation>Ajouter un filtre</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/filternamedialog.ui" line="25"/> + <source>Filter Name:</source> + <translation>Nom du filtre :</translation> + </message> +</context> +<context> + <name>FindWidget</name> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="113"/> + <source>Previous</source> + <translation>Précédent</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="117"/> + <source>Next</source> + <translation>Suivant</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="121"/> + <source>Case Sensitive</source> + <translation>Sensible à la casse</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="124"/> + <source>Whole words</source> + <translation>Mots complets</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="136"/> + <source><img src=":/trolltech/assistant/images/wrap.png">&nbsp;Search wrapped</source> + <translation><img src=":/trolltech/assistant/images/wrap.png">&nbsp;Recherche à partir du début</translation> + </message> +</context> +<context> + <name>FontPanel</name> + <message> + <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="63"/> + <source>Font</source> + <translation>Police</translation> + </message> + <message> + <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="74"/> + <source>&Writing system</source> + <translation>&Système d'écriture</translation> + </message> + <message> + <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="77"/> + <source>&Family</source> + <translation>&Famille</translation> + </message> + <message> + <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="81"/> + <source>&Style</source> + <translation>&Style</translation> + </message> + <message> + <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="85"/> + <source>&Point size</source> + <translation>&Taille en points</translation> + </message> +</context> +<context> + <name>HelpViewer</name> + <message> + <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="284"/> + <source>Open Link in New Tab</source> + <translation>Ouvrir le lien dans un nouvel onglet</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="431"/> + <source><title>Error 404...</title><div align="center"><br><br><h1>The page could not be found</h1><br><h3>'%1'</h3></div></source> + <translation><title>Erreur 404...</title><div align="center"><br><br><h1>La page n'a pas pu être trouvée</h1><br><h3>'%1'</h3></div></translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="492"/> + <source>Help</source> + <translation>Aide</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="493"/> + <source>Unable to launch external application. +</source> + <translation>Impossible de lancer l'application externe. +</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="493"/> + <source>OK</source> + <translation>OK</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="556"/> + <source>Copy &Link Location</source> + <translation>Copier l'&adresse cible</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="559"/> + <source>Open Link in New Tab Ctrl+LMB</source> + <translatorcomment>LMB? ← ouais exactement pareil...</translatorcomment> + <translation>Ouvrir dans un nouvel onglet Ctrl+clic gauche</translation> + </message> +</context> +<context> + <name>IndexWindow</name> + <message> + <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="66"/> + <source>&Look for:</source> + <translation>&Rechercher :</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="134"/> + <source>Open Link</source> + <translation>Ouvrir le lien</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="135"/> + <source>Open Link in New Tab</source> + <translation>Ouvrir le lien dans un nouvel onglet</translation> + </message> +</context> +<context> + <name>InstallDialog</name> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.ui" line="13"/> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="76"/> + <source>Install Documentation</source> + <translation>Installer la documentation</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.ui" line="19"/> + <source>Available Documentation:</source> + <translation>Documentation disponible :</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.ui" line="29"/> + <source>Install</source> + <translation>Installer</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.ui" line="36"/> + <source>Cancel</source> + <translation>Annuler</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.ui" line="43"/> + <source>Close</source> + <translation>Fermer</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.ui" line="63"/> + <source>Installation Path:</source> + <translation>Chemin d'installation :</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.ui" line="73"/> + <source>...</source> + <translation>…</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="106"/> + <source>Downloading documentation info...</source> + <translation>Téléchargement des informations de la documentation…</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="154"/> + <source>Download canceled.</source> + <translation>Téléchargement annulé.</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="180"/> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="258"/> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="285"/> + <source>Done.</source> + <translation>Terminé.</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="195"/> + <source>The file %1 already exists. Do you want to overwrite it?</source> + <translation>Le fichier %1 existe déjà. Voulez-vous l'écraser?</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="206"/> + <source>Unable to save the file %1: %2.</source> + <translation>Impossible de sauver le fichier %1 : %2.</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="214"/> + <source>Downloading %1...</source> + <translation>Téléchargement de %1 en cours…</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="233"/> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="275"/> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="313"/> + <source>Download failed: %1.</source> + <translation>Échec du téléchargement : %1.</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="243"/> + <source>Documentation info file is corrupt!</source> + <translation>Le fichier d'information de documentation est corrompu!</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="280"/> + <source>Download failed: Downloaded file is corrupted.</source> + <translation>Échec du téléchargement : le fichier téléchargé est corrompu.</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="282"/> + <source>Installing documentation %1...</source> + <translation>Installation de la documentation %1…</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="304"/> + <source>Error while installing documentation: +%1</source> + <translation>Erreur durant l'installation de la documentation : +%1</translation> + </message> +</context> +<context> + <name>MainWindow</name> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="110"/> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="501"/> + <source>Index</source> + <translation>Index</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="116"/> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="499"/> + <source>Contents</source> + <translation>Sommaire</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="121"/> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="503"/> + <source>Bookmarks</source> + <translation>Signets</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="133"/> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="348"/> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="860"/> + <source>Qt Assistant</source> + <translation>Qt Assistant</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="316"/> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="321"/> + <source>Unfiltered</source> + <translation>Non-filtré</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="342"/> + <source>Looking for Qt Documentation...</source> + <translation>Recherche la documentation de Qt…</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="426"/> + <source>&File</source> + <translation>&Fichier</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="428"/> + <source>Page Set&up...</source> + <translation>&Mise en page…</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="430"/> + <source>Print Preview...</source> + <translation>Aperçu avant impression…</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="433"/> + <source>&Print...</source> + <translation>&Imprimer…</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="440"/> + <source>New &Tab</source> + <translation>Nouvel ongle&t</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="443"/> + <source>&Close Tab</source> + <translation>&Fermer l'onglet</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="447"/> + <source>&Quit</source> + <translation>&Quitter</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="451"/> + <source>&Edit</source> + <translation>&Édition</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="452"/> + <source>&Copy selected Text</source> + <translation>&Copier le texte selectionné</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="460"/> + <source>&Find in Text...</source> + <translation>&Trouver dans le texte…</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="466"/> + <source>Find &Next</source> + <translation>Rechercher le suiva&nt</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="470"/> + <source>Find &Previous</source> + <translation>Rechercher le &précédent</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="475"/> + <source>Preferences...</source> + <translation>Préférences…</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="478"/> + <source>&View</source> + <translation>&Affichage</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="479"/> + <source>Zoom &in</source> + <translation>Zoom &avant</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="485"/> + <source>Zoom &out</source> + <translation>Zoom a&rrière</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="491"/> + <source>Normal &Size</source> + <translation>&Taille normale</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="495"/> + <source>Ctrl+0</source> + <translation>Ctrl+0</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="500"/> + <source>ALT+C</source> + <translation>ALT+C</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="502"/> + <source>ALT+I</source> + <translation>ALT+I</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="504"/> + <source>ALT+O</source> + <translation>ALT+O</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="505"/> + <source>Search</source> + <translation>Recherche</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="506"/> + <source>ALT+S</source> + <translation>ALT+S</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="508"/> + <source>&Go</source> + <translation>&Aller</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="509"/> + <source>&Home</source> + <translation>&Accueil</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="510"/> + <source>ALT+Home</source> + <translation>ALT+Home</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="513"/> + <source>&Back</source> + <translation>&Précédent</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="518"/> + <source>&Forward</source> + <translation>&Suivant</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="524"/> + <source>Sync with Table of Contents</source> + <translation>Synchroniser la table des matières</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="531"/> + <source>Next Page</source> + <translation>Page suivante</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="532"/> + <source>Ctrl+Alt+Right</source> + <translation>Ctrl+Alt+Right</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="535"/> + <source>Previous Page</source> + <translation>Page précédente</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="536"/> + <source>Ctrl+Alt+Left</source> + <translation>Ctrl+Alt+Left</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="539"/> + <source>&Bookmarks</source> + <translation>&Signets</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="540"/> + <source>Add Bookmark...</source> + <translation>Ajouter un signet…</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="542"/> + <source>CTRL+D</source> + <translation>CTRL+D</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="544"/> + <source>&Help</source> + <translation>&Aide</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="545"/> + <source>About...</source> + <translation>À propos…</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="561"/> + <source>Navigation Toolbar</source> + <translation>Barre d'outils de navigation</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="583"/> + <source>&Window</source> + <translation>&Fenêtre</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="585"/> + <source>Zoom</source> + <translation>Zoom</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="586"/> + <source>Minimize</source> + <translation>Minimiser</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="587"/> + <source>Ctrl+M</source> + <translation>Ctrl+M</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="637"/> + <source>Toolbars</source> + <translation>Barres d'outils</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="652"/> + <source>Filter Toolbar</source> + <translation>Barre d'outils de filtrage</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="654"/> + <source>Filtered by:</source> + <translation>Filtré par :</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="677"/> + <source>Address Toolbar</source> + <translation>Barre d'outils d'adresse</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="681"/> + <source>Address:</source> + <translation>Adresse :</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="795"/> + <source>Could not find the associated content item.</source> + <translatorcomment>what is item in this context? ← same question here</translatorcomment> + <translation>Impossible de trouver l'élément de contenu associé.</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="866"/> + <source>About %1</source> + <translation>À propos de %1</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="980"/> + <source>Updating search index</source> + <translation>Mise à jour de l'index de recherche</translation> + </message> +</context> +<context> + <name>PreferencesDialog</name> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="259"/> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="302"/> + <source>Add Documentation</source> + <translation>Ajouter de la documentation</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="259"/> + <source>Qt Compressed Help Files (*.qch)</source> + <translation>Fichiers d'aide Qt compressés (*.qch)</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="288"/> + <source>The namespace %1 is already registered!</source> + <translation>L'espace de nom %1 existe déjà!</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="296"/> + <source>The specified file is not a valid Qt Help File!</source> + <translation>Le fichier spécifié n'est pas un fichier d'aide Qt valide!</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="319"/> + <source>Remove Documentation</source> + <translation>Supprimer la documentation</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="320"/> + <source>Some documents currently opened in Assistant reference the documentation you are attempting to remove. Removing the documentation will close those documents.</source> + <translation>Certains documents ouverts dans Assistant ont des références vers la documentation que vous allez supprimer. Supprimer la documentation fermera ces documents.</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="322"/> + <source>Cancel</source> + <translation>Annuler</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="323"/> + <source>OK</source> + <translation>OK</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="411"/> + <source>Use custom settings</source> + <translation>Utiliser des paramètres personnalisés</translation> + </message> +</context> +<context> + <name>PreferencesDialogClass</name> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="14"/> + <source>Preferences</source> + <translation>Préférences</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="24"/> + <source>Fonts</source> + <translation>Polices</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="38"/> + <source>Font settings:</source> + <translation>Configuration des polices :</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="46"/> + <source>Browser</source> + <translation>Navigateur</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="51"/> + <source>Application</source> + <translation>Application</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="70"/> + <source>Filters</source> + <translation>Filtres</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="76"/> + <source>Filter:</source> + <translation>Filtre :</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="86"/> + <source>Attributes:</source> + <translation>Attributs :</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="97"/> + <source>1</source> + <translation>1</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="105"/> + <source>Add</source> + <translation>Ajouter</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="112"/> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="163"/> + <source>Remove</source> + <translation>Supprimer</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="120"/> + <source>Documentation</source> + <translation>Documentation</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="126"/> + <source>Registered Documentation:</source> + <translatorcomment>documentation enregistrée ? ← je préfère référencée pour les deux...</translatorcomment> + <translation>Documentation référencée :</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="156"/> + <source>Add...</source> + <translation>Ajouter…</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="188"/> + <source>Options</source> + <translation>Options</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="206"/> + <source>On help start:</source> + <translation>Au démarrage :</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="220"/> + <source>Show my home page</source> + <translation>Afficher ma page d'accueil</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="225"/> + <source>Show a blank page</source> + <translation>Afficher une page blanche</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="230"/> + <source>Show my tabs from last session</source> + <translation>Afficher mes onglets de la dernière session</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="262"/> + <source>Homepage</source> + <translation>Page d'accueil</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="289"/> + <source>Current Page</source> + <translation>Page courante</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="296"/> + <source>Blank Page</source> + <translation>Page blanche</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui" line="303"/> + <source>Restore to default</source> + <translation>Restaurer les valeurs par défaut</translation> + </message> +</context> +<context> + <name>QObject</name> + <message> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="112"/> + <source>The specified collection file does not exist!</source> + <translation>Le fichier de collection spécifié n'existe pas!</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="116"/> + <source>Missing collection file!</source> + <translation>Fichier de collection manquant!</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="125"/> + <source>Invalid URL!</source> + <translation>URL invalide!</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="129"/> + <source>Missing URL!</source> + <translation>URL manquante!</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="146"/> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="165"/> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="184"/> + <source>Unknown widget: %1</source> + <translation>Widget inconnu : %1</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="150"/> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="169"/> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="188"/> + <source>Missing widget!</source> + <translation>Widget manquant!</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="195"/> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="207"/> + <source>The specified Qt help file does not exist!</source> + <translation>Le fichier d'aide Qt spécifié n'existe pas!</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="200"/> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="212"/> + <source>Missing help file!</source> + <translation>Fichier d'aide manquant!</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="219"/> + <source>Missing filter argument!</source> + <translation>Argument de filtre manquant!</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="231"/> + <source>Unknown option: %1</source> + <translation>Option inconnue : %1</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="261"/> + <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="263"/> + <source>Qt Assistant</source> + <translation>Qt Assistant</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/main.cpp" line="217"/> + <source>Could not register documentation file +%1 + +Reason: +%2</source> + <translation>Impossible d'enregistrer le fichier de documentation +%1 + +Raison : +%2</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/main.cpp" line="221"/> + <source>Documentation successfully registered.</source> + <translation>Documentation enregistrée avec succès.</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/main.cpp" line="229"/> + <source>Documentation successfully unregistered.</source> + <translation>Documentation retirée avec succès.</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/main.cpp" line="232"/> + <source>Could not unregister documentation file +%1 + +Reason: +%2</source> + <translation>Impossible d'enregistrer le fichier de documentation +%1 + +Raison : +%2</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/main.cpp" line="269"/> + <source>Cannot load sqlite database driver!</source> + <translation>Impossible de charger le driver de la base de données sqlite!</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/main.cpp" line="278"/> + <source>The specified collection file could not be read!</source> + <translation>Le fichier de collection spécifié ne peut pas être lu!</translation> + </message> +</context> +<context> + <name>RemoteControl</name> + <message> + <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="163"/> + <source>Debugging Remote Control</source> + <translation>Débogage du contrôle à distance</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="164"/> + <source>Received Command: %1 %2</source> + <translation>Commande reçue : %1 %2</translation> + </message> +</context> +<context> + <name>SearchWidget</name> + <message> + <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="195"/> + <source>&Copy</source> + <translation>&Copier</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="199"/> + <source>Copy &Link Location</source> + <translation>Copier &l'adresse du lien</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="203"/> + <source>Open Link in New Tab</source> + <translation>Ouvrir le lien dans un nouvel onglet</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="211"/> + <source>Select All</source> + <translation>Sélectionner tout</translation> + </message> +</context> +<context> + <name>TopicChooser</name> + <message> + <location filename="../tools/assistant/tools/assistant/topicchooser.ui" line="16"/> + <source>Choose Topic</source> + <translation>Choisir le domaine</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/topicchooser.ui" line="37"/> + <source>&Topics</source> + <translation>&Domaines</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/topicchooser.ui" line="88"/> + <source>&Display</source> + <translation>&Afficher</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/topicchooser.ui" line="104"/> + <source>&Close</source> + <translation>&Fermer</translation> + </message> + <message> + <location filename="../tools/assistant/tools/assistant/topicchooser.cpp" line="54"/> + <source>Choose a topic for <b>%1</b>:</source> + <translation>Choisir le domaine pour <b>%1</b> :</translation> + </message> +</context> +</TS> diff --git a/translations/designer_pl.ts b/translations/designer_pl.ts index 0c196d8..f9c6dd0 100644 --- a/translations/designer_pl.ts +++ b/translations/designer_pl.ts @@ -6103,7 +6103,7 @@ Klasa: %2</translation> <message> <location line="+1"/> <source>Change toolTip...</source> - <translation>Zmień tekst chmurki...</translation> + <translation>Zmień podpowiedź...</translation> </message> <message> <location line="+1"/> @@ -6909,7 +6909,7 @@ Klasa: %2</translation> <message> <location line="+263"/> <source>Expand all</source> - <translation>Rozszerz wszystkie</translation> + <translation>Rozwiń wszystkie</translation> </message> <message> <location line="+1"/> diff --git a/translations/linguist_pl.ts b/translations/linguist_pl.ts index b59ebc3..cdff54b 100644 --- a/translations/linguist_pl.ts +++ b/translations/linguist_pl.ts @@ -312,7 +312,7 @@ Przyjmie on uniwersalną formę liczby pojedynczej.</translation> <context> <name>LRelease</name> <message numerus="yes"> - <location filename="../tools/linguist/shared/qm.cpp" line="+747"/> + <location filename="../tools/linguist/shared/qm.cpp" line="+748"/> <source>Dropped %n message(s) which had no ID.</source> <translation> <numerusform>Opuszczono %n wyrażenie które nie miało identyfikatora.</numerusform> diff --git a/translations/qt_help_pl.ts b/translations/qt_help_pl.ts index 0e6bbbf..220f70c 100644 --- a/translations/qt_help_pl.ts +++ b/translations/qt_help_pl.ts @@ -32,33 +32,61 @@ <context> <name>QHelpCollectionHandler</name> <message> - <location filename="../tools/assistant/lib/qhelpcollectionhandler.cpp" line="+79"/> <source>The collection file is not set up yet!</source> - <translation>Plik z kolekcją nie jest jeszcze ustawiony!</translation> + <translation type="obsolete">Plik z kolekcją nie jest jeszcze ustawiony!</translation> </message> <message> - <location line="+22"/> + <location filename="../tools/assistant/lib/qhelpcollectionhandler.cpp" line="+79"/> + <source>The collection file '%1' is not set up yet!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+23"/> <source>Cannot load sqlite database driver!</source> <translation>Nie można załadować sterownika bazy danych sqlite!</translation> </message> <message> <location line="+11"/> - <location line="+48"/> + <location line="+49"/> <source>Cannot open collection file: %1</source> <translation>Nie można otworzyć pliku z kolekcją: %1</translation> </message> <message> - <location line="-39"/> + <location line="-40"/> <source>Cannot create tables in file %1!</source> <translation>Nie można utworzyć tabel w pliku %1!</translation> </message> <message> <location line="+16"/> + <source>The collection file '%1' already exists!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+148"/> + <source>Unknown filter '%1'!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+105"/> + <source>Invalid documentation file '%1'!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+167"/> + <source>Cannot register namespace '%1'!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+24"/> + <source>Cannot open database '%1' to optimize!</source> + <translation type="unfinished"></translation> + </message> + <message> <source>The specified collection file already exists!</source> - <translation>Podany plik z kolekcją już istnieje!</translation> + <translation type="obsolete">Podany plik z kolekcją już istnieje!</translation> </message> <message> - <location line="+5"/> + <location line="-438"/> <source>Cannot create directory: %1</source> <translation>Nie można utworzyć katalogu: %1</translation> </message> @@ -68,12 +96,11 @@ <translation>Nie można skopiować pliku z kolekcją: %1</translation> </message> <message> - <location line="+119"/> <source>Unknown filter!</source> - <translation>Nieznany filtr!</translation> + <translation type="obsolete">Nieznany filtr!</translation> </message> <message> - <location line="+55"/> + <location line="+174"/> <source>Cannot register filter %1!</source> <translation>Nie można zarejestrować pliku %1!</translation> </message> @@ -83,12 +110,11 @@ <translation>Nie można otworzyć pliku z dokumentacją %1!</translation> </message> <message> - <location line="+6"/> <source>Invalid documentation file!</source> - <translation>Niepoprawny plik z dokumentacją!</translation> + <translation type="obsolete">Niepoprawny plik z dokumentacją!</translation> </message> <message> - <location line="+34"/> + <location line="+40"/> <source>The namespace %1 was not registered!</source> <translation>Przestrzeń nazw %1 nie została zarejestrowana!</translation> </message> @@ -98,14 +124,12 @@ <translation>Przestrzeń nazw %1 już istnieje!</translation> </message> <message> - <location line="+13"/> <source>Cannot register namespace!</source> - <translation>Nie można zarejestrować przestrzeni nazw!</translation> + <translation type="obsolete">Nie można zarejestrować przestrzeni nazw!</translation> </message> <message> - <location line="+24"/> <source>Cannot open database to optimize!</source> - <translation>Nie można otworzyć bazy danych do zoptymalizowania!</translation> + <translation type="obsolete">Nie można otworzyć bazy danych do zoptymalizowania!</translation> </message> </context> <context> diff --git a/translations/qt_pl.ts b/translations/qt_pl.ts index 424fd31..f79ecb0 100644 --- a/translations/qt_pl.ts +++ b/translations/qt_pl.ts @@ -12,7 +12,7 @@ <context> <name>FakeReply</name> <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp" line="+2191"/> + <location filename="../src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp" line="+2193"/> <source>Fake error !</source> <translation type="unfinished"></translation> </message> @@ -932,7 +932,7 @@ na <translation>Operacja na gnieździe nieobsługiwana</translation> </message> <message> - <location line="+567"/> + <location line="+580"/> <source>Socket is not connected</source> <translation>Gniazdo nie jest podłączone</translation> </message> @@ -966,6 +966,14 @@ na </message> </context> <context> + <name>QAccessibleButton</name> + <message> + <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+250"/> + <source>Press</source> + <translation type="unfinished">Wciśnij</translation> + </message> +</context> +<context> <name>QApplication</name> <message> <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/> @@ -988,7 +996,7 @@ na <translation>Niekompatybilność biblioteki Qt</translation> </message> <message> - <location filename="../src/gui/kernel/qapplication.cpp" line="+2293"/> + <location filename="../src/gui/kernel/qapplication.cpp" line="+2290"/> <source>QT_LAYOUT_DIRECTION</source> <comment>Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout.</comment> <translation>LTR</translation> @@ -1020,7 +1028,7 @@ na <context> <name>QCheckBox</name> <message> - <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+117"/> + <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="-133"/> <source>Check</source> <translation>Zaznacz</translation> </message> @@ -1276,7 +1284,7 @@ na <context> <name>QDialogButtonBox</name> <message> - <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+654"/> + <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+653"/> <source>Abort</source> <translation>Przerwij</translation> </message> @@ -1472,7 +1480,7 @@ na <translation>Błąd krytyczny:</translation> </message> <message> - <location line="+200"/> + <location line="+201"/> <source>&OK</source> <translation>&OK</translation> </message> @@ -1482,7 +1490,7 @@ na <translation>&Pokaż ten komunikat ponownie</translation> </message> <message> - <location line="-202"/> + <location line="-203"/> <source>Warning:</source> <translation>Ostrzeżenie:</translation> </message> @@ -1851,52 +1859,52 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation> <name>QFontDatabase</name> <message> <location filename="../src/gui/text/qfontdatabase.cpp" line="+102"/> - <location line="+1334"/> + <location line="+1335"/> <source>Normal</source> <translation>Normalny</translation> </message> <message> - <location line="-1331"/> + <location line="-1332"/> <location line="+12"/> - <location line="+1307"/> + <location line="+1308"/> <source>Bold</source> <translation>Pogrubiony</translation> </message> <message> - <location line="-1316"/> - <location line="+1318"/> + <location line="-1317"/> + <location line="+1319"/> <source>Demi Bold</source> <translation>Na wpół pogrubiony</translation> </message> <message> - <location line="-1315"/> + <location line="-1316"/> <location line="+18"/> - <location line="+1293"/> + <location line="+1294"/> <source>Black</source> <translatorcomment>it's about font weight</translatorcomment> <translation>Bardzo gruby</translation> </message> <message> - <location line="-1303"/> + <location line="-1304"/> <source>Demi</source> <translation>Na wpół</translation> </message> <message> <location line="+6"/> - <location line="+1303"/> + <location line="+1304"/> <source>Light</source> <translatorcomment>it's about font weight</translatorcomment> <translation>Cienki</translation> </message> <message> - <location line="-1157"/> - <location line="+1160"/> + <location line="-1158"/> + <location line="+1161"/> <source>Italic</source> <translation>Kursywa</translation> </message> <message> - <location line="-1157"/> - <location line="+1159"/> + <location line="-1158"/> + <location line="+1160"/> <source>Oblique</source> <translation>Pochyły</translation> </message> @@ -2340,7 +2348,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation> <translation>Host %1 znaleziony</translation> </message> <message> - <location filename="../src/network/access/qhttp.cpp" line="+2634"/> + <location filename="../src/network/access/qhttp.cpp" line="+2639"/> <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-4"/> <location filename="../src/qt3support/network/q3http.cpp" line="-453"/> <source>Host %1 not found</source> @@ -2360,7 +2368,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation> <translation>Komenda HTTP zakończona błędem</translation> </message> <message> - <location line="+198"/> + <location line="+219"/> <location line="+48"/> <location filename="../src/qt3support/network/q3http.cpp" line="+109"/> <location line="+47"/> @@ -2374,7 +2382,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation> <translation>Niepoprawny nagłówek odpowiedzi HTTP</translation> </message> <message> - <location line="-319"/> + <location line="-340"/> <location filename="../src/qt3support/network/q3http.cpp" line="-173"/> <source>No server set to connect to</source> <translation>Brak serwera do podłączenia</translation> @@ -2411,7 +2419,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation> <translation>Błędna długość zawartości</translation> </message> <message> - <location line="+183"/> + <location line="+204"/> <source>Unknown authentication method</source> <translation>Nieznana metoda autoryzacji</translation> </message> @@ -2456,7 +2464,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation> <translation>Nawiązanie sesji SSL nie powiodło się</translation> </message> <message> - <location filename="../src/network/access/qhttp.cpp" line="-307"/> + <location filename="../src/network/access/qhttp.cpp" line="-328"/> <source>Connection refused (or timed out)</source> <translation>Połączenie odrzucone (przekroczony czas połączenia)</translation> </message> @@ -3105,7 +3113,7 @@ Proszę o sprawdzenie podanej nazwy pliku.</translation> <context> <name>QMenuBar</name> <message> - <location filename="../src/gui/widgets/qmenu_symbian.cpp" line="+404"/> + <location filename="../src/gui/widgets/qmenu_symbian.cpp" line="+410"/> <source>Actions</source> <translation>Akcje</translation> </message> @@ -4361,7 +4369,7 @@ Proszę wybrać inną nazwę pliku.</translation> <message> <location/> <source>Selection</source> - <translation>Wybór</translation> + <translation>Wybrane strony</translation> </message> <message> <location/> @@ -4449,7 +4457,7 @@ Proszę wybrać inną nazwę pliku.</translation> <message> <location/> <source>Location:</source> - <translation>Lokalizacja:</translation> + <translation>Położenie:</translation> </message> <message> <location/> @@ -4505,7 +4513,7 @@ Proszę wybrać inną nazwę pliku.</translation> <translation>Przekroczony czas operacji procesu</translation> </message> <message> - <location filename="../src/corelib/io/qprocess.cpp" line="+851"/> + <location filename="../src/corelib/io/qprocess.cpp" line="+855"/> <location line="+52"/> <location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/> <location line="+50"/> @@ -4726,7 +4734,7 @@ Proszę wybrać inną nazwę pliku.</translation> <message> <location line="+2"/> <source>Location</source> - <translation>Miejsce</translation> + <translation>Położenie</translation> </message> <message> <location line="+2"/> @@ -4967,7 +4975,7 @@ Proszę wybrać inną nazwę pliku.</translation> <message> <location line="+2"/> <source>Location</source> - <translation>Miejsce</translation> + <translation>Położenie</translation> </message> </context> <context> @@ -5847,7 +5855,7 @@ Proszę wybrać inną nazwę pliku.</translation> <translation>Anuluj</translation> </message> <message> - <location line="+152"/> + <location line="+151"/> <source>Exit</source> <translation>Wyjście</translation> </message> @@ -6071,7 +6079,7 @@ Proszę wybrać inną nazwę pliku.</translation> <context> <name>QTextControl</name> <message> - <location filename="../src/gui/text/qtextcontrol.cpp" line="+2014"/> + <location filename="../src/gui/text/qtextcontrol.cpp" line="+2018"/> <source>&Copy</source> <translation>S&kopiuj</translation> </message> @@ -6114,7 +6122,7 @@ Proszę wybrać inną nazwę pliku.</translation> <context> <name>QToolButton</name> <message> - <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+256"/> + <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+312"/> <location line="+8"/> <source>Open</source> <translation>Otwórz</translation> @@ -6229,7 +6237,7 @@ Proszę wybrać inną nazwę pliku.</translation> <context> <name>QWebFrame</name> <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+704"/> + <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+711"/> <source>Request cancelled</source> <translation>Prośba anulowana</translation> </message> @@ -6262,7 +6270,7 @@ Proszę wybrać inną nazwę pliku.</translation> <context> <name>QWebPage</name> <message> - <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+41"/> + <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+42"/> <source>Submit</source> <comment>default label for Submit buttons in forms on web pages</comment> <translation>Wyślij</translation> @@ -6280,7 +6288,7 @@ Proszę wybrać inną nazwę pliku.</translation> <translation>Wyczyść</translation> </message> <message> - <location line="+15"/> + <location line="+16"/> <source>Choose File</source> <comment>title for file button used in HTML forms</comment> <translation>Wybierz plik</translation> @@ -6766,12 +6774,12 @@ Proszę wybrać inną nazwę pliku.</translation> <translation>Nieznany</translation> </message> <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="+170"/> + <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="+167"/> <source>Web Inspector - %2</source> <translation>Wizytator sieciowy - %2</translation> </message> <message> - <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+416"/> + <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+406"/> <source>Bad HTTP request</source> <translation>Niepoprawna komenda HTTP</translation> </message> @@ -6875,7 +6883,7 @@ Proszę wybrać inną nazwę pliku.</translation> </translation> </message> <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1727"/> + <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1708"/> <source>JavaScript Alert - %1</source> <translation>Ostrzeżenie JavaScript - %1</translation> </message> @@ -7121,7 +7129,7 @@ Proszę wybrać inną nazwę pliku.</translation> <context> <name>QWidget</name> <message> - <location filename="../src/gui/kernel/qwidget.cpp" line="+5652"/> + <location filename="../src/gui/kernel/qwidget.cpp" line="+5672"/> <source>*</source> <translation>*</translation> </message> @@ -9596,32 +9604,32 @@ Proszę wybrać inną nazwę pliku.</translation> <message> <location line="+15"/> <source>Duration content does not match the maxInclusive facet.</source> - <translation>Wartość czasu trwania koliduje z aspektem "maxInclusive".</translation> + <translation>Wartość długości okresu czasu koliduje z aspektem "maxInclusive".</translation> </message> <message> <location line="+9"/> <source>Duration content does not match the maxExclusive facet.</source> - <translation>Wartość czasu trwania koliduje z aspektem "maxExclusive".</translation> + <translation>Wartość długości okresu czasu koliduje z aspektem "maxExclusive".</translation> </message> <message> <location line="+9"/> <source>Duration content does not match the minInclusive facet.</source> - <translation>Wartość czasu trwania koliduje z aspektem "minInclusive".</translation> + <translation>Wartość długości okresu czasu koliduje z aspektem "minInclusive".</translation> </message> <message> <location line="+9"/> <source>Duration content does not match the minExclusive facet.</source> - <translation>Wartość czasu trwania koliduje z aspektem "minExclusive".</translation> + <translation>Wartość długości okresu czasu koliduje z aspektem "minExclusive".</translation> </message> <message> <location line="+18"/> <source>Duration content is not listed in the enumeration facet.</source> - <translation>Wartość czasu trwania nie widnieje na liście aspektu "enumeration".</translation> + <translation>Wartość długości okresu czasu nie widnieje na liście aspektu "enumeration".</translation> </message> <message> <location line="+18"/> <source>Duration content does not match pattern facet.</source> - <translation>Wartość czasu trwania koliduje z aspektem "pattern".</translation> + <translation>Wartość długości okresu czasu koliduje z aspektem "pattern".</translation> </message> <message> <location line="+27"/> diff --git a/translations/qt_sl.ts b/translations/qt_sl.ts index 517ce71..c7684e3 100644 --- a/translations/qt_sl.ts +++ b/translations/qt_sl.ts @@ -12,7 +12,7 @@ <context> <name>FakeReply</name> <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp" line="+2191"/> + <location filename="../src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp" line="+2193"/> <source>Fake error !</source> <translation>Lažna napaka.</translation> </message> @@ -23,14 +23,6 @@ </message> </context> <context> - <name>InputPrivate</name> - <message> - <location filename="../src/multimedia/audio/qaudioinput_alsa_p.cpp" line="+653"/> - <source>PUSH: read in bytes = %1 (frames=%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> <name>Phonon::</name> <message> <location filename="../src/3rdparty/phonon/phonon/phononnamespace.cpp" line="+55"/> @@ -117,10 +109,10 @@ da je nameščen paket libgstreamer-plugins-base.</translation> <translation>Manjka potreben kodek. Za predvajanje te vsebine morate namestiti sledeče kodeke: %0</translation> </message> <message> - <location line="+676"/> + <location line="+681"/> <location line="+8"/> <location line="+15"/> - <location line="+9"/> + <location line="+22"/> <location line="+6"/> <location line="+19"/> <location line="+339"/> @@ -129,12 +121,12 @@ da je nameščen paket libgstreamer-plugins-base.</translation> <translation>Ni moč odpreti večpredstavnostnega vira.</translation> </message> <message> - <location line="-407"/> + <location line="-420"/> <source>Invalid source type.</source> <translation>Neveljavna vrsta vira.</translation> </message> <message> - <location line="+381"/> + <location line="+394"/> <source>Could not locate media source.</source> <translation>Ni moč najti večpredstavnostnega vira.</translation> </message> @@ -150,11 +142,63 @@ da je nameščen paket libgstreamer-plugins-base.</translation> </message> </context> <context> + <name>Phonon::MMF</name> + <message> + <location filename="../src/3rdparty/phonon/mmf/audiooutput.cpp" line="+108"/> + <source>Audio Output</source> + <translation>Predvajanje zvoka</translation> + </message> + <message> + <location line="+1"/> + <source>The audio output device</source> + <translation>Naprava za predvajanje zvoka</translation> + </message> +</context> +<context> <name>Phonon::MMF::AudioEqualizer</name> <message> - <location filename="../src/3rdparty/phonon/mmf/audioequalizer.cpp" line="+70"/> + <location filename="../src/3rdparty/phonon/mmf/audioequalizer.cpp" line="+75"/> <source>Frequency band, %1 Hz</source> - <translation type="unfinished"></translation> + <translation>Frekvenčni pas, %1 Hz</translation> + </message> +</context> +<context> + <name>Phonon::MMF::EffectFactory</name> + <message> + <location filename="../src/3rdparty/phonon/mmf/effectfactory.cpp" line="+65"/> + <source>audio equalizer</source> + <translation>izenačevalnik zvoka</translation> + </message> + <message> + <location line="+2"/> + <source>Bass boost</source> + <translation>Ojačanje basov</translation> + </message> + <message> + <location line="+2"/> + <source>Distance Attenuation</source> + <translation>Utišanje zaradi razdalje</translation> + </message> + <message> + <location line="+2"/> + <location line="+2"/> + <source>Environmental Reverb</source> + <translation>Okoljsko odmevanje</translation> + </message> + <message> + <location line="+2"/> + <source>Loudness</source> + <translation>Glasnost</translation> + </message> + <message> + <location line="+2"/> + <source>Source Orientation</source> + <translation>Usmerjenost vira</translation> + </message> + <message> + <location line="+2"/> + <source>Stereo Widening</source> + <translation>Razširitev sterea</translation> </message> </context> <context> @@ -888,7 +932,7 @@ v <translation>Dejanje na vtičnici ni podprto</translation> </message> <message> - <location line="+187"/> + <location line="+200"/> <source>Socket operation timed out</source> <translation>Čas za dejanje na vtičnici je potekel</translation> </message> @@ -922,6 +966,14 @@ v </message> </context> <context> + <name>QAccessibleButton</name> + <message> + <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+250"/> + <source>Press</source> + <translation>Pritisni</translation> + </message> +</context> +<context> <name>QApplication</name> <message> <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/> @@ -939,7 +991,7 @@ v <translation>Napaka nezdružljivosti knjižnice Qt</translation> </message> <message> - <location filename="../src/gui/kernel/qapplication.cpp" line="+2306"/> + <location filename="../src/gui/kernel/qapplication.cpp" line="+2290"/> <source>QT_LAYOUT_DIRECTION</source> <comment>Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout.</comment> <translation>LTR</translation> @@ -951,117 +1003,6 @@ v </message> </context> <context> - <name>QAudioInputPrivate</name> - <message> - <location filename="../src/multimedia/audio/qaudioinput_alsa_p.cpp" line="-367"/> - <source>QAudioInput: snd_pcm_hw_params_any: err = %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+6"/> - <source>QAudioInput: snd_pcm_hw_params_set_rate_resample: err = %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>QAudioInput: snd_pcm_hw_params_set_access: err = %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>QAudioInput: snd_pcm_hw_params_set_format: err = %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>QAudioInput: snd_pcm_hw_params_set_channels: err = %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>QAudioInput: snd_pcm_hw_params_set_rate_near: err = %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>QAudioInput: snd_pcm_hw_params_set_buffer_time_near: err = %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>QAudioInput: snd_pcm_hw_params_set_period_time_near: err = %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>QAudioInput: snd_pcm_hw_params_set_periods_near: err = %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>QAudioInput: snd_pcm_hw_params: err = %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+98"/> - <source>PULL: read in bytes = %1 (frames=%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>QAudioOutputPrivate</name> - <message> - <location filename="../src/multimedia/audio/qaudiooutput_alsa_p.cpp" line="+307"/> - <source>QAudioOutput: snd_pcm_hw_params_any: err = %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+6"/> - <source>QAudioOutput: snd_pcm_hw_params_set_rate_resample: err = %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>QAudioOutput: snd_pcm_hw_params_set_access: err = %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>QAudioOutput: snd_pcm_hw_params_set_format: err = %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>QAudioOutput: snd_pcm_hw_params_set_channels: err = %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>QAudioOutput: snd_pcm_hw_params_set_rate_near: err = %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>QAudioOutput: snd_pcm_hw_params_set_buffer_time_near: err = %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>QAudioOutput: snd_pcm_hw_params_set_period_time_near: err = %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>QAudioOutput: snd_pcm_hw_params_set_periods_near: err = %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>QAudioOutput: snd_pcm_hw_params: err = %1</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> <name>QAxSelect</name> <message> <location filename="../src/activeqt/container/qaxselect.ui"/> @@ -1087,7 +1028,7 @@ v <context> <name>QCheckBox</name> <message> - <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+114"/> + <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="-136"/> <source>Uncheck</source> <translation>Odznači</translation> </message> @@ -1105,7 +1046,7 @@ v <context> <name>QColorDialog</name> <message> - <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1348"/> + <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1349"/> <source>Hu&e:</source> <translation>&Odtenek:</translation> </message> @@ -1145,7 +1086,7 @@ v <translation>Izberite barvo</translation> </message> <message> - <location line="+178"/> + <location line="+180"/> <source>&Basic colors</source> <translation>&Osnovne barve</translation> </message> @@ -1214,7 +1155,7 @@ v <location line="+4"/> <source>%1: does not exist</source> <comment>QSystemSemaphore</comment> - <translation type="unfinished">%1: ne obstaja</translation> + <translation>%1: ne obstaja</translation> </message> <message> <location line="+5"/> @@ -1345,7 +1286,7 @@ v <message> <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1872"/> <location line="+464"/> - <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+619"/> + <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+606"/> <source>OK</source> <translation>V redu</translation> </message> @@ -1544,7 +1485,7 @@ v <translation>Usodna napaka:</translation> </message> <message> - <location line="+199"/> + <location line="+200"/> <source>&Show this message again</source> <translation>&To sporočilo naslednjič spet prikaži</translation> </message> @@ -1565,7 +1506,7 @@ v <message> <location line="-140"/> <source>Will not rename sequential file using block copy</source> - <translation type="unfinished"></translation> + <translation>Sekvenčna datoteka ne bo preimenovana z uporabo kopiranja blokov</translation> </message> <message> <location line="+23"/> @@ -1596,7 +1537,7 @@ v <context> <name>QFileDialog</name> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+556"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+558"/> <location line="+450"/> <source>All Files (*)</source> <translation>Vse datoteke (*)</translation> @@ -1724,7 +1665,7 @@ Ali jo kljub temu želite izbrisati?</translation> <translation>Ni bilo moč izbrisati mape.</translation> </message> <message> - <location line="+404"/> + <location line="+410"/> <source>Recent Places</source> <translation>Nedavna mesta</translation> </message> @@ -1734,12 +1675,12 @@ Ali jo kljub temu želite izbrisati?</translation> <translation>Vse datoteke (*.*)</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2540"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2546"/> <source>Save As</source> <translation>Shrani kot</translation> </message> <message> - <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+441"/> + <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+461"/> <source>Drive</source> <translation>Pogon</translation> </message> @@ -1918,50 +1859,50 @@ Ali jo kljub temu želite izbrisati?</translation> <name>QFontDatabase</name> <message> <location filename="../src/gui/text/qfontdatabase.cpp" line="+102"/> - <location line="+1330"/> + <location line="+1335"/> <source>Normal</source> <translation>Normalno</translation> </message> <message> - <location line="-1327"/> + <location line="-1332"/> <location line="+12"/> - <location line="+1303"/> + <location line="+1308"/> <source>Bold</source> <translation>Polkrepko</translation> </message> <message> - <location line="-1312"/> - <location line="+1314"/> + <location line="-1317"/> + <location line="+1319"/> <source>Demi Bold</source> <translation type="unfinished"></translation> </message> <message> - <location line="-1311"/> + <location line="-1316"/> <location line="+18"/> - <location line="+1289"/> + <location line="+1294"/> <source>Black</source> <translation type="unfinished">Črni</translation> </message> <message> - <location line="-1299"/> + <location line="-1304"/> <source>Demi</source> <translation type="unfinished"></translation> </message> <message> <location line="+6"/> - <location line="+1299"/> + <location line="+1304"/> <source>Light</source> <translation>Lahko</translation> </message> <message> - <location line="-1153"/> - <location line="+1156"/> + <location line="-1158"/> + <location line="+1161"/> <source>Italic</source> <translation>Ležeče</translation> </message> <message> - <location line="-1153"/> - <location line="+1155"/> + <location line="-1158"/> + <location line="+1160"/> <source>Oblique</source> <translation>Nagnjeno</translation> </message> @@ -2063,32 +2004,32 @@ Ali jo kljub temu želite izbrisati?</translation> <message> <location line="+3"/> <source>Thai</source> - <translation type="unfinished">Tajski</translation> + <translation>Tajska</translation> </message> <message> <location line="+3"/> <source>Lao</source> - <translation type="unfinished">Laoška</translation> + <translation>Laoška</translation> </message> <message> <location line="+3"/> <source>Tibetan</source> - <translation type="unfinished">tibetansko</translation> + <translation>Tibetanska</translation> </message> <message> <location line="+3"/> <source>Myanmar</source> - <translation type="unfinished">Mjanmar</translation> + <translation>Mjanmarska</translation> </message> <message> <location line="+3"/> <source>Georgian</source> - <translation type="unfinished">gruzijsko</translation> + <translation>Gruzijska</translation> </message> <message> <location line="+3"/> <source>Khmer</source> - <translation type="unfinished">Kmersko</translation> + <translation>Kmerska</translation> </message> <message> <location line="+3"/> @@ -2118,7 +2059,7 @@ Ali jo kljub temu želite izbrisati?</translation> <message> <location line="+3"/> <source>Symbol</source> - <translation type="unfinished">Znak</translation> + <translation>Simbol</translation> </message> <message> <location line="+3"/> @@ -2134,7 +2075,7 @@ Ali jo kljub temu želite izbrisati?</translation> <context> <name>QFontDialog</name> <message> - <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+774"/> + <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+776"/> <source>&Font</source> <translation>&Pisava</translation> </message> @@ -2174,7 +2115,7 @@ Ali jo kljub temu želite izbrisati?</translation> <translation>S&istem pisanja</translation> </message> <message> - <location line="-607"/> + <location line="-609"/> <location line="+257"/> <source>Select Font</source> <translation>Izberite pisavo</translation> @@ -2337,13 +2278,9 @@ Ali jo kljub temu želite izbrisati?</translation> <context> <name>QHostInfoAgent</name> <message> - <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+178"/> - <location line="+9"/> - <location line="+80"/> + <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+257"/> <location line="+32"/> - <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+165"/> - <location line="+9"/> - <location line="+56"/> + <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+220"/> <location line="+27"/> <source>Host not found</source> <translation>Ni moč najti gostitelja</translation> @@ -2364,20 +2301,20 @@ Ali jo kljub temu želite izbrisati?</translation> <translation>Neznana napaka</translation> </message> <message> - <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-71"/> + <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-67"/> <source>No host name given</source> - <translation type="unfinished">Podano ni bilo nobeno ime gostitelja</translation> + <translation>Podano ni bilo nobeno ime gostitelja</translation> </message> <message> <location line="+0"/> <source>Invalid hostname</source> - <translation type="unfinished">Neveljavno ime gostitelja</translation> + <translation>Neveljavno ime gostitelja</translation> </message> </context> <context> <name>QHttp</name> <message> - <location filename="../src/network/access/qhttp.cpp" line="+1577"/> + <location filename="../src/network/access/qhttp.cpp" line="+1582"/> <location line="+820"/> <location filename="../src/qt3support/network/q3http.cpp" line="+1159"/> <location line="+567"/> @@ -2409,7 +2346,7 @@ Ali jo kljub temu želite izbrisati?</translation> <translation>Strežnik je nepričakovano prekinil povezavo</translation> </message> <message> - <location line="+179"/> + <location line="+200"/> <source>Unknown authentication method</source> <translation>Neznan način overjanja</translation> </message> @@ -2419,13 +2356,13 @@ Ali jo kljub temu želite izbrisati?</translation> <translation>Napaka pri pisanju odziva na napravo</translation> </message> <message> - <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+560"/> + <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+569"/> <location filename="../src/qt3support/network/q3http.cpp" line="+38"/> <source>Connection refused</source> <translation>Povezava je zavrnjena</translation> </message> <message> - <location filename="../src/network/access/qhttp.cpp" line="-304"/> + <location filename="../src/network/access/qhttp.cpp" line="-325"/> <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-4"/> <location filename="../src/qt3support/network/q3http.cpp" line="+3"/> <source>Host %1 not found</source> @@ -2440,7 +2377,7 @@ Ali jo kljub temu želite izbrisati?</translation> <translation>Zahtevek HTTP ni uspel</translation> </message> <message> - <location line="+73"/> + <location line="+94"/> <location filename="../src/qt3support/network/q3http.cpp" line="+69"/> <source>Invalid HTTP response header</source> <translation>Neveljavna glava odgovora HTTP</translation> @@ -2495,7 +2432,7 @@ Ali jo kljub temu želite izbrisati?</translation> <translation>Potrebna je overitev</translation> </message> <message> - <location line="-138"/> + <location line="-159"/> <source>Connection refused (or timed out)</source> <translation>Povezava je bila zavrnjena (ali pa je potekel čas)</translation> </message> @@ -2694,7 +2631,7 @@ Ali jo kljub temu želite izbrisati?</translation> <context> <name>QIODevice</name> <message> - <location filename="../src/corelib/global/qglobal.cpp" line="+2046"/> + <location filename="../src/corelib/global/qglobal.cpp" line="+2058"/> <source>Permission denied</source> <translation>Nimate dovoljenja</translation> </message> @@ -3174,7 +3111,7 @@ Ali jo kljub temu želite izbrisati?</translation> <context> <name>QMenuBar</name> <message> - <location filename="../src/gui/widgets/qmenu_symbian.cpp" line="+401"/> + <location filename="../src/gui/widgets/qmenu_symbian.cpp" line="+410"/> <source>Actions</source> <translation>Dejanja</translation> </message> @@ -3527,7 +3464,7 @@ Ali jo kljub temu želite izbrisati?</translation> <message> <location line="+59"/> <source>Unable to alloc statement</source> - <translation type="unfinished"></translation> + <translation>Ni moč dodeliti izjave</translation> </message> <message> <location line="+15"/> @@ -3553,7 +3490,7 @@ Ali jo kljub temu želite izbrisati?</translation> <context> <name>QODBCDriver</name> <message> - <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1783"/> + <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1790"/> <source>Unable to connect</source> <translation>Ni moč vzpostaviti povezave</translation> </message> @@ -3586,7 +3523,7 @@ Ali jo kljub temu želite izbrisati?</translation> <context> <name>QODBCResult</name> <message> - <location line="-926"/> + <location line="-932"/> <location line="+346"/> <source>QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration</source> <translation>QODBCResult::reset: ni moč nastaviti 'SQL_CURSOR_STATIC' kot lastnosti izjave. Preverite nastavitve gonilnika ODBC</translation> @@ -3638,7 +3575,7 @@ Ali jo kljub temu želite izbrisati?</translation> <context> <name>QObject</name> <message> - <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="-101"/> + <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="-97"/> <source>Invalid hostname</source> <translation>Neveljavno ime gostitelja</translation> </message> @@ -3668,42 +3605,6 @@ Ali jo kljub temu želite izbrisati?</translation> <source>No host name given</source> <translation>Podano ni bilo nobeno ime gostitelja</translation> </message> - <message> - <location filename="../src/3rdparty/phonon/mmf/effectfactory.cpp" line="+60"/> - <source>audio equalizer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+2"/> - <source>Bass boost</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+2"/> - <source>Distance Attenuation</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+2"/> - <location line="+2"/> - <source>Environmental Reverb</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+2"/> - <source>Loudness</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+2"/> - <source>Source Orientation</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+2"/> - <source>Stereo Widening</source> - <translation type="unfinished"></translation> - </message> </context> <context> <name>QPPDOptionsModel</name> @@ -4050,7 +3951,7 @@ Ali jo kljub temu želite izbrisati?</translation> <translation>US Common #10 Envelope (105 x 241 mm)</translation> </message> <message> - <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+259"/> + <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+266"/> <source>OK</source> <translation>V redu</translation> </message> @@ -4610,7 +4511,7 @@ Izberite drugo ime datoteke.</translation> <translation>Čas za dejanje procesa je potekel</translation> </message> <message> - <location filename="../src/corelib/io/qprocess.cpp" line="+851"/> + <location filename="../src/corelib/io/qprocess.cpp" line="+855"/> <location line="+52"/> <location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/> <location line="+50"/> @@ -4826,32 +4727,32 @@ Izberite drugo ime datoteke.</translation> <message> <location filename="../src/scripttools/debugging/qscriptbreakpointsmodel.cpp" line="+455"/> <source>ID</source> - <translation type="unfinished"></translation> + <translation>ID</translation> </message> <message> <location line="+2"/> <source>Location</source> - <translation type="unfinished"></translation> + <translation>Lokacija</translation> </message> <message> <location line="+2"/> <source>Condition</source> - <translation type="unfinished"></translation> + <translation>Pogoj</translation> </message> <message> <location line="+2"/> <source>Ignore-count</source> - <translation type="unfinished"></translation> + <translation>Število prezrtij</translation> </message> <message> <location line="+2"/> <source>Single-shot</source> - <translation type="unfinished"></translation> + <translation>Enojen zadetek</translation> </message> <message> <location line="+2"/> <source>Hit-count</source> - <translation type="unfinished"></translation> + <translation>Število zadetkov</translation> </message> </context> <context> @@ -4859,12 +4760,12 @@ Izberite drugo ime datoteke.</translation> <message> <location filename="../src/scripttools/debugging/qscriptbreakpointswidget.cpp" line="+298"/> <source>New</source> - <translation type="unfinished"></translation> + <translation>Nova</translation> </message> <message> <location line="+6"/> <source>Delete</source> - <translation type="unfinished">Izbriši</translation> + <translation>Izbriši</translation> </message> </context> <context> @@ -4873,17 +4774,17 @@ Izberite drugo ime datoteke.</translation> <location filename="../src/scripttools/debugging/qscriptdebugger.cpp" line="+885"/> <location line="+1013"/> <source>Go to Line</source> - <translation type="unfinished"></translation> + <translation>Pojdi v vrstico</translation> </message> <message> <location line="-1012"/> <source>Line:</source> - <translation type="unfinished"></translation> + <translation>Vrstica:</translation> </message> <message> <location line="+791"/> <source>Interrupt</source> - <translation type="unfinished"></translation> + <translation>Prekini</translation> </message> <message> <location line="+2"/> @@ -4893,7 +4794,7 @@ Izberite drugo ime datoteke.</translation> <message> <location line="+15"/> <source>Continue</source> - <translation type="unfinished">Nadaljuj</translation> + <translation>Nadaljuj</translation> </message> <message> <location line="+2"/> @@ -4903,7 +4804,7 @@ Izberite drugo ime datoteke.</translation> <message> <location line="+15"/> <source>Step Into</source> - <translation type="unfinished"></translation> + <translation>Vstopi</translation> </message> <message> <location line="+2"/> @@ -4913,7 +4814,7 @@ Izberite drugo ime datoteke.</translation> <message> <location line="+15"/> <source>Step Over</source> - <translation type="unfinished"></translation> + <translation>Prestopi</translation> </message> <message> <location line="+2"/> @@ -4923,7 +4824,7 @@ Izberite drugo ime datoteke.</translation> <message> <location line="+15"/> <source>Step Out</source> - <translation type="unfinished"></translation> + <translation>Izstopi</translation> </message> <message> <location line="+2"/> @@ -4933,7 +4834,7 @@ Izberite drugo ime datoteke.</translation> <message> <location line="+15"/> <source>Run to Cursor</source> - <translation type="unfinished"></translation> + <translation>Zaženi do kazalca</translation> </message> <message> <location line="+2"/> @@ -4943,12 +4844,12 @@ Izberite drugo ime datoteke.</translation> <message> <location line="+16"/> <source>Run to New Script</source> - <translation type="unfinished"></translation> + <translation>Zaženi do novega skripta</translation> </message> <message> <location line="+15"/> <source>Toggle Breakpoint</source> - <translation type="unfinished"></translation> + <translation>Preklopi prekinitveno točko</translation> </message> <message> <location line="+1"/> @@ -4958,22 +4859,22 @@ Izberite drugo ime datoteke.</translation> <message> <location line="+14"/> <source>Clear Debug Output</source> - <translation type="unfinished"></translation> + <translation>Počisti razhroščevalni izhod</translation> </message> <message> <location line="+13"/> <source>Clear Error Log</source> - <translation type="unfinished"></translation> + <translation>Počisti dnevnik napak</translation> </message> <message> <location line="+13"/> <source>Clear Console</source> - <translation type="unfinished"></translation> + <translation>Počisti konzolo</translation> </message> <message> <location line="+14"/> <source>&Find in Script...</source> - <translation type="unfinished"></translation> + <translation>Najdi v &skriptu ...</translation> </message> <message> <location line="+1"/> @@ -4983,7 +4884,7 @@ Izberite drugo ime datoteke.</translation> <message> <location line="+17"/> <source>Find &Next</source> - <translation type="unfinished"></translation> + <translation>Najdi &naslednje</translation> </message> <message> <location line="+2"/> @@ -4993,7 +4894,7 @@ Izberite drugo ime datoteke.</translation> <message> <location line="+13"/> <source>Find &Previous</source> - <translation type="unfinished"></translation> + <translation>Najdi &predhodno</translation> </message> <message> <location line="+2"/> @@ -5008,7 +4909,7 @@ Izberite drugo ime datoteke.</translation> <message> <location line="+11"/> <source>Debug</source> - <translation type="unfinished"></translation> + <translation>Razhrošči</translation> </message> </context> <context> @@ -5016,32 +4917,32 @@ Izberite drugo ime datoteke.</translation> <message> <location filename="../src/scripttools/debugging/qscriptdebuggercodefinderwidget.cpp" line="+141"/> <source>Close</source> - <translation type="unfinished">Zapri</translation> + <translation>Zapri</translation> </message> <message> <location line="+13"/> <source>Previous</source> - <translation type="unfinished"></translation> + <translation>Predhodno</translation> </message> <message> <location line="+7"/> <source>Next</source> - <translation type="unfinished"></translation> + <translation>Naslednje</translation> </message> <message> <location line="+5"/> <source>Case Sensitive</source> - <translation type="unfinished"></translation> + <translation>Občutljivo na velikost črk</translation> </message> <message> <location line="+3"/> <source>Whole words</source> - <translation type="unfinished"></translation> + <translation>Cele besede</translation> </message> <message> <location line="+9"/> <source><img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Search wrapped</source> - <translation type="unfinished"></translation> + <translation><img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Iskanje se nadaljuje na drugem koncu</translation> </message> </context> <context> @@ -5049,12 +4950,12 @@ Izberite drugo ime datoteke.</translation> <message> <location filename="../src/scripttools/debugging/qscriptdebuggerlocalsmodel.cpp" line="+872"/> <source>Name</source> - <translation type="unfinished">Ime</translation> + <translation>Ime</translation> </message> <message> <location line="+2"/> <source>Value</source> - <translation type="unfinished">Vrednost</translation> + <translation>Vrednost</translation> </message> </context> <context> @@ -5062,17 +4963,17 @@ Izberite drugo ime datoteke.</translation> <message> <location filename="../src/scripttools/debugging/qscriptdebuggerstackmodel.cpp" line="+161"/> <source>Level</source> - <translation type="unfinished"></translation> + <translation>Stopnja</translation> </message> <message> <location line="+2"/> <source>Name</source> - <translation type="unfinished">Ime</translation> + <translation>Ime</translation> </message> <message> <location line="+2"/> <source>Location</source> - <translation type="unfinished"></translation> + <translation>Lokacija</translation> </message> </context> <context> @@ -5080,22 +4981,22 @@ Izberite drugo ime datoteke.</translation> <message> <location filename="../src/scripttools/debugging/qscriptedit.cpp" line="+411"/> <source>Toggle Breakpoint</source> - <translation type="unfinished"></translation> + <translation>Preklopi prekinitveno točko</translation> </message> <message> <location line="+2"/> <source>Disable Breakpoint</source> - <translation type="unfinished"></translation> + <translation>Onemogoči prekinitveno točko</translation> </message> <message> <location line="+1"/> <source>Enable Breakpoint</source> - <translation type="unfinished"></translation> + <translation>Omogoči prekinitveno točko</translation> </message> <message> <location line="+4"/> <source>Breakpoint Condition:</source> - <translation type="unfinished"></translation> + <translation>Pogoj za prelomno točko:</translation> </message> </context> <context> @@ -5103,52 +5004,52 @@ Izberite drugo ime datoteke.</translation> <message> <location filename="../src/scripttools/debugging/qscriptenginedebugger.cpp" line="+523"/> <source>Loaded Scripts</source> - <translation type="unfinished"></translation> + <translation>Naloženi skripti</translation> </message> <message> <location line="+6"/> <source>Breakpoints</source> - <translation type="unfinished"></translation> + <translation>Prelomne točke</translation> </message> <message> <location line="+6"/> <source>Stack</source> - <translation type="unfinished"></translation> + <translation>Sklad</translation> </message> <message> <location line="+6"/> <source>Locals</source> - <translation type="unfinished"></translation> + <translation>Krajevno</translation> </message> <message> <location line="+6"/> <source>Console</source> - <translation type="unfinished"></translation> + <translation>Konzola</translation> </message> <message> <location line="+6"/> <source>Debug Output</source> - <translation type="unfinished"></translation> + <translation>Razhroščevalni izhod</translation> </message> <message> <location line="+6"/> <source>Error Log</source> - <translation type="unfinished"></translation> + <translation>Dnevnik napak</translation> </message> <message> <location line="+12"/> <source>Search</source> - <translation type="unfinished">Išči</translation> + <translation>Išči</translation> </message> <message> <location line="+7"/> <source>View</source> - <translation type="unfinished"></translation> + <translation>Videz</translation> </message> <message> <location line="+18"/> <source>Qt Script Debugger</source> - <translation type="unfinished"></translation> + <translation>Razhroščevalnik za Qt Script</translation> </message> </context> <context> @@ -5156,7 +5057,7 @@ Izberite drugo ime datoteke.</translation> <message> <location filename="../src/scripttools/debugging/qscriptbreakpointswidget.cpp" line="-223"/> <source>Close</source> - <translation type="unfinished">Zapri</translation> + <translation>Zapri</translation> </message> </context> <context> @@ -5521,7 +5422,7 @@ Izberite drugo ime datoteke.</translation> <message> <location line="+1"/> <source>Bass Boost</source> - <translation type="unfinished"></translation> + <translation>Ojačanje basov</translation> </message> <message> <location line="+1"/> @@ -5536,12 +5437,12 @@ Izberite drugo ime datoteke.</translation> <message> <location line="+1"/> <source>Treble Up</source> - <translation type="unfinished"></translation> + <translation>Več visokih tonov</translation> </message> <message> <location line="+1"/> <source>Treble Down</source> - <translation type="unfinished"></translation> + <translation>Manj visokih tonov</translation> </message> <message> <location line="+1"/> @@ -5736,7 +5637,7 @@ Izberite drugo ime datoteke.</translation> <message> <location line="+4"/> <source>Select</source> - <translation type="unfinished">Izberi</translation> + <translation>Izberi</translation> </message> <message> <location line="+1"/> @@ -5771,17 +5672,17 @@ Izberite drugo ime datoteke.</translation> <message> <location line="+1"/> <source>Call</source> - <translation type="unfinished">Pokliči</translation> + <translation>Pokliči</translation> </message> <message> <location line="+1"/> <source>Hangup</source> - <translation type="unfinished">Odloži</translation> + <translation>Odloži</translation> </message> <message> <location line="+1"/> <source>Flip</source> - <translation type="unfinished">Obrni</translation> + <translation>Obrni</translation> </message> <message> <location line="+561"/> @@ -5954,7 +5855,7 @@ Izberite drugo ime datoteke.</translation> <message> <location line="+151"/> <source>Exit</source> - <translation type="unfinished">Končaj</translation> + <translation>Končaj</translation> </message> </context> <context> @@ -6176,7 +6077,7 @@ Izberite drugo ime datoteke.</translation> <context> <name>QTextControl</name> <message> - <location filename="../src/gui/text/qtextcontrol.cpp" line="+2001"/> + <location filename="../src/gui/text/qtextcontrol.cpp" line="+2007"/> <source>&Undo</source> <translation>&Razveljavi</translation> </message> @@ -6219,7 +6120,7 @@ Izberite drugo ime datoteke.</translation> <context> <name>QToolButton</name> <message> - <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+254"/> + <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+310"/> <location line="+6"/> <source>Press</source> <translation>Pritisni</translation> @@ -6334,12 +6235,12 @@ Izberite drugo ime datoteke.</translation> <context> <name>QWebFrame</name> <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+706"/> + <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+711"/> <source>Request cancelled</source> <translation>Zahtevek je bil preklican</translation> </message> <message> - <location line="+17"/> + <location line="+19"/> <source>Request blocked</source> <translation>Zahtevek je bil blokiran</translation> </message> @@ -6367,12 +6268,12 @@ Izberite drugo ime datoteke.</translation> <context> <name>QWebPage</name> <message> - <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+403"/> + <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+406"/> <source>Bad HTTP request</source> <translation>Napačen zahtevek HTTP</translation> </message> <message> - <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+41"/> + <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+42"/> <source>Submit</source> <comment>default label for Submit buttons in forms on web pages</comment> <translation>Pošlji</translation> @@ -6390,7 +6291,7 @@ Izberite drugo ime datoteke.</translation> <translation>Ponastavi</translation> </message> <message> - <location line="+10"/> + <location line="+11"/> <source>This is a searchable index. Enter search keywords: </source> <comment>text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index'</comment> <translation>To je stvarno kazalo z iskanjem. Vnesite iskane besede: </translation> @@ -6777,7 +6678,7 @@ Izberite drugo ime datoteke.</translation> <location line="+2"/> <source>Movie time scrubber</source> <comment>Media controller element</comment> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location line="+2"/> @@ -6805,7 +6706,7 @@ Izberite drugo ime datoteke.</translation> </message> <message> <location line="+2"/> - <source>Remaining move time</source> + <source>Remaining movie time</source> <comment>Media controller element</comment> <translation>Preostali čas filma</translation> </message> @@ -6900,7 +6801,7 @@ Izberite drugo ime datoteke.</translation> <translation>%1 (%2×%3 pik)</translation> </message> <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="+170"/> + <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="+167"/> <source>Web Inspector - %2</source> <translation>Web Inspector - %2</translation> </message> @@ -6974,24 +6875,24 @@ Izberite drugo ime datoteke.</translation> <source>%n file(s)</source> <comment>number of chosen file</comment> <translation> - <numerusform>%n datotek</numerusform> - <numerusform>%n datotek</numerusform> - <numerusform>%n datotek</numerusform> + <numerusform>%n datoteka</numerusform> + <numerusform>%n datoteki</numerusform> + <numerusform>%n datoteke</numerusform> <numerusform>%n datotek</numerusform> </translation> </message> <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1601"/> + <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1708"/> <source>JavaScript Alert - %1</source> <translation>Opozorilo JavaScript - %1</translation> </message> <message> - <location line="+15"/> + <location line="+16"/> <source>JavaScript Confirm - %1</source> <translation>Potrditev JavaScript - %1</translation> </message> <message> - <location line="+17"/> + <location line="+18"/> <source>JavaScript Prompt - %1</source> <translation>Poziv JavaScript - %1</translation> </message> @@ -7006,7 +6907,7 @@ Izberite drugo ime datoteke.</translation> <translation>Kot kaže ima skript na tej strani težavo. Ali želite ustaviti skript?</translation> </message> <message> - <location line="+381"/> + <location line="+383"/> <source>Move the cursor to the next character</source> <translation>Premakni kazalec na naslednji znak</translation> </message> @@ -7215,6 +7116,12 @@ Izberite drugo ime datoteke.</translation> <source>Align Right</source> <translation>Poravnaj desno</translation> </message> + <message> + <location filename="Obsolete_PO_entries"/> + <source>Remaining move time</source> + <comment>Media controller element</comment> + <translation type="obsolete">Preostali čas filma</translation> + </message> </context> <context> <name>QWhatsThisAction</name> @@ -7227,7 +7134,7 @@ Izberite drugo ime datoteke.</translation> <context> <name>QWidget</name> <message> - <location filename="../src/gui/kernel/qwidget.cpp" line="+5655"/> + <location filename="../src/gui/kernel/qwidget.cpp" line="+5672"/> <source>*</source> <translation>*</translation> </message> @@ -7902,20 +7809,20 @@ Izberite drugo ime datoteke.</translation> <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+77"/> <source>%1 takes at most %n argument(s). %2 is therefore invalid.</source> <translation> + <numerusform>%1 potrebuje največ %n argument. %2 zato ni veljavno.</numerusform> + <numerusform>%1 potrebuje največ %n argumenta. %2 zato ni veljavno.</numerusform> + <numerusform>%1 potrebuje največ %n argumente. %2 zato ni veljavno.</numerusform> <numerusform>%1 potrebuje največ %n argumentov. %2 zato ni veljavno.</numerusform> - <numerusform></numerusform> - <numerusform></numerusform> - <numerusform></numerusform> </translation> </message> <message numerus="yes"> <location line="+11"/> <source>%1 requires at least %n argument(s). %2 is therefore invalid.</source> <translation> + <numerusform>%1 potrebuje najmanj %n argument. %2 zato ni veljavno.</numerusform> + <numerusform>%1 potrebuje najmanj %n argumenta. %2 zato ni veljavno.</numerusform> + <numerusform>%1 potrebuje najmanj %n argumente. %2 zato ni veljavno.</numerusform> <numerusform>%1 potrebuje najmanj %n argumentov. %2 zato ni veljavno.</numerusform> - <numerusform></numerusform> - <numerusform></numerusform> - <numerusform></numerusform> </translation> </message> <message> @@ -8613,277 +8520,207 @@ Izberite drugo ime datoteke.</translation> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/xmlpatterns/schema/qxsdparticlechecker.cpp" line="+165"/> - <source>empty particle cannot be derived from non-empty particle</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+15"/> - <source>derived particle is missing element %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>derived element %1 is missing value constraint as defined in base particle</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+5"/> - <source>derived element %1 has weaker value constraint than base particle</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>fixed value constraint of element %1 differs from value constraint in base particle</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>derived element %1 cannot be nillable as base element is not nillable</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+10"/> - <source>block constraints of derived element %1 must not be more weaker than in the base element</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+11"/> - <source>simple type of derived element %1 cannot be validly derived from base element</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+5"/> - <source>complex type of derived element %1 cannot be validly derived from base element</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+24"/> - <source>element %1 is missing in derived particle</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+18"/> - <source>element %1 does not match namespace constraint of wildcard in base particle</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+11"/> - <source>wildcard in derived particle is not a valid subset of wildcard in base particle</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+5"/> - <source>processContent of wildcard in derived particle is weaker than wildcard in base particle</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+240"/> - <source>derived particle allows content that is not allowed in the base particle</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../src/xmlpatterns/schema/qxsdschemachecker.cpp" line="+227"/> - <source>%1 has inheritance loop in its base type %2</source> + <source>%1 has inheritance loop in its base type %2.</source> <translation type="unfinished"></translation> </message> <message> <location line="+5"/> <location line="+24"/> - <source>circular inheritance of base type %1</source> + <source>Circular inheritance of base type %1.</source> <translation type="unfinished"></translation> </message> <message> <location line="+11"/> - <source>circular inheritance of union %1</source> + <source>Circular inheritance of union %1.</source> <translation type="unfinished"></translation> </message> <message> <location line="+25"/> - <source>%1 is not allowed to derive from %2 by restriction as the latter defines it as final</source> + <source>%1 is not allowed to derive from %2 by restriction as the latter defines it as final.</source> <translation type="unfinished"></translation> </message> <message> <location line="+5"/> - <source>%1 is not allowed to derive from %2 by extension as the latter defines it as final</source> + <source>%1 is not allowed to derive from %2 by extension as the latter defines it as final.</source> <translation type="unfinished"></translation> </message> <message> <location line="+31"/> - <source>base type of simple type %1 cannot be complex type %2</source> + <source>Base type of simple type %1 cannot be complex type %2.</source> <translation type="unfinished"></translation> </message> <message> <location line="+9"/> - <source>simple type %1 cannot have direct base type %2</source> + <source>Simple type %1 cannot have direct base type %2.</source> <translation type="unfinished"></translation> </message> <message> <location line="+33"/> <location line="+9"/> - <source>simple type %1 is not allowed to have base type %2</source> + <source>Simple type %1 is not allowed to have base type %2.</source> <translation type="unfinished"></translation> </message> <message> <location line="+12"/> - <source>simple type %1 can only have simple atomic type as base type</source> + <source>Simple type %1 can only have simple atomic type as base type.</source> <translation type="unfinished"></translation> </message> <message> <location line="+6"/> - <source>simple type %1 cannot derive from %2 as the latter defines restriction as final</source> + <source>Simple type %1 cannot derive from %2 as the latter defines restriction as final.</source> <translation type="unfinished"></translation> </message> <message> <location line="+13"/> <location line="+484"/> - <source>variety of item type of %1 must be either atomic or union</source> + <source>Variety of item type of %1 must be either atomic or union.</source> <translation type="unfinished"></translation> </message> <message> <location line="-474"/> <location line="+483"/> - <source>variety of member types of %1 must be atomic</source> + <source>Variety of member types of %1 must be atomic.</source> <translation type="unfinished"></translation> </message> <message> <location line="-470"/> <location line="+451"/> - <source>%1 is not allowed to derive from %2 by list as the latter defines it as final</source> + <source>%1 is not allowed to derive from %2 by list as the latter defines it as final.</source> <translation type="unfinished"></translation> </message> <message> <location line="-431"/> - <source>simple type %1 is only allowed to have %2 facet</source> + <source>Simple type %1 is only allowed to have %2 facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+10"/> - <source>base type of simple type %1 must have variety of type list</source> + <source>Base type of simple type %1 must have variety of type list.</source> <translation type="unfinished"></translation> </message> <message> <location line="+6"/> - <source>base type of simple type %1 has defined derivation by restriction as final</source> + <source>Base type of simple type %1 has defined derivation by restriction as final.</source> <translation type="unfinished"></translation> </message> <message> <location line="+6"/> - <source>item type of base type does not match item type of %1</source> + <source>Item type of base type does not match item type of %1.</source> <translation type="unfinished"></translation> </message> <message> <location line="+26"/> <location line="+93"/> - <source>simple type %1 contains not allowed facet type %2</source> + <source>Simple type %1 contains not allowed facet type %2.</source> <translation type="unfinished"></translation> </message> <message> <location line="-72"/> <location line="+413"/> - <source>%1 is not allowed to derive from %2 by union as the latter defines it as final</source> + <source>%1 is not allowed to derive from %2 by union as the latter defines it as final.</source> <translation type="unfinished"></translation> </message> <message> <location line="-404"/> - <source>%1 is not allowed to have any facets</source> + <source>%1 is not allowed to have any facets.</source> <translation type="unfinished"></translation> </message> <message> <location line="+8"/> - <source>base type %1 of simple type %2 must have variety of union</source> + <source>Base type %1 of simple type %2 must have variety of union.</source> <translation type="unfinished"></translation> </message> <message> <location line="+9"/> - <source>base type %1 of simple type %2 is not allowed to have restriction in %3 attribute</source> + <source>Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute.</source> <translation type="unfinished"></translation> </message> <message> <location line="+18"/> - <source>member type %1 cannot be derived from member type %2 of %3's base type %4</source> + <source>Member type %1 cannot be derived from member type %2 of %3's base type %4.</source> <translation type="unfinished"></translation> </message> <message> <location line="+65"/> - <source>derivation method of %1 must be extension because the base type %2 is a simple type</source> + <source>Derivation method of %1 must be extension because the base type %2 is a simple type.</source> <translation type="unfinished"></translation> </message> <message> <location line="+30"/> - <source>complex type %1 has duplicated element %2 in its content model</source> + <source>Complex type %1 has duplicated element %2 in its content model.</source> <translation type="unfinished"></translation> </message> <message> <location line="+8"/> - <source>complex type %1 has non-deterministic content</source> + <source>Complex type %1 has non-deterministic content.</source> <translation type="unfinished"></translation> </message> <message> <location line="+21"/> - <source>attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3</source> + <source>Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3.</source> <translation type="unfinished"></translation> </message> <message> <location line="+37"/> - <source>content model of complex type %1 is not a valid extension of content model of %2</source> + <source>Content model of complex type %1 is not a valid extension of content model of %2.</source> <translation type="unfinished"></translation> </message> <message> <location line="+10"/> - <source>complex type %1 must have simple content</source> + <source>Complex type %1 must have simple content.</source> <translation type="unfinished"></translation> </message> <message> <location line="+7"/> - <source>complex type %1 must have the same simple type as its base class %2</source> + <source>Complex type %1 must have the same simple type as its base class %2.</source> <translation type="unfinished"></translation> </message> <message> <location line="+67"/> - <source>complex type %1 cannot be derived from base type %2%3</source> + <source>Complex type %1 cannot be derived from base type %2%3.</source> <translation type="unfinished"></translation> </message> <message> <location line="+14"/> - <source>attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3</source> + <source>Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3.</source> <translation type="unfinished"></translation> </message> <message> <location line="+14"/> - <source>complex type %1 with simple content cannot be derived from complex base type %2</source> + <source>Complex type %1 with simple content cannot be derived from complex base type %2.</source> <translation type="unfinished"></translation> </message> <message> <location line="+35"/> - <source>item type of simple type %1 cannot be a complex type</source> + <source>Item type of simple type %1 cannot be a complex type.</source> <translation type="unfinished"></translation> </message> <message> <location line="+44"/> - <source>member type of simple type %1 cannot be a complex type</source> + <source>Member type of simple type %1 cannot be a complex type.</source> <translation type="unfinished"></translation> </message> <message> <location line="+8"/> - <source>%1 is not allowed to have a member type with the same name as itself</source> + <source>%1 is not allowed to have a member type with the same name as itself.</source> <translation type="unfinished"></translation> </message> <message> <location line="+83"/> <location line="+29"/> <location line="+34"/> - <source>%1 facet collides with %2 facet</source> + <source>%1 facet collides with %2 facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="-20"/> - <source>%1 facet must have the same value as %2 facet of base type</source> + <source>%1 facet must have the same value as %2 facet of base type.</source> <translation type="unfinished"></translation> </message> <message> <location line="+37"/> - <source>%1 facet must be equal or greater than %2 facet of base type</source> + <source>%1 facet must be equal or greater than %2 facet of base type.</source> <translation type="unfinished"></translation> </message> <message> @@ -8895,7 +8732,7 @@ Izberite drugo ime datoteke.</translation> <location line="+58"/> <location line="+34"/> <location line="+35"/> - <source>%1 facet must be less than or equal to %2 facet of base type</source> + <source>%1 facet must be less than or equal to %2 facet of base type.</source> <translation type="unfinished"></translation> </message> <message> @@ -8905,225 +8742,225 @@ Izberite drugo ime datoteke.</translation> </message> <message> <location line="+15"/> - <source>unknown notation %1 used in %2 facet</source> + <source>Unknown notation %1 used in %2 facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+20"/> - <source>%1 facet contains invalid value %2: %3</source> + <source>%1 facet contains invalid value %2: %3.</source> <translation type="unfinished"></translation> </message> <message> <location line="+22"/> - <source>%1 facet cannot be %2 or %3 if %4 facet of base type is %5</source> + <source>%1 facet cannot be %2 or %3 if %4 facet of base type is %5.</source> <translation type="unfinished"></translation> </message> <message> <location line="+11"/> - <source>%1 facet cannot be %2 if %3 facet of base type is %4</source> + <source>%1 facet cannot be %2 if %3 facet of base type is %4.</source> <translation type="unfinished"></translation> </message> <message> <location line="+20"/> <location line="+55"/> <location line="+230"/> - <source>%1 facet must be less than or equal to %2 facet</source> + <source>%1 facet must be less than or equal to %2 facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="-257"/> <location line="+134"/> <location line="+82"/> - <source>%1 facet must be less than %2 facet of base type</source> + <source>%1 facet must be less than %2 facet of base type.</source> <translation type="unfinished"></translation> </message> <message> <location line="-201"/> <location line="+79"/> - <source>%1 facet and %2 facet cannot appear together</source> + <source>%1 facet and %2 facet cannot appear together.</source> <translation type="unfinished"></translation> </message> <message> <location line="-27"/> <location line="+12"/> <location line="+113"/> - <source>%1 facet must be greater than %2 facet of base type</source> + <source>%1 facet must be greater than %2 facet of base type.</source> <translation type="unfinished"></translation> </message> <message> <location line="-86"/> <location line="+58"/> - <source>%1 facet must be less than %2 facet</source> + <source>%1 facet must be less than %2 facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="-42"/> <location line="+58"/> - <source>%1 facet must be greater than or equal to %2 facet of base type</source> + <source>%1 facet must be greater than or equal to %2 facet of base type.</source> <translation type="unfinished"></translation> </message> <message> <location line="+113"/> - <source>simple type contains not allowed facet %1</source> + <source>Simple type contains not allowed facet %1.</source> <translation type="unfinished"></translation> </message> <message> <location line="+12"/> - <source>%1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list</source> + <source>%1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list.</source> <translation type="unfinished"></translation> </message> <message> <location line="+16"/> - <source>only %1 and %2 facets are allowed when derived by union</source> + <source>Only %1 and %2 facets are allowed when derived by union.</source> <translation type="unfinished"></translation> </message> <message> <location line="+23"/> <location line="+16"/> - <source>%1 contains %2 facet with invalid data: %3</source> + <source>%1 contains %2 facet with invalid data: %3.</source> <translation type="unfinished"></translation> </message> <message> <location line="+24"/> - <source>attribute group %1 contains attribute %2 twice</source> - <translation>skupina lastnosti %1 dvakrat vsebuje lastnost %2</translation> + <source>Attribute group %1 contains attribute %2 twice.</source> + <translation>Skupina lastnosti %1 dvakrat vsebuje lastnost %2.</translation> </message> <message> <location line="+9"/> - <source>attribute group %1 contains two different attributes that both have types derived from %2</source> + <source>Attribute group %1 contains two different attributes that both have types derived from %2.</source> <translation type="unfinished"></translation> </message> <message> <location line="+8"/> - <source>attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3</source> + <source>Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3.</source> <translation type="unfinished"></translation> </message> <message> <location line="+23"/> - <source>complex type %1 contains attribute %2 twice</source> - <translation>kompleksna vrsta %1 dvakrat vsebuje lastnost %2</translation> + <source>Complex type %1 contains attribute %2 twice.</source> + <translation>Kompleksna vrsta %1 dvakrat vsebuje lastnost %2.</translation> </message> <message> <location line="+9"/> - <source>complex type %1 contains two different attributes that both have types derived from %2</source> + <source>Complex type %1 contains two different attributes that both have types derived from %2.</source> <translation type="unfinished"></translation> </message> <message> <location line="+8"/> - <source>complex type %1 contains attribute %2 that has value constraint but type that inherits from %3</source> + <source>Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3.</source> <translation type="unfinished"></translation> </message> <message> <location line="+43"/> - <source>element %1 is not allowed to have a value constraint if its base type is complex</source> + <source>Element %1 is not allowed to have a value constraint if its base type is complex.</source> <translation type="unfinished"></translation> </message> <message> <location line="+7"/> - <source>element %1 is not allowed to have a value constraint if its type is derived from %2</source> + <source>Element %1 is not allowed to have a value constraint if its type is derived from %2.</source> <translation type="unfinished"></translation> </message> <message> <location line="+10"/> <location line="+11"/> - <source>value constraint of element %1 is not of elements type: %2</source> + <source>Value constraint of element %1 is not of elements type: %2.</source> <translation type="unfinished"></translation> </message> <message> <location line="+13"/> - <source>element %1 is not allowed to have substitution group affiliation as it is no global element</source> + <source>Element %1 is not allowed to have substitution group affiliation as it is no global element.</source> <translation type="unfinished"></translation> </message> <message> <location line="+28"/> - <source>type of element %1 cannot be derived from type of substitution group affiliation</source> + <source>Type of element %1 cannot be derived from type of substitution group affiliation.</source> <translation type="unfinished"></translation> </message> <message> <location line="+41"/> - <source>value constraint of attribute %1 is not of attributes type: %2</source> + <source>Value constraint of attribute %1 is not of attributes type: %2.</source> <translation type="unfinished"></translation> </message> <message> <location line="+9"/> - <source>attribute %1 has value constraint but has type derived from %2</source> + <source>Attribute %1 has value constraint but has type derived from %2.</source> <translation type="unfinished"></translation> </message> <message> <location line="+56"/> - <source>%1 attribute in derived complex type must be %2 like in base type</source> + <source>%1 attribute in derived complex type must be %2 like in base type.</source> <translation type="unfinished"></translation> </message> <message> <location line="+11"/> - <source>attribute %1 in derived complex type must have %2 value constraint like in base type</source> + <source>Attribute %1 in derived complex type must have %2 value constraint like in base type.</source> <translation type="unfinished"></translation> </message> <message> <location line="+9"/> - <source>attribute %1 in derived complex type must have the same %2 value constraint like in base type</source> + <source>Attribute %1 in derived complex type must have the same %2 value constraint like in base type.</source> <translation type="unfinished"></translation> </message> <message> <location line="+7"/> - <source>attribute %1 in derived complex type must have %2 value constraint</source> + <source>Attribute %1 in derived complex type must have %2 value constraint.</source> <translation type="unfinished"></translation> </message> <message> <location line="+18"/> - <source>processContent of base wildcard must be weaker than derived wildcard</source> + <source>processContent of base wildcard must be weaker than derived wildcard.</source> <translation type="unfinished"></translation> </message> <message> <location line="+39"/> <location line="+15"/> - <source>element %1 exists twice with different types</source> - <translation>element %1 obstaja dvakrat, z različnima vrstama</translation> + <source>Element %1 exists twice with different types.</source> + <translation>Element %1 obstaja dvakrat, z različnima vrstama.</translation> </message> <message> <location line="+28"/> - <source>particle contains non-deterministic wildcards</source> + <source>Particle contains non-deterministic wildcards.</source> <translation type="unfinished"></translation> </message> <message> <location filename="../src/xmlpatterns/schema/qxsdschemahelper.cpp" line="+691"/> <location line="+63"/> - <source>base attribute %1 is required but derived attribute is not</source> + <source>Base attribute %1 is required but derived attribute is not.</source> <translation type="unfinished"></translation> </message> <message> <location line="-57"/> - <source>type of derived attribute %1 cannot be validly derived from type of base attribute</source> + <source>Type of derived attribute %1 cannot be validly derived from type of base attribute.</source> <translation type="unfinished"></translation> </message> <message> <location line="+28"/> - <source>value constraint of derived attribute %1 does not match value constraint of base attribute</source> + <source>Value constraint of derived attribute %1 does not match value constraint of base attribute.</source> <translation type="unfinished"></translation> </message> <message> <location line="+5"/> - <source>derived attribute %1 does not exists in the base definition</source> + <source>Derived attribute %1 does not exists in the base definition.</source> <translation type="unfinished"></translation> </message> <message> <location line="+11"/> - <source>derived attribute %1 does not match the wildcard in the base definition</source> + <source>Derived attribute %1 does not match the wildcard in the base definition.</source> <translation type="unfinished"></translation> </message> <message> <location line="+17"/> - <source>base attribute %1 is required but missing in derived definition</source> + <source>Base attribute %1 is required but missing in derived definition.</source> <translation type="unfinished"></translation> </message> <message> <location line="+9"/> - <source>derived definition contains an %1 element that does not exists in the base definition</source> + <source>Derived definition contains an %1 element that does not exists in the base definition</source> <translation type="unfinished"></translation> </message> <message> <location line="+5"/> - <source>derived wildcard is not a subset of the base wildcard</source> + <source>Derived wildcard is not a subset of the base wildcard.</source> <translation type="unfinished"></translation> </message> <message> @@ -9133,905 +8970,1255 @@ Izberite drugo ime datoteke.</translation> </message> <message> <location line="+23"/> - <source>attribute %1 from base type is missing in derived type</source> + <source>Attribute %1 from base type is missing in derived type.</source> <translation type="unfinished"></translation> </message> <message> <location line="+5"/> - <source>type of derived attribute %1 differs from type of base attribute</source> + <source>Type of derived attribute %1 differs from type of base attribute.</source> <translation type="unfinished"></translation> </message> <message> <location line="+8"/> - <source>base definition contains an %1 element that is missing in the derived definition</source> + <source>Base definition contains an %1 element that is missing in the derived definition</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/xmlpatterns/schema/qxsdschemaparser.cpp" line="+169"/> - <source>can not process unknown element %1, expected elements are: %2</source> - <translation>ni moč obdelati neznanega elementa %1, pričakovani elementi so: %2</translation> + <location filename="../src/xmlpatterns/schema/qxsdschemaresolver.cpp" line="+354"/> + <source>%1 references unknown %2 or %3 element %4.</source> + <translation type="unfinished"></translation> </message> <message> - <location line="+13"/> - <source>element %1 is not allowed in this scope, possible elements are: %2</source> - <translation>element %1 v tem obsegu ni dovoljen, možni elementi so: %2</translation> + <location line="+10"/> + <source>%1 references identity constraint %2 that is no %3 or %4 element.</source> + <translation type="unfinished"></translation> </message> <message> - <location line="+16"/> - <source>child element is missing in that scope, possible child elements are: %1</source> - <translation>v tem obsegu manjka podelement, možni podelementi so: %1</translation> + <location line="+10"/> + <source>%1 has a different number of fields from the identity constraint %2 that it references.</source> + <translation type="unfinished"></translation> </message> <message> - <location line="+127"/> - <source>document is not a XML schema</source> - <translation>dokument ni shema XML</translation> + <location line="+23"/> + <source>Base type %1 of %2 element cannot be resolved.</source> + <translation type="unfinished"></translation> </message> <message> - <location line="+22"/> - <source>%1 attribute of %2 element contains invalid content: {%3} is not a value of type %4</source> - <translation>lastnost %1 elementa %2 vsebuje neveljavno vsebino: {%3} ni vrednost vrste %4</translation> + <location line="+84"/> + <source>Item type %1 of %2 element cannot be resolved.</source> + <translation type="unfinished"></translation> </message> <message> - <location line="+6"/> - <source>%1 attribute of %2 element contains invalid content: {%3}</source> - <translation>lastnost %1 elementa %2 vsebuje neveljavno vsebino: {%3}</translation> + <location line="+31"/> + <source>Member type %1 of %2 element cannot be resolved.</source> + <translation type="unfinished"></translation> </message> <message> - <location line="+26"/> - <source>target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema</source> + <location line="+28"/> + <location line="+408"/> + <location line="+30"/> + <source>Type %1 of %2 element cannot be resolved.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+14"/> - <location line="+11"/> - <source>target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema</source> + <location line="-416"/> + <source>Base type %1 of complex type cannot be resolved.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+237"/> - <source>%1 element is not allowed to have the same %2 attribute value as the target namespace %3</source> + <location line="+9"/> + <source>%1 cannot have complex base type that has a %2.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+8"/> - <source>%1 element without %2 attribute is not allowed inside schema without target namespace</source> + <location line="+279"/> + <source>Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+833"/> - <location line="+158"/> - <source>%1 element is not allowed inside %2 element if %3 attribute is present</source> - <translation>element %1 znotraj elementa %2 ni dovoljen, če je prisotna lastnost %3</translation> + <location line="+6"/> + <source>Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model.</source> + <translation type="unfinished"></translation> </message> <message> - <location line="-97"/> - <location line="+119"/> - <location line="+92"/> - <source>%1 element has neither %2 attribute nor %3 child element</source> - <translation>element %1 nima niti lastnosti %2 niti podelementa %3</translation> + <location line="+101"/> + <source>Type of %1 element must be a simple type, %2 is not.</source> + <translation>Vrsta elementa %1 mora biti preprosta, %2 to ni.</translation> </message> <message> - <location line="+835"/> - <location line="+1474"/> - <location line="+232"/> - <location line="+7"/> - <location line="+260"/> - <location line="+17"/> - <location line="+258"/> - <location line="+6"/> - <location line="+17"/> - <location line="+6"/> - <location line="+17"/> - <location line="+11"/> - <location line="+11"/> - <location line="+11"/> - <source>%1 element with %2 child element must not have a %3 attribute</source> - <translation>element %1 s podelementom %2 ne sme imeti lastnosti %3</translation> + <location line="+62"/> + <source>Substitution group %1 of %2 element cannot be resolved.</source> + <translation type="unfinished"></translation> </message> <message> - <location line="-1325"/> - <source>%1 attribute of %2 element must be %3 or %4</source> - <translation>lastnost %1 elementa %2 mora biti %3 ali %4</translation> + <location line="+9"/> + <source>Substitution group %1 has circular definition.</source> + <translation type="unfinished"></translation> </message> <message> - <location line="+36"/> - <source>%1 attribute of %2 element must have a value of %3</source> - <translation>lastnost %1 elementa %2 mora imeti vrednost %3</translation> + <location line="+120"/> + <location line="+7"/> + <source>Duplicated element names %1 in %2 element.</source> + <translation>Podvojeni imeni elementov %1 v elementu %2.</translation> </message> <message> - <location line="+7"/> - <location line="+34"/> - <source>%1 attribute of %2 element must have a value of %3 or %4</source> - <translation>lastnost %1 elementa %2 mora imeti vrednost %3 ali %4</translation> + <location line="+29"/> + <location line="+52"/> + <location line="+71"/> + <location line="+28"/> + <source>Reference %1 of %2 element cannot be resolved.</source> + <translation type="unfinished"></translation> </message> <message> - <location line="+319"/> - <location line="+129"/> - <location line="+9"/> - <location line="+7"/> - <location line="+7"/> - <location line="+327"/> - <location line="+203"/> - <location line="+6"/> - <location line="+6"/> - <location line="+6"/> - <location line="+6"/> - <location line="+6"/> - <location line="+6"/> - <location line="+77"/> - <source>%1 element must not have %2 and %3 attribute together</source> - <translation>element %1 hkrati ne sme imeti lastnosti %2 in %3</translation> + <location line="-138"/> + <source>Circular group reference for %1.</source> + <translation type="unfinished"></translation> </message> <message> - <location line="-768"/> - <location line="+222"/> - <source>content of %1 attribute of %2 element must not be from namespace %3</source> - <translation>vsebina lastnosti %1 elementa %2 ne sme biti iz imenskega prostora %3</translation> + <location line="+16"/> + <source>%1 element is not allowed in this scope</source> + <translation>Element %1 v tem obsegu ni dovoljen</translation> </message> <message> - <location line="-215"/> - <location line="+222"/> - <source>%1 attribute of %2 element must not be %3</source> - <translation>lastnost %1 elementa %2 ne sme biti %3</translation> + <location line="+5"/> + <source>%1 element cannot have %2 attribute with value other than %3.</source> + <translation type="unfinished"></translation> </message> <message> - <location line="-64"/> - <source>%1 attribute of %2 element must have the value %3 because the %4 attribute is set</source> + <location line="+8"/> + <source>%1 element cannot have %2 attribute with value other than %3 or %4.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+187"/> - <source>specifying use='prohibited' inside an attribute group has no effect</source> + <location line="+91"/> + <source>%1 or %2 attribute of reference %3 does not match with the attribute declaration %4.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+353"/> - <source>%1 element must have either %2 or %3 attribute</source> - <translation>element %1 mora imeti lastnost %2 ali %3</translation> + <location line="+25"/> + <source>Attribute group %1 has circular reference.</source> + <translation type="unfinished"></translation> </message> <message> - <location line="+554"/> - <source>%1 element must have either %2 attribute or %3 or %4 as child element</source> + <location line="+131"/> + <source>%1 attribute in %2 must have %3 use like in base type %4.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+55"/> - <source>%1 element requires either %2 or %3 attribute</source> - <translation>element %1 potrebuje vsaj lastnost %2 ali %3</translation> + <location line="+52"/> + <source>Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2.</source> + <translation type="unfinished"></translation> </message> <message> - <location line="+19"/> - <source>text or entity references not allowed inside %1 element</source> + <location line="+7"/> + <source>%1 has attribute wildcard but its base type %2 has not.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+41"/> - <location line="+112"/> - <source>%1 attribute of %2 element must contain %3, %4 or a list of URIs</source> + <location line="+26"/> + <source>Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+126"/> - <source>%1 element is not allowed in this context</source> - <translation>element %1 v tem kontekstu ni dovoljen</translation> + <location line="+48"/> + <source>Enumeration facet contains invalid content: {%1} is not a value of type %2.</source> + <translation type="unfinished"></translation> </message> <message> - <location line="+53"/> - <source>%1 attribute of %2 element has larger value than %3 attribute</source> + <location line="+10"/> + <source>Namespace prefix of qualified name %1 is not defined.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+25"/> - <source>prefix of qualified name %1 is not defined</source> + <location line="+51"/> + <location line="+18"/> + <source>%1 element %2 is not a valid restriction of the %3 element it redefines: %4.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+65"/> - <location line="+61"/> - <source>%1 attribute of %2 element must either contain %3 or the other values</source> + <location filename="../src/xmlpatterns/schema/qxsdparticlechecker.cpp" line="+165"/> + <source>Empty particle cannot be derived from non-empty particle.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+131"/> - <source>component with id %1 has been defined previously</source> - <translation>komponenta z ID-jem %1 je že bila definirana</translation> + <location line="+15"/> + <source>Derived particle is missing element %1.</source> + <translation type="unfinished"></translation> </message> <message> - <location line="+17"/> - <source>element %1 already defined</source> - <translation>element %1 je že definiran</translation> + <location line="+7"/> + <source>Derived element %1 is missing value constraint as defined in base particle.</source> + <translation type="unfinished"></translation> </message> <message> - <location line="+11"/> - <source>attribute %1 already defined</source> - <translation>lastnost %1 je že definirana</translation> + <location line="+5"/> + <source>Derived element %1 has weaker value constraint than base particle.</source> + <translation type="unfinished"></translation> </message> <message> - <location line="+15"/> - <source>type %1 already defined</source> - <translation>vrsta %1 je že definirana</translation> + <location line="+7"/> + <source>Fixed value constraint of element %1 differs from value constraint in base particle.</source> + <translation type="unfinished"></translation> </message> <message> - <location line="+23"/> - <source>attribute group %1 already defined</source> - <translation>skupina lastnosti %1 je že definirana</translation> + <location line="+7"/> + <source>Derived element %1 cannot be nillable as base element is not nillable.</source> + <translation type="unfinished"></translation> </message> <message> - <location line="+11"/> - <source>element group %1 already defined</source> - <translation>skupina elementov %1 je že definirana</translation> + <location line="+10"/> + <source>Block constraints of derived element %1 must not be more weaker than in the base element.</source> + <translation type="unfinished"></translation> </message> <message> <location line="+11"/> - <source>notation %1 already defined</source> - <translation>zapis %1 je že definiran</translation> + <source>Simple type of derived element %1 cannot be validly derived from base element.</source> + <translation type="unfinished"></translation> </message> <message> - <location line="+11"/> - <source>identity constraint %1 already defined</source> + <location line="+5"/> + <source>Complex type of derived element %1 cannot be validly derived from base element.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+11"/> - <source>duplicated facets in simple type %1</source> + <location line="+24"/> + <source>Element %1 is missing in derived particle.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/xmlpatterns/schema/qxsdschemaresolver.cpp" line="+354"/> - <source>%1 references unknown %2 or %3 element %4</source> + <location line="+18"/> + <source>Element %1 does not match namespace constraint of wildcard in base particle.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+10"/> - <source>%1 references identity constraint %2 that is no %3 or %4 element</source> + <location line="+11"/> + <source>Wildcard in derived particle is not a valid subset of wildcard in base particle.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+10"/> - <source>%1 has a different number of fields from the identity constraint %2 that it references</source> + <location line="+5"/> + <source>processContent of wildcard in derived particle is weaker than wildcard in base particle.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+23"/> - <source>base type %1 of %2 element cannot be resolved</source> + <location line="+240"/> + <source>Derived particle allows content that is not allowed in the base particle.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+84"/> - <source>item type %1 of %2 element cannot be resolved</source> + <location filename="../src/xmlpatterns/schema/qxsdschemaparser.cpp" line="+170"/> + <source>Can not process unknown element %1, expected elements are: %2.</source> + <translation>Ni moč obdelati neznanega elementa %1, pričakovani elementi so: %2.</translation> + </message> + <message> + <location line="+13"/> + <source>Element %1 is not allowed in this scope, possible elements are: %2.</source> + <translation>Element %1 v tem obsegu ni dovoljen, možni elementi so: %2.</translation> + </message> + <message> + <location line="+16"/> + <source>Child element is missing in that scope, possible child elements are: %1.</source> + <translation>V tem obsegu manjka podelement, možni podelementi so: %1.</translation> + </message> + <message> + <location line="+127"/> + <source>Document is not a XML schema.</source> + <translation>Dokument ni shema XML.</translation> + </message> + <message> + <location line="+22"/> + <source>%1 attribute of %2 element contains invalid content: {%3} is not a value of type %4.</source> + <translation>Lastnost %1 elementa %2 vsebuje neveljavno vsebino: {%3} ni vrednost vrste %4.</translation> + </message> + <message> + <location line="+6"/> + <source>%1 attribute of %2 element contains invalid content: {%3}.</source> + <translation>Lastnost %1 elementa %2 vsebuje neveljavno vsebino: {%3}.</translation> + </message> + <message> + <location line="+26"/> + <source>Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+31"/> - <source>member type %1 of %2 element cannot be resolved</source> + <location line="+14"/> + <location line="+11"/> + <source>Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+28"/> - <location line="+408"/> - <location line="+30"/> - <source>type %1 of %2 element cannot be resolved</source> + <location line="+237"/> + <source>%1 element is not allowed to have the same %2 attribute value as the target namespace %3.</source> <translation type="unfinished"></translation> </message> <message> - <location line="-416"/> - <source>base type %1 of complex type cannot be resolved</source> + <location line="+8"/> + <source>%1 element without %2 attribute is not allowed inside schema without target namespace.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+9"/> - <source>%1 cannot have complex base type that has a %2</source> - <translation></translation> + <location line="+833"/> + <location line="+158"/> + <source>%1 element is not allowed inside %2 element if %3 attribute is present.</source> + <translation>Element %1 znotraj elementa %2 ni dovoljen, če je prisotna lastnost %3.</translation> </message> <message> - <location line="+279"/> - <source>content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type</source> - <translation type="unfinished"></translation> + <location line="-97"/> + <location line="+119"/> + <location line="+92"/> + <source>%1 element has neither %2 attribute nor %3 child element.</source> + <translation>Element %1 nima niti lastnosti %2 niti podelementa %3.</translation> </message> <message> + <location line="+835"/> + <location line="+1474"/> + <location line="+232"/> + <location line="+7"/> + <location line="+260"/> + <location line="+17"/> + <location line="+258"/> <location line="+6"/> - <source>complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model</source> - <translation type="unfinished"></translation> + <location line="+17"/> + <location line="+6"/> + <location line="+17"/> + <location line="+11"/> + <location line="+11"/> + <location line="+11"/> + <source>%1 element with %2 child element must not have a %3 attribute.</source> + <translation>Element %1 s podelementom %2 ne sme imeti lastnosti %3.</translation> </message> <message> - <location line="+101"/> - <source>type of %1 element must be a simple type, %2 is not</source> - <translation>vrsta elementa %1 mora biti preprosta, %2 to ni</translation> + <location line="-1325"/> + <source>%1 attribute of %2 element must be %3 or %4.</source> + <translation>Lastnost %1 elementa %2 mora biti %3 ali %4.</translation> </message> <message> - <location line="+62"/> - <source>substitution group %1 of %2 element cannot be resolved</source> - <translation type="unfinished"></translation> + <location line="+36"/> + <source>%1 attribute of %2 element must have a value of %3.</source> + <translation>Lastnost %1 elementa %2 mora imeti vrednost %3.</translation> </message> <message> - <location line="+9"/> - <source>substitution group %1 has circular definition</source> - <translation type="unfinished"></translation> + <location line="+7"/> + <location line="+34"/> + <source>%1 attribute of %2 element must have a value of %3 or %4.</source> + <translation>Lastnost %1 elementa %2 mora imeti vrednost %3 ali %4.</translation> </message> <message> - <location line="+120"/> + <location line="+319"/> + <location line="+129"/> + <location line="+9"/> <location line="+7"/> - <source>duplicated element names %1 in %2 element</source> - <translation>podvojeni imeni elementov %1 v elementu %2</translation> + <location line="+7"/> + <location line="+327"/> + <location line="+203"/> + <location line="+6"/> + <location line="+6"/> + <location line="+6"/> + <location line="+6"/> + <location line="+6"/> + <location line="+6"/> + <location line="+77"/> + <source>%1 element must not have %2 and %3 attribute together.</source> + <translation>Element %1 hkrati ne sme imeti lastnosti %2 in %3.</translation> </message> <message> - <location line="+29"/> - <location line="+52"/> - <location line="+71"/> - <location line="+28"/> - <source>reference %1 of %2 element cannot be resolved</source> + <location line="-768"/> + <location line="+222"/> + <source>Content of %1 attribute of %2 element must not be from namespace %3.</source> + <translation>Vsebina lastnosti %1 elementa %2 ne sme biti iz imenskega prostora %3.</translation> + </message> + <message> + <location line="-215"/> + <location line="+222"/> + <source>%1 attribute of %2 element must not be %3.</source> + <translation>Lastnost %1 elementa %2 ne sme biti %3.</translation> + </message> + <message> + <location line="-64"/> + <source>%1 attribute of %2 element must have the value %3 because the %4 attribute is set.</source> <translation type="unfinished"></translation> </message> <message> - <location line="-138"/> - <source>circular group reference for %1</source> + <location line="+187"/> + <source>Specifying use='prohibited' inside an attribute group has no effect.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+16"/> - <source>%1 element is not allowed in this scope</source> - <translation>element %1 v tem obsegu ni dovoljen</translation> + <location line="+353"/> + <source>%1 element must have either %2 or %3 attribute.</source> + <translation>Element %1 mora imeti lastnost %2 ali %3.</translation> </message> <message> - <location line="+5"/> - <source>%1 element cannot have %2 attribute with value other than %3</source> + <location line="+554"/> + <source>%1 element must have either %2 attribute or %3 or %4 as child element.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+8"/> - <source>%1 element cannot have %2 attribute with value other than %3 or %4</source> - <translation type="unfinished"></translation> + <location line="+55"/> + <source>%1 element requires either %2 or %3 attribute.</source> + <translation>Element %1 potrebuje vsaj lastnost %2 ali %3.</translation> </message> <message> - <location line="+91"/> - <source>%1 or %2 attribute of reference %3 does not match with the attribute declaration %4</source> + <location line="+19"/> + <source>Text or entity references not allowed inside %1 element</source> <translation type="unfinished"></translation> </message> <message> - <location line="+25"/> - <source>attribute group %1 has circular reference</source> + <location line="+41"/> + <location line="+112"/> + <source>%1 attribute of %2 element must contain %3, %4 or a list of URIs.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+131"/> - <source>%1 attribute in %2 must have %3 use like in base type %4</source> - <translation type="unfinished"></translation> + <location line="+126"/> + <source>%1 element is not allowed in this context.</source> + <translation>Element %1 v tem kontekstu ni dovoljen.</translation> </message> <message> - <location line="+52"/> - <source>attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2</source> + <location line="+53"/> + <source>%1 attribute of %2 element has larger value than %3 attribute.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+7"/> - <source>%1 has attribute wildcard but its base type %2 has not</source> + <location line="+25"/> + <source>Prefix of qualified name %1 is not defined.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+26"/> - <source>union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible</source> + <location line="+65"/> + <location line="+61"/> + <source>%1 attribute of %2 element must either contain %3 or the other values.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+48"/> - <source>enumeration facet contains invalid content: {%1} is not a value of type %2</source> - <translation type="unfinished"></translation> + <location line="+131"/> + <source>Component with id %1 has been defined previously.</source> + <translation>Komponenta z ID-jem %1 je že bila definirana.</translation> </message> <message> - <location line="+10"/> - <source>namespace prefix of qualified name %1 is not defined</source> + <location line="+17"/> + <source>Element %1 already defined.</source> + <translation>Element %1 je že definiran.</translation> + </message> + <message> + <location line="+11"/> + <source>Attribute %1 already defined.</source> + <translation>Lastnost %1 je že definirana.</translation> + </message> + <message> + <location line="+15"/> + <source>Type %1 already defined.</source> + <translation>Vrsta %1 je že definirana.</translation> + </message> + <message> + <location line="+23"/> + <source>Attribute group %1 already defined.</source> + <translation>Skupina lastnosti %1 je že definirana.</translation> + </message> + <message> + <location line="+11"/> + <source>Element group %1 already defined.</source> + <translation>Skupina elementov %1 je že definirana.</translation> + </message> + <message> + <location line="+11"/> + <source>Notation %1 already defined.</source> + <translation>Zapis %1 je že definiran.</translation> + </message> + <message> + <location line="+11"/> + <source>Identity constraint %1 already defined.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+51"/> - <location line="+18"/> - <source>%1 element %2 is not a valid restriction of the %3 element it redefines: %4</source> + <location line="+11"/> + <source>Duplicated facets in simple type %1.</source> <translation type="unfinished"></translation> </message> <message> <location filename="../src/xmlpatterns/schema/qxsdtypechecker.cpp" line="+233"/> <location line="+7"/> <location line="+21"/> - <source>%1 is not valid according to %2</source> - <translation>%1 glede na %2 ni veljaven</translation> + <source>%1 is not valid according to %2.</source> + <translation>%1 glede na %2 ni veljaven.</translation> </message> <message> <location line="+167"/> - <source>string content does not match the length facet</source> + <source>String content does not match the length facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+8"/> - <source>string content does not match the minLength facet</source> + <source>String content does not match the minLength facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+8"/> - <source>string content does not match the maxLength facet</source> + <source>String content does not match the maxLength facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+18"/> - <source>string content does not match pattern facet</source> + <source>String content does not match pattern facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+18"/> - <source>string content is not listed in the enumeration facet</source> + <source>String content is not listed in the enumeration facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+17"/> - <source>signed integer content does not match the maxInclusive facet</source> + <source>Signed integer content does not match the maxInclusive facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+8"/> - <source>signed integer content does not match the maxExclusive facet</source> + <source>Signed integer content does not match the maxExclusive facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+8"/> - <source>signed integer content does not match the minInclusive facet</source> + <source>Signed integer content does not match the minInclusive facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+8"/> - <source>signed integer content does not match the minExclusive facet</source> + <source>Signed integer content does not match the minExclusive facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+18"/> - <source>signed integer content is not listed in the enumeration facet</source> + <source>Signed integer content is not listed in the enumeration facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+18"/> - <source>signed integer content does not match pattern facet</source> + <source>Signed integer content does not match pattern facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+9"/> - <source>signed integer content does not match in the totalDigits facet</source> + <source>Signed integer content does not match in the totalDigits facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+17"/> - <source>unsigned integer content does not match the maxInclusive facet</source> + <source>Unsigned integer content does not match the maxInclusive facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+8"/> - <source>unsigned integer content does not match the maxExclusive facet</source> + <source>Unsigned integer content does not match the maxExclusive facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+8"/> - <source>unsigned integer content does not match the minInclusive facet</source> + <source>Unsigned integer content does not match the minInclusive facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+8"/> - <source>unsigned integer content does not match the minExclusive facet</source> + <source>Unsigned integer content does not match the minExclusive facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+18"/> - <source>unsigned integer content is not listed in the enumeration facet</source> + <source>Unsigned integer content is not listed in the enumeration facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+18"/> - <source>unsigned integer content does not match pattern facet</source> + <source>Unsigned integer content does not match pattern facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+9"/> - <source>unsigned integer content does not match in the totalDigits facet</source> + <source>Unsigned integer content does not match in the totalDigits facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+17"/> - <source>double content does not match the maxInclusive facet</source> + <source>Double content does not match the maxInclusive facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+8"/> - <source>double content does not match the maxExclusive facet</source> + <source>Double content does not match the maxExclusive facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+8"/> - <source>double content does not match the minInclusive facet</source> + <source>Double content does not match the minInclusive facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+8"/> - <source>double content does not match the minExclusive facet</source> + <source>Double content does not match the minExclusive facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+18"/> - <source>double content is not listed in the enumeration facet</source> + <source>Double content is not listed in the enumeration facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+18"/> - <source>double content does not match pattern facet</source> + <source>Double content does not match pattern facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+18"/> - <source>decimal content does not match in the fractionDigits facet</source> + <source>Decimal content does not match in the fractionDigits facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+9"/> - <source>decimal content does not match in the totalDigits facet</source> + <source>Decimal content does not match in the totalDigits facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+14"/> - <source>date time content does not match the maxInclusive facet</source> + <source>Date time content does not match the maxInclusive facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+8"/> - <source>date time content does not match the maxExclusive facet</source> + <source>Date time content does not match the maxExclusive facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+8"/> - <source>date time content does not match the minInclusive facet</source> + <source>Date time content does not match the minInclusive facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+8"/> - <source>date time content does not match the minExclusive facet</source> + <source>Date time content does not match the minExclusive facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+18"/> - <source>date time content is not listed in the enumeration facet</source> + <source>Date time content is not listed in the enumeration facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+18"/> - <source>date time content does not match pattern facet</source> + <source>Date time content does not match pattern facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+15"/> - <source>duration content does not match the maxInclusive facet</source> + <source>Duration content does not match the maxInclusive facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+9"/> - <source>duration content does not match the maxExclusive facet</source> + <source>Duration content does not match the maxExclusive facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+9"/> - <source>duration content does not match the minInclusive facet</source> + <source>Duration content does not match the minInclusive facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+9"/> - <source>duration content does not match the minExclusive facet</source> + <source>Duration content does not match the minExclusive facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+18"/> - <source>duration content is not listed in the enumeration facet</source> + <source>Duration content is not listed in the enumeration facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+18"/> - <source>duration content does not match pattern facet</source> + <source>Duration content does not match pattern facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+27"/> - <source>boolean content does not match pattern facet</source> + <source>Boolean content does not match pattern facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+17"/> - <source>binary content does not match the length facet</source> + <source>Binary content does not match the length facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+8"/> - <source>binary content does not match the minLength facet</source> + <source>Binary content does not match the minLength facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+8"/> - <source>binary content does not match the maxLength facet</source> + <source>Binary content does not match the maxLength facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+18"/> - <source>binary content is not listed in the enumeration facet</source> + <source>Binary content is not listed in the enumeration facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+27"/> - <source>invalid QName content: %1</source> - <translation>neveljavna vsebina QName: %1</translation> + <source>Invalid QName content: %1.</source> + <translation>Neveljavna vsebina QName: %1.</translation> </message> <message> <location line="+17"/> - <source>QName content is not listed in the enumeration facet</source> + <source>QName content is not listed in the enumeration facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+18"/> - <source>QName content does not match pattern facet</source> + <source>QName content does not match pattern facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+36"/> - <source>notation content is not listed in the enumeration facet</source> + <source>Notation content is not listed in the enumeration facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+19"/> - <source>list content does not match length facet</source> + <source>List content does not match length facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+7"/> - <source>list content does not match minLength facet</source> + <source>List content does not match minLength facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+7"/> - <source>list content does not match maxLength facet</source> + <source>List content does not match maxLength facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+90"/> - <source>list content is not listed in the enumeration facet</source> + <source>List content is not listed in the enumeration facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+18"/> - <source>list content does not match pattern facet</source> + <source>List content does not match pattern facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+39"/> - <source>union content is not listed in the enumeration facet</source> + <source>Union content is not listed in the enumeration facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+18"/> - <source>union content does not match pattern facet</source> + <source>Union content does not match pattern facet.</source> <translation type="unfinished"></translation> </message> <message> <location line="+15"/> - <source>data of type %1 are not allowed to be empty</source> - <translation>podatki vrste %1 ne smejo biti prazni</translation> + <source>Data of type %1 are not allowed to be empty.</source> + <translation>Podatki vrste %1 ne smejo biti prazni.</translation> </message> <message> <location filename="../src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp" line="+160"/> - <source>element %1 is missing child element</source> - <translation>elementu %1 manjka podelement</translation> + <source>Element %1 is missing child element.</source> + <translation>Elementu %1 manjka podelement.</translation> </message> <message> <location line="+16"/> - <source>there is one IDREF value with no corresponding ID: %1</source> + <source>There is one IDREF value with no corresponding ID: %1.</source> <translation type="unfinished"></translation> </message> <message> <location line="+27"/> - <source>loaded schema file is invalid</source> + <source>Loaded schema file is invalid.</source> <translation type="unfinished"></translation> </message> <message> <location line="+16"/> - <source>%1 contains invalid data</source> - <translation>%1 vsebuje neveljavne podatke</translation> + <source>%1 contains invalid data.</source> + <translation>%1 vsebuje neveljavne podatke.</translation> </message> <message> <location line="+13"/> - <source>xsi:schemaLocation namespace %1 has already appeared earlier in the instance document</source> + <source>xsi:schemaLocation namespace %1 has already appeared earlier in the instance document.</source> <translation type="unfinished"></translation> </message> <message> <location line="+22"/> - <source>xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute</source> + <source>xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute.</source> <translation type="unfinished"></translation> </message> <message> <location line="+18"/> - <source>no schema defined for validation</source> + <source>No schema defined for validation.</source> <translation type="unfinished"></translation> </message> <message> <location line="+10"/> - <source>no definition for element %1 available</source> - <translation>definicija za element %1 ni na voljo</translation> + <source>No definition for element %1 available.</source> + <translation>Definicija za element %1 ni na voljo.</translation> </message> <message> <location line="+18"/> <location line="+49"/> <location line="+142"/> - <source>specified type %1 is not known to the schema</source> + <source>Specified type %1 is not known to the schema.</source> <translation type="unfinished"></translation> </message> <message> <location line="-176"/> - <source>element %1 is not defined in this scope</source> - <translation>element %1 v tem obsegu ni definiran</translation> + <source>Element %1 is not defined in this scope.</source> + <translation>Element %1 v tem obsegu ni definiran.</translation> </message> <message> <location line="+43"/> - <source>declaration for element %1 does not exist</source> - <translation>deklaracija elementa %1 ne obstaja</translation> + <source>Declaration for element %1 does not exist.</source> + <translation>Deklaracija elementa %1 ne obstaja.</translation> </message> <message> <location line="+12"/> - <source>element %1 contains invalid content</source> - <translation>element %1 vsebuje neveljavno vsebino</translation> + <source>Element %1 contains invalid content.</source> + <translation>Element %1 vsebuje neveljavno vsebino.</translation> </message> <message> <location line="+73"/> - <source>element %1 is declared as abstract</source> - <translation>element %1 je deklariran kot abstrakten</translation> + <source>Element %1 is declared as abstract.</source> + <translation>Element %1 je deklariran kot abstrakten.</translation> </message> <message> <location line="+7"/> - <source>element %1 is not nillable</source> + <source>Element %1 is not nillable.</source> <translation type="unfinished"></translation> </message> <message> <location line="+8"/> - <source>attribute %1 contains invalid data: %2</source> - <translation type="unfinished"></translation> + <source>Attribute %1 contains invalid data: %2</source> + <translation>Lastnost %1 vsebuje neveljavne podatke: %2</translation> </message> <message> <location line="+8"/> - <source>element contains content although it is nillable</source> + <source>Element contains content although it is nillable.</source> <translation type="unfinished"></translation> </message> <message> <location line="+6"/> - <source>fixed value constrained not allowed if element is nillable</source> + <source>Fixed value constrained not allowed if element is nillable.</source> <translation type="unfinished"></translation> </message> <message> <location line="+32"/> - <source>specified type %1 is not validly substitutable with element type %2</source> + <source>Specified type %1 is not validly substitutable with element type %2.</source> <translation type="unfinished"></translation> </message> <message> <location line="+23"/> - <source>complex type %1 is not allowed to be abstract</source> - <translation>kompleksna vrsta %1 ne sme biti abstraktna</translation> + <source>Complex type %1 is not allowed to be abstract.</source> + <translation>Kompleksna vrsta %1 ne sme biti abstraktna.</translation> </message> <message> <location line="+21"/> - <source>element %1 contains not allowed attributes</source> - <translation>element %1 vsebuje nedovoljene lastnosti</translation> + <source>Element %1 contains not allowed attributes.</source> + <translation>Element %1 vsebuje nedovoljene lastnosti.</translation> </message> <message> <location line="+6"/> <location line="+97"/> - <source>element %1 contains not allowed child element</source> - <translation>element %1 vsebuje nedovoljen podelement</translation> + <source>Element %1 contains not allowed child element.</source> + <translation>Element %1 vsebuje nedovoljen podelement.</translation> </message> <message> <location line="-76"/> <location line="+93"/> - <source>content of element %1 does not match its type definition: %2</source> - <translation>vsebina elementa %1 ne ustreza zanj določeni vrsti: %2</translation> + <source>Content of element %1 does not match its type definition: %2.</source> + <translation>Vsebina elementa %1 ne ustreza zanj določeni vrsti: %2.</translation> </message> <message> <location line="-85"/> <location line="+92"/> <location line="+41"/> - <source>content of element %1 does not match defined value constraint</source> + <source>Content of element %1 does not match defined value constraint.</source> <translation type="unfinished"></translation> </message> <message> <location line="-73"/> - <source>element %1 contains not allowed child content</source> - <translation>element %1 vsebuje nedovoljeno vsebino v podelementih</translation> + <source>Element %1 contains not allowed child content.</source> + <translation>Element %1 vsebuje nedovoljeno vsebino v podelementih.</translation> </message> <message> <location line="+41"/> - <source>element %1 contains not allowed text content</source> - <translation>element %1 vsebuje nedovoljeno besedilno vsebino</translation> + <source>Element %1 contains not allowed text content.</source> + <translation>Element %1 vsebuje nedovoljeno besedilno vsebino.</translation> </message> <message> <location line="+18"/> - <source>element %1 can not contain other elements, as it has a fixed content</source> - <translation>element %1 ne more vsebovati drugih elementov, ker ima fiksno vsebino</translation> + <source>Element %1 can not contain other elements, as it has a fixed content.</source> + <translation>Element %1 ne more vsebovati drugih elementov, ker ima fiksno vsebino.</translation> </message> <message> <location line="+43"/> - <source>element %1 is missing required attribute %2</source> - <translation>elementu %1 manjka obvezna lastnost %2</translation> + <source>Element %1 is missing required attribute %2.</source> + <translation>Elementu %1 manjka obvezna lastnost %2.</translation> </message> <message> <location line="+29"/> - <source>attribute %1 does not match the attribute wildcard</source> + <source>Attribute %1 does not match the attribute wildcard.</source> <translation type="unfinished"></translation> </message> <message> <location line="+9"/> - <source>declaration for attribute %1 does not exist</source> - <translation>deklaracija lastnosti %1 ne obstaja</translation> + <source>Declaration for attribute %1 does not exist.</source> + <translation>Deklaracija lastnosti %1 ne obstaja.</translation> </message> <message> <location line="+6"/> - <source>element %1 contains two attributes of type %2</source> - <translation>element %1 vsebuje dve lastnosti vrste %2</translation> + <source>Element %1 contains two attributes of type %2.</source> + <translation>Element %1 vsebuje dve lastnosti vrste %2.</translation> </message> <message> <location line="+11"/> - <source>attribute %1 contains invalid content</source> - <translation>lastnost %1 vsebuje neveljavno vsebino</translation> + <source>Attribute %1 contains invalid content.</source> + <translation>Lastnost %1 vsebuje neveljavno vsebino.</translation> </message> <message> <location line="+7"/> - <source>element %1 contains unknown attribute %2</source> - <translation>element %1 vsebuje neznano lastnost %2</translation> + <source>Element %1 contains unknown attribute %2.</source> + <translation>Element %1 vsebuje neznano lastnost %2.</translation> </message> <message> <location line="+40"/> <location line="+46"/> - <source>content of attribute %1 does not match its type definition: %2</source> + <source>Content of attribute %1 does not match its type definition: %2.</source> <translation type="unfinished"></translation> </message> <message> <location line="-38"/> <location line="+46"/> - <source>content of attribute %1 does not match defined value constraint</source> + <source>Content of attribute %1 does not match defined value constraint.</source> <translation type="unfinished"></translation> </message> <message> <location line="+88"/> - <source>non-unique value found for constraint %1</source> + <source>Non-unique value found for constraint %1.</source> <translation type="unfinished"></translation> </message> <message> <location line="+20"/> - <source>key constraint %1 contains absent fields</source> + <source>Key constraint %1 contains absent fields.</source> <translation type="unfinished"></translation> </message> <message> <location line="+18"/> - <source>key constraint %1 contains references nillable element %2</source> + <source>Key constraint %1 contains references nillable element %2.</source> <translation type="unfinished"></translation> </message> <message> <location line="+40"/> - <source>no referenced value found for key reference %1</source> + <source>No referenced value found for key reference %1.</source> <translation type="unfinished"></translation> </message> <message> <location line="+64"/> - <source>more than one value found for field %1</source> - <translation>za polje %1 je bila najdena več kot ena vrednost</translation> + <source>More than one value found for field %1.</source> + <translation>Za polje %1 je bila najdena več kot ena vrednost.</translation> </message> <message> <location line="+20"/> - <source>field %1 has no simple type</source> - <translation>polje %1 nima preproste vrste</translation> + <source>Field %1 has no simple type.</source> + <translation>Polje %1 nima preproste vrste.</translation> </message> <message> <location line="+73"/> - <source>ID value '%1' is not unique</source> - <translation>Vrednost ID »%1« ni edinstvena</translation> + <source>ID value '%1' is not unique.</source> + <translation>Vrednost ID »%1« ni edinstvena.</translation> </message> <message> <location line="+11"/> + <source>'%1' attribute contains invalid QName content: %2.</source> + <translation>Lastnost »%1« vsebuje neveljavno vsebino QName: %2.</translation> + </message> + <message> + <location filename="Obsolete_PO_entries"/> + <source>attribute group %1 contains attribute %2 twice</source> + <translation type="obsolete">skupina lastnosti %1 dvakrat vsebuje lastnost %2</translation> + </message> + <message> + <location/> + <source>complex type %1 contains attribute %2 twice</source> + <translation type="obsolete">kompleksna vrsta %1 dvakrat vsebuje lastnost %2</translation> + </message> + <message> + <location/> + <source>element %1 exists twice with different types</source> + <translation type="obsolete">element %1 obstaja dvakrat, z različnima vrstama</translation> + </message> + <message> + <location/> + <source>can not process unknown element %1, expected elements are: %2</source> + <translation type="obsolete">ni moč obdelati neznanega elementa %1, pričakovani elementi so: %2</translation> + </message> + <message> + <location/> + <source>element %1 is not allowed in this scope, possible elements are: %2</source> + <translation type="obsolete">element %1 v tem obsegu ni dovoljen, možni elementi so: %2</translation> + </message> + <message> + <location/> + <source>child element is missing in that scope, possible child elements are: %1</source> + <translation type="obsolete">v tem obsegu manjka podelement, možni podelementi so: %1</translation> + </message> + <message> + <location/> + <source>document is not a XML schema</source> + <translation type="obsolete">dokument ni shema XML</translation> + </message> + <message> + <location/> + <source>%1 attribute of %2 element contains invalid content: {%3} is not a value of type %4</source> + <translation type="obsolete">lastnost %1 elementa %2 vsebuje neveljavno vsebino: {%3} ni vrednost vrste %4</translation> + </message> + <message> + <location/> + <source>%1 attribute of %2 element contains invalid content: {%3}</source> + <translation type="obsolete">lastnost %1 elementa %2 vsebuje neveljavno vsebino: {%3}</translation> + </message> + <message> + <location/> + <source>%1 element is not allowed inside %2 element if %3 attribute is present</source> + <translation type="obsolete">element %1 znotraj elementa %2 ni dovoljen, če je prisotna lastnost %3</translation> + </message> + <message> + <location/> + <source>%1 element has neither %2 attribute nor %3 child element</source> + <translation type="obsolete">element %1 nima niti lastnosti %2 niti podelementa %3</translation> + </message> + <message> + <location/> + <source>%1 element with %2 child element must not have a %3 attribute</source> + <translation type="obsolete">element %1 s podelementom %2 ne sme imeti lastnosti %3</translation> + </message> + <message> + <location/> + <source>%1 attribute of %2 element must be %3 or %4</source> + <translation type="obsolete">lastnost %1 elementa %2 mora biti %3 ali %4</translation> + </message> + <message> + <location/> + <source>%1 attribute of %2 element must have a value of %3</source> + <translation type="obsolete">lastnost %1 elementa %2 mora imeti vrednost %3</translation> + </message> + <message> + <location/> + <source>%1 attribute of %2 element must have a value of %3 or %4</source> + <translation type="obsolete">lastnost %1 elementa %2 mora imeti vrednost %3 ali %4</translation> + </message> + <message> + <location/> + <source>%1 element must not have %2 and %3 attribute together</source> + <translation type="obsolete">element %1 hkrati ne sme imeti lastnosti %2 in %3</translation> + </message> + <message> + <location/> + <source>content of %1 attribute of %2 element must not be from namespace %3</source> + <translation type="obsolete">vsebina lastnosti %1 elementa %2 ne sme biti iz imenskega prostora %3</translation> + </message> + <message> + <location/> + <source>%1 attribute of %2 element must not be %3</source> + <translation type="obsolete">lastnost %1 elementa %2 ne sme biti %3</translation> + </message> + <message> + <location/> + <source>%1 element must have either %2 or %3 attribute</source> + <translation type="obsolete">element %1 mora imeti lastnost %2 ali %3</translation> + </message> + <message> + <location/> + <source>%1 element requires either %2 or %3 attribute</source> + <translation type="obsolete">element %1 potrebuje vsaj lastnost %2 ali %3</translation> + </message> + <message> + <location/> + <source>%1 element is not allowed in this context</source> + <translation type="obsolete">element %1 v tem kontekstu ni dovoljen</translation> + </message> + <message> + <location/> + <source>component with id %1 has been defined previously</source> + <translation type="obsolete">komponenta z ID-jem %1 je že bila definirana</translation> + </message> + <message> + <location/> + <source>element %1 already defined</source> + <translation type="obsolete">element %1 je že definiran</translation> + </message> + <message> + <location/> + <source>attribute %1 already defined</source> + <translation type="obsolete">lastnost %1 je že definirana</translation> + </message> + <message> + <location/> + <source>type %1 already defined</source> + <translation type="obsolete">vrsta %1 je že definirana</translation> + </message> + <message> + <location/> + <source>attribute group %1 already defined</source> + <translation type="obsolete">skupina lastnosti %1 je že definirana</translation> + </message> + <message> + <location/> + <source>element group %1 already defined</source> + <translation type="obsolete">skupina elementov %1 je že definirana</translation> + </message> + <message> + <location/> + <source>notation %1 already defined</source> + <translation type="obsolete">zapis %1 je že definiran</translation> + </message> + <message> + <location/> + <source>type of %1 element must be a simple type, %2 is not</source> + <translation type="obsolete">vrsta elementa %1 mora biti preprosta, %2 to ni</translation> + </message> + <message> + <location/> + <source>duplicated element names %1 in %2 element</source> + <translation type="obsolete">podvojeni imeni elementov %1 v elementu %2</translation> + </message> + <message> + <location/> + <source>%1 is not valid according to %2</source> + <translation type="obsolete">%1 glede na %2 ni veljaven</translation> + </message> + <message> + <location/> + <source>invalid QName content: %1</source> + <translation type="obsolete">neveljavna vsebina QName: %1</translation> + </message> + <message> + <location/> + <source>data of type %1 are not allowed to be empty</source> + <translation type="obsolete">podatki vrste %1 ne smejo biti prazni</translation> + </message> + <message> + <location/> + <source>element %1 is missing child element</source> + <translation type="obsolete">elementu %1 manjka podelement</translation> + </message> + <message> + <location/> + <source>%1 contains invalid data</source> + <translation type="obsolete">%1 vsebuje neveljavne podatke</translation> + </message> + <message> + <location/> + <source>no definition for element %1 available</source> + <translation type="obsolete">definicija za element %1 ni na voljo</translation> + </message> + <message> + <location/> + <source>element %1 is not defined in this scope</source> + <translation type="obsolete">element %1 v tem obsegu ni definiran</translation> + </message> + <message> + <location/> + <source>declaration for element %1 does not exist</source> + <translation type="obsolete">deklaracija elementa %1 ne obstaja</translation> + </message> + <message> + <location/> + <source>element %1 contains invalid content</source> + <translation type="obsolete">element %1 vsebuje neveljavno vsebino</translation> + </message> + <message> + <location/> + <source>element %1 is declared as abstract</source> + <translation type="obsolete">element %1 je deklariran kot abstrakten</translation> + </message> + <message> + <location/> + <source>complex type %1 is not allowed to be abstract</source> + <translation type="obsolete">kompleksna vrsta %1 ne sme biti abstraktna</translation> + </message> + <message> + <location/> + <source>element %1 contains not allowed attributes</source> + <translation type="obsolete">element %1 vsebuje nedovoljene lastnosti</translation> + </message> + <message> + <location/> + <source>element %1 contains not allowed child element</source> + <translation type="obsolete">element %1 vsebuje nedovoljen podelement</translation> + </message> + <message> + <location/> + <source>content of element %1 does not match its type definition: %2</source> + <translation type="obsolete">vsebina elementa %1 ne ustreza zanj določeni vrsti: %2</translation> + </message> + <message> + <location/> + <source>element %1 contains not allowed child content</source> + <translation type="obsolete">element %1 vsebuje nedovoljeno vsebino v podelementih</translation> + </message> + <message> + <location/> + <source>element %1 contains not allowed text content</source> + <translation type="obsolete">element %1 vsebuje nedovoljeno besedilno vsebino</translation> + </message> + <message> + <location/> + <source>element %1 can not contain other elements, as it has a fixed content</source> + <translation type="obsolete">element %1 ne more vsebovati drugih elementov, ker ima fiksno vsebino</translation> + </message> + <message> + <location/> + <source>element %1 is missing required attribute %2</source> + <translation type="obsolete">elementu %1 manjka obvezna lastnost %2</translation> + </message> + <message> + <location/> + <source>declaration for attribute %1 does not exist</source> + <translation type="obsolete">deklaracija lastnosti %1 ne obstaja</translation> + </message> + <message> + <location/> + <source>element %1 contains two attributes of type %2</source> + <translation type="obsolete">element %1 vsebuje dve lastnosti vrste %2</translation> + </message> + <message> + <location/> + <source>attribute %1 contains invalid content</source> + <translation type="obsolete">lastnost %1 vsebuje neveljavno vsebino</translation> + </message> + <message> + <location/> + <source>element %1 contains unknown attribute %2</source> + <translation type="obsolete">element %1 vsebuje neznano lastnost %2</translation> + </message> + <message> + <location/> + <source>more than one value found for field %1</source> + <translation type="obsolete">za polje %1 je bila najdena več kot ena vrednost</translation> + </message> + <message> + <location/> + <source>field %1 has no simple type</source> + <translation type="obsolete">polje %1 nima preproste vrste</translation> + </message> + <message> + <location/> + <source>ID value '%1' is not unique</source> + <translation type="obsolete">Vrednost ID »%1« ni edinstvena</translation> + </message> + <message> + <location/> <source>'%1' attribute contains invalid QName content: %2</source> - <translation>Lastnost »%1« vsebuje neveljavno vsebino QName: %2</translation> + <translation type="obsolete">Lastnost »%1« vsebuje neveljavno vsebino QName: %2</translation> </message> </context> </TS> diff --git a/util/scripts/make_qfeatures_dot_h b/util/scripts/make_qfeatures_dot_h index bdd68a3..23d88a3 100755 --- a/util/scripts/make_qfeatures_dot_h +++ b/util/scripts/make_qfeatures_dot_h @@ -175,6 +175,7 @@ print OUT * All features and their dependencies. * * This list is generated from $QTDIR/src/corelib/global/qfeatures.txt + * by $QTSRCDIR/util/scripts/make_qfeatures_dot_h */ '; |