summaryrefslogtreecommitdiff
path: root/2017
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2017-04-25 15:06:40 +0200
committerHarald Welte <laforge@gnumonks.org>2017-04-25 15:06:40 +0200
commitcec90c77924e749911ccba6abdd0e4a32b9904e1 (patch)
treef085e8404e07251a05f4d3e56ba9bd4215e5254d /2017
parent37304ea8d7f500aed5d00f47e4af694a42199628 (diff)
osmocon slides update
Diffstat (limited to '2017')
-rw-r--r--2017/bts_hardware-osmocon2017/bts_hardware.html4270
-rw-r--r--2017/open_source_mobilfunk-clt2017/running-foss-gsm.adoc2
-rw-r--r--2017/path_loss_link_budget-osmocon2017/path_loss_link_budget.html5039
-rw-r--r--2017/roadmap-osmocon2017/roadmap.html4448
-rw-r--r--2017/running_osmo_gsm-osmocon2017/Gsm_structures.svg15874
-rw-r--r--2017/running_osmo_gsm-osmocon2017/arch-sysmobts-allinone.dot27
-rw-r--r--2017/running_osmo_gsm-osmocon2017/arch-sysmobts.dot30
-rw-r--r--2017/running_osmo_gsm-osmocon2017/arch-usrp-allinone.dot30
-rw-r--r--2017/running_osmo_gsm-osmocon2017/arch-usrp.dot31
-rw-r--r--2017/running_osmo_gsm-osmocon2017/gprs_user_stack.svg1357
-rw-r--r--2017/running_osmo_gsm-osmocon2017/osmo-bts.svg342
-rw-r--r--2017/running_osmo_gsm-osmocon2017/osmocom-gprs.svg1191
-rw-r--r--2017/running_osmo_gsm-osmocon2017/osmocom-gsm.svg1980
-rw-r--r--2017/running_osmo_gsm-osmocon2017/running-osmo-gsm.adoc495
-rw-r--r--2017/running_osmo_gsm-osmocon2017/running-osmo-gsm.html5018
-rw-r--r--2017/welcome_intro-osmocon2017/welcome_intro.adoc8
-rw-r--r--2017/welcome_intro-osmocon2017/welcome_intro.html4205
17 files changed, 44344 insertions, 3 deletions
diff --git a/2017/bts_hardware-osmocon2017/bts_hardware.html b/2017/bts_hardware-osmocon2017/bts_hardware.html
new file mode 100644
index 0000000..5f0643f
--- /dev/null
+++ b/2017/bts_hardware-osmocon2017/bts_hardware.html
@@ -0,0 +1,4270 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+<head>
+<title>Osmocom BTS Hardware Support</title>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="copyright" content="Copyright &#169; 2017 by Harald Welte (License: CC-BY-SA)" />
+<meta name="generator" content="AsciiDoc 8.6.9" />
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overriden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+/* slidy.css
+
+ Copyright (c) 2005-2010 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+ W3C liability, trademark, document use and software licensing
+ rules apply, see:
+
+ http://www.w3.org/Consortium/Legal/copyright-documents
+ http://www.w3.org/Consortium/Legal/copyright-software
+*/
+
+/*
+ SJR: 2010-09-29: Modified for AsciiDoc slidy backend.
+ Mostly just commented out stuff that is handled by AsciiDoc's CSS files.
+*/
+
+body
+{
+ margin: 0 0 0 0;
+ padding: 0 0 0 0;
+ width: 100%;
+ height: 100%;
+ color: black;
+ background-color: white;
+/*
+ font-family: "Gill Sans MT", "Gill Sans", GillSans, sans-serif;
+*/
+ font-size: 14pt;
+}
+
+div.toolbar {
+ position: fixed; z-index: 200;
+ top: auto; bottom: 0; left: 0; right: 0;
+ height: 1.2em; text-align: right;
+ padding-left: 1em;
+ padding-right: 1em;
+ font-size: 60%;
+ color: red;
+ background-color: rgb(240,240,240);
+ border-top: solid 1px rgb(180,180,180);
+}
+
+div.toolbar span.copyright {
+ color: black;
+ margin-left: 0.5em;
+}
+
+div.initial_prompt {
+ position: absolute;
+ z-index: 1000;
+ bottom: 1.2em;
+ width: 90%;
+ background-color: rgb(200,200,200);
+ opacity: 0.35;
+ background-color: rgb(200,200,200, 0.35);
+ cursor: pointer;
+}
+
+div.initial_prompt p.help {
+ text-align: center;
+}
+
+div.initial_prompt p.close {
+ text-align: right;
+ font-style: italic;
+}
+
+div.slidy_toc {
+ position: absolute;
+ z-index: 300;
+ width: 60%;
+ max-width: 30em;
+ height: 30em;
+ overflow: auto;
+ top: auto;
+ right: auto;
+ left: 4em;
+ bottom: 4em;
+ padding: 1em;
+ background: rgb(240,240,240);
+ border-style: solid;
+ border-width: 2px;
+ font-size: 60%;
+}
+
+div.slidy_toc .toc_heading {
+ text-align: center;
+ width: 100%;
+ margin: 0;
+ margin-bottom: 1em;
+ border-bottom-style: solid;
+ border-bottom-color: rgb(180,180,180);
+ border-bottom-width: 1px;
+}
+
+div.slide {
+ z-index: 20;
+ margin: 0 0 0 0;
+ padding-top: 0;
+ padding-bottom: 0;
+ padding-left: 20px;
+ padding-right: 20px;
+ border-width: 0;
+ clear: both;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ line-height: 120%;
+ background-color: transparent;
+}
+
+div.background {
+ display: none;
+}
+
+div.handout {
+ margin-left: 20px;
+ margin-right: 20px;
+}
+
+div.slide.titlepage {
+ text-align: center;
+}
+
+div.slide.titlepage.h1 {
+ padding-top: 10%;
+}
+
+div.slide h1 {
+ padding-left: 0;
+ padding-right: 20pt;
+ padding-top: 4pt;
+ padding-bottom: 4pt;
+ margin-top: 0;
+ margin-left: 0;
+ margin-right: 60pt;
+ margin-bottom: 0.5em;
+ display: block;
+ font-size: 160%;
+ line-height: 1.2em;
+ background: transparent;
+}
+
+div.toc {
+ position: absolute;
+ top: auto;
+ bottom: 4em;
+ left: 4em;
+ right: auto;
+ width: 60%;
+ max-width: 30em;
+ height: 30em;
+ border: solid thin black;
+ padding: 1em;
+ background: rgb(240,240,240);
+ color: black;
+ z-index: 300;
+ overflow: auto;
+ display: block;
+ visibility: visible;
+}
+
+div.toc-heading {
+ width: 100%;
+ border-bottom: solid 1px rgb(180,180,180);
+ margin-bottom: 1em;
+ text-align: center;
+}
+
+/*
+pre {
+ font-size: 80%;
+ font-weight: bold;
+ line-height: 120%;
+ padding-top: 0.2em;
+ padding-bottom: 0.2em;
+ padding-left: 1em;
+ padding-right: 1em;
+ border-style: solid;
+ border-left-width: 1em;
+ border-top-width: thin;
+ border-right-width: thin;
+ border-bottom-width: thin;
+ border-color: #95ABD0;
+ color: #00428C;
+ background-color: #E4E5E7;
+}
+*/
+
+/*
+li pre { margin-left: 0; }
+
+blockquote { font-style: italic }
+
+img { background-color: transparent }
+
+p.copyright { font-size: smaller }
+*/
+
+.center { text-align: center }
+.footnote { font-size: smaller; margin-left: 2em; }
+
+/*
+a img { border-width: 0; border-style: none }
+*/
+
+a:visited { color: navy }
+a:link { color: navy }
+a:hover { color: red; text-decoration: underline }
+a:active { color: red; text-decoration: underline }
+
+a {text-decoration: none}
+.navbar a:link {color: white}
+.navbar a:visited {color: yellow}
+.navbar a:active {color: red}
+.navbar a:hover {color: red}
+
+/*
+ul { list-style-type: square; }
+ul ul { list-style-type: disc; }
+ul ul ul { list-style-type: circle; }
+ul ul ul ul { list-style-type: disc; }
+li { margin-left: 0.5em; margin-top: 0.5em; }
+li li { font-size: 85%; font-style: italic }
+li li li { font-size: 85%; font-style: normal }
+*/
+
+div dt
+{
+ margin-left: 0;
+ margin-top: 1em;
+ margin-bottom: 0.5em;
+ font-weight: bold;
+}
+div dd
+{
+ margin-left: 2em;
+ margin-bottom: 0.5em;
+}
+
+
+/*
+p,pre,ul,ol,blockquote,h2,h3,h4,h5,h6,dl,table {
+ margin-left: 1em;
+ margin-right: 1em;
+}
+*/
+
+p.subhead { font-weight: bold; margin-top: 2em; }
+
+.smaller { font-size: smaller }
+.bigger { font-size: 130% }
+
+/*
+td,th { padding: 0.2em }
+*/
+
+ul {
+ margin: 0.5em 1.5em 0.5em 1.5em;
+ padding: 0;
+}
+
+ol {
+ margin: 0.5em 1.5em 0.5em 1.5em;
+ padding: 0;
+}
+
+ul { list-style-type: square; }
+ul ul { list-style-type: disc; }
+ul ul ul { list-style-type: circle; }
+ul ul ul ul { list-style-type: disc; }
+
+/*
+ul li {
+ list-style: square;
+ margin: 0.1em 0em 0.6em 0;
+ padding: 0 0 0 0;
+ line-height: 140%;
+}
+
+ol li {
+ margin: 0.1em 0em 0.6em 1.5em;
+ padding: 0 0 0 0px;
+ line-height: 140%;
+ list-style-type: decimal;
+}
+
+li ul li {
+ font-size: 85%;
+ font-style: italic;
+ list-style-type: disc;
+ background: transparent;
+ padding: 0 0 0 0;
+}
+li li ul li {
+ font-size: 85%;
+ font-style: normal;
+ list-style-type: circle;
+ background: transparent;
+ padding: 0 0 0 0;
+}
+li li li ul li {
+ list-style-type: disc;
+ background: transparent;
+ padding: 0 0 0 0;
+}
+
+li ol li {
+ list-style-type: decimal;
+}
+
+
+li li ol li {
+ list-style-type: decimal;
+}
+*/
+
+/*
+ setting class="outline" on ol or ul makes it behave as an
+ ouline list where blocklevel content in li elements is
+ hidden by default and can be expanded or collapsed with
+ mouse click. Set class="expand" on li to override default
+*/
+
+ol.outline li:hover { cursor: pointer }
+ol.outline li.nofold:hover { cursor: default }
+
+ul.outline li:hover { cursor: pointer }
+ul.outline li.nofold:hover { cursor: default }
+
+ol.outline { list-style:decimal; }
+ol.outline ol { list-style-type:lower-alpha }
+
+ol.outline li.nofold {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/nofold-dim.gif) no-repeat 0px 0.5em;
+}
+ol.outline li.unfolded {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/fold-dim.gif) no-repeat 0px 0.5em;
+}
+ol.outline li.folded {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/unfold-dim.gif) no-repeat 0px 0.5em;
+}
+ol.outline li.unfolded:hover {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/fold.gif) no-repeat 0px 0.5em;
+}
+ol.outline li.folded:hover {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/unfold.gif) no-repeat 0px 0.5em;
+}
+
+ul.outline li.nofold {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/nofold-dim.gif) no-repeat 0px 0.5em;
+}
+ul.outline li.unfolded {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/fold-dim.gif) no-repeat 0px 0.5em;
+}
+ul.outline li.folded {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/unfold-dim.gif) no-repeat 0px 0.5em;
+}
+ul.outline li.unfolded:hover {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/fold.gif) no-repeat 0px 0.5em;
+}
+ul.outline li.folded:hover {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/unfold.gif) no-repeat 0px 0.5em;
+}
+
+/* for slides with class "title" in table of contents */
+a.titleslide { font-weight: bold; font-style: italic }
+
+/*
+ hide images for work around for save as bug
+ where browsers fail to save images used by CSS
+*/
+img.hidden { display: none; visibility: hidden }
+div.initial_prompt { display: none; visibility: hidden }
+
+ div.slide {
+ visibility: visible;
+ position: inherit;
+ }
+ div.handout {
+ border-top-style: solid;
+ border-top-width: thin;
+ border-top-color: black;
+ }
+
+@media screen {
+ .hidden { display: none; visibility: visible }
+
+ div.slide.hidden { display: block; visibility: visible }
+ div.handout.hidden { display: block; visibility: visible }
+ div.background { display: none; visibility: hidden }
+ body.single_slide div.initial_prompt { display: block; visibility: visible }
+ body.single_slide div.background { display: block; visibility: visible }
+ body.single_slide div.background.hidden { display: none; visibility: hidden }
+ body.single_slide .invisible { visibility: hidden }
+ body.single_slide .hidden { display: none; visibility: hidden }
+ body.single_slide div.slide { position: absolute }
+ body.single_slide div.handout { display: none; visibility: hidden }
+}
+
+@media print {
+ .hidden { display: block; visibility: visible }
+
+/*
+ div.slide pre { font-size: 60%; padding-left: 0.5em; }
+*/
+ div.toolbar { display: none; visibility: hidden; }
+ div.slidy_toc { display: none; visibility: hidden; }
+ div.background { display: none; visibility: hidden; }
+ div.slide { page-break-before: always }
+ /* :first-child isn't reliable for print media */
+ div.slide.first-slide { page-break-before: avoid }
+}
+
+
+/* SJR: AsciiDoc slidy backend tweaks */
+
+ol, ul {
+ margin: 0.8em 1.5em 0.8em 1.8em;
+}
+li > ul, li > ol {
+ margin-top: 0.5em;
+}
+
+.outline > li.folded,
+.outline > li.unfolded {
+ color: #527bbd;
+}
+ul > li{ color: #aaa; }
+ul > li > *, ol > li > * { color: black; }
+
+li {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+
+div.change_topic {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+div.change_topic h1 {
+ text-align: center;
+ border-bottom-width: 0px;
+}
+
+div.gimmick_right img {
+ float: right;
+}
+
+div.qanda ol {
+ list-style-type: none;
+}
+
+.monospaced, code, pre {
+ color: black;
+ font-weight: bold;
+}
+
+div.quoteblock, div.verseblock {
+ color: black;
+}
+
+em {
+ color: black;
+}
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+/* slidy.js
+
+ Copyright (c) 2005-2010 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+ W3C liability, trademark, document use and software licensing
+ rules apply, see:
+
+ http://www.w3.org/Consortium/Legal/copyright-documents
+ http://www.w3.org/Consortium/Legal/copyright-software
+*/
+
+// the slidy object implementation
+var w3c_slidy = {
+ // classify which kind of browser we're running under
+ ns_pos: (typeof window.pageYOffset!='undefined'),
+ khtml: ((navigator.userAgent).indexOf("KHTML") >= 0 ? true : false),
+ opera: ((navigator.userAgent).indexOf("Opera") >= 0 ? true : false),
+ ipad: ((navigator.userAgent).indexOf("iPad") >= 0 ? true : false),
+ iphone: ((navigator.userAgent).indexOf("iPhone") >= 0 ? true : false),
+ ie: (typeof document.all != "undefined" && !this.opera),
+ ie6: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 6") != -1),
+ ie7: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 7") != -1),
+ ie8: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 8") != -1),
+ ie9: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 9") != -1),
+ keyboardless: (this.ipad || this.iphone),
+
+ // are we running as XHTML? (doesn't work on Opera)
+ is_xhtml: /xml/.test(document.contentType),
+
+ slide_number: 0, // integer slide count: 0, 1, 2, ...
+ slide_number_element: null, // element containing slide number
+ slides: [], // set to array of slide div's
+ notes: [], // set to array of handout div's
+ backgrounds: [], // set to array of background div's
+ toolbar: null, // element containing toolbar
+ title: null, // document title
+ last_shown: null, // last incrementally shown item
+ eos: null, // span element for end of slide indicator
+ toc: null, // table of contents
+ outline: null, // outline element with the focus
+ selected_text_len: 0, // length of drag selection on document
+ view_all: 0, // 1 to view all slides + handouts
+ want_toolbar: true, // user preference to show/hide toolbar
+ mouse_click_enabled: true, // enables left click for next slide
+ scroll_hack: 0, // IE work around for position: fixed
+ disable_slide_click: false, // used by clicked anchors
+
+ lang: "en", // updated to language specified by html file
+
+ help_anchor: null, // used for keyboard focus hack in showToolbar()
+ help_page: "http://www.w3.org/Talks/Tools/Slidy2/help/help.html",
+ help_text: "Navigate with mouse click, space bar, Cursor Left/Right, " +
+ "or Pg Up and Pg Dn. Use S and B to change font size.",
+
+ size_index: 0,
+ size_adjustment: 0,
+ sizes: new Array("10pt", "12pt", "14pt", "16pt", "18pt", "20pt",
+ "22pt", "24pt", "26pt", "28pt", "30pt", "32pt"),
+
+ // needed for efficient resizing
+ last_width: 0,
+ last_height: 0,
+
+
+ // Needed for cross browser support for relative width/height on
+ // object elements. The work around is to save width/height attributes
+ // and then to recompute absolute width/height dimensions on resizing
+ objects: [],
+
+ // attach initialiation event handlers
+ set_up: function () {
+ var init = function() { w3c_slidy.init(); };
+ if (typeof window.addEventListener != "undefined")
+ window.addEventListener("load", init, false);
+ else
+ window.attachEvent("onload", init);
+ },
+
+ hide_slides: function () {
+ if (document.body && !w3c_slidy.initialized)
+ document.body.style.visibility = "hidden";
+ else
+ setTimeout(w3c_slidy.hide_slides, 50);
+ },
+
+ // hack to persuade IE to compute correct document height
+ // as needed for simulating fixed positioning of toolbar
+ ie_hack: function () {
+ window.resizeBy(0,-1);
+ window.resizeBy(0, 1);
+ },
+
+ init: function () {
+ //alert("slidy starting test 10");
+ document.body.style.visibility = "visible";
+ w3c_slidy_i18n.init();
+ this.add_toolbar();
+ this.wrap_implicit_slides();
+ this.collect_slides();
+ this.collect_notes();
+ this.collect_backgrounds();
+ this.objects = document.body.getElementsByTagName("object");
+ this.patch_anchors();
+ this.slide_number = this.find_slide_number(location.href);
+ window.offscreenbuffering = true;
+ this.size_adjustment = this.find_size_adjust();
+ this.time_left = this.find_duration();
+ this.hide_image_toolbar(); // suppress IE image toolbar popup
+ this.init_outliner(); // activate fold/unfold support
+ this.title = document.title;
+
+ // work around for opera bug
+ this.is_xhtml = (document.body.tagName == "BODY" ? false : true);
+
+ if (this.slides.length > 0)
+ {
+ var slide = this.slides[this.slide_number];
+
+ if (this.slide_number > 0)
+ {
+ this.set_visibility_all_incremental("visible");
+ this.last_shown = this.previous_incremental_item(null);
+ this.set_eos_status(true);
+ }
+ else
+ {
+ this.last_shown = null;
+ this.set_visibility_all_incremental("hidden");
+ this.set_eos_status(!this.next_incremental_item(this.last_shown));
+ }
+
+ this.set_location();
+ this.add_class(this.slides[0], "first-slide");
+ w3c_slidy.show_slide(slide);
+ }
+
+ this.toc = this.table_of_contents();
+
+ this.add_initial_prompt();
+
+ // bind event handlers without interfering with custom page scripts
+ // Tap events behave too weirdly to support clicks reliably on
+ // iPhone and iPad, so exclude these from click handler
+
+ if (!this.keyboardless)
+ this.add_listener(document.body, "click", this.mouse_button_click);
+
+ this.add_listener(document, "keydown", this.key_down);
+ this.add_listener(document, "keypress", this.key_press);
+ this.add_listener(window, "resize", this.resized);
+ this.add_listener(window, "scroll", this.scrolled);
+ this.add_listener(window, "unload", this.unloaded);
+
+ if (!document.body.onclick)
+ document.body.onclick = function () { };
+
+ this.single_slide_view();
+
+ //this.set_location();
+
+ this.resized();
+
+ if (this.ie7)
+ setTimeout(w3c_slidy.ie_hack, 100);
+
+ this.show_toolbar();
+
+ // for back button detection
+ setInterval(function () { w3c_slidy.check_location(); }, 200);
+ w3c_slidy.initialized = true;
+ },
+
+ // create div element with links to each slide
+ table_of_contents: function () {
+ var toc = this.create_element("div");
+ this.add_class(toc, "slidy_toc hidden");
+ //toc.setAttribute("tabindex", "0");
+
+ var heading = this.create_element("div");
+ this.add_class(heading, "toc-heading");
+ heading.innerHTML = "Table of Contents".localize();
+
+ toc.appendChild(heading);
+ var previous = null;
+
+ for (var i = 0; i < this.slides.length; ++i)
+ {
+ var title = this.has_class(this.slides[i], "title");
+ var num = document.createTextNode((i + 1) + ". ");
+
+ toc.appendChild(num);
+
+ var a = this.create_element("a");
+ a.setAttribute("href", "#(" + (i+1) + ")");
+
+ if (title)
+ this.add_class(a, "titleslide");
+
+ var name = document.createTextNode(this.slide_name(i));
+ a.appendChild(name);
+ a.onclick = w3c_slidy.toc_click;
+ a.onkeydown = w3c_slidy.toc_keydown;
+ a.previous = previous;
+
+ if (previous)
+ previous.next = a;
+
+ toc.appendChild(a);
+
+ if (i == 0)
+ toc.first = a;
+
+ if (i < this.slides.length - 1)
+ {
+ var br = this.create_element("br");
+ toc.appendChild(br);
+ }
+
+ previous = a;
+ }
+
+ toc.focus = function () {
+ if (this.first)
+ this.first.focus();
+ }
+
+ toc.onmouseup = w3c_slidy.mouse_button_up;
+
+ toc.onclick = function (e) {
+ e||(e=window.event);
+
+ if (w3c_slidy.selected_text_len <= 0)
+ w3c_slidy.hide_table_of_contents();
+
+ w3c_slidy.stop_propagation(e);
+
+ if (e.cancel != undefined)
+ e.cancel = true;
+
+ if (e.returnValue != undefined)
+ e.returnValue = false;
+
+ return false;
+ };
+
+ document.body.insertBefore(toc, document.body.firstChild);
+ return toc;
+ },
+
+ is_shown_toc: function () {
+ return !w3c_slidy.has_class(w3c_slidy.toc, "hidden");
+ },
+
+ show_table_of_contents: function () {
+ w3c_slidy.remove_class(w3c_slidy.toc, "hidden");
+ var toc = w3c_slidy.toc;
+ toc.focus();
+
+ if (w3c_slidy.ie7 && w3c_slidy.slide_number == 0)
+ setTimeout(w3c_slidy.ie_hack, 100);
+ },
+
+ hide_table_of_contents: function () {
+ w3c_slidy.add_class(w3c_slidy.toc, "hidden");
+
+ if (!w3c_slidy.opera)
+ w3c_slidy.help_anchor.focus();
+ },
+
+ toggle_table_of_contents: function () {
+ if (w3c_slidy.is_shown_toc())
+ w3c_slidy.hide_table_of_contents();
+ else
+ w3c_slidy.show_table_of_contents();
+ },
+
+ // called on clicking toc entry
+ toc_click: function (e) {
+ if (!e)
+ e = window.event;
+
+ var target = w3c_slidy.get_target(e);
+
+ if (target && target.nodeType == 1)
+ {
+ var uri = target.getAttribute("href");
+
+ if (uri)
+ {
+ //alert("going to " + uri);
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.slide_number = w3c_slidy.find_slide_number(uri);
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_location();
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+ w3c_slidy.show_slide(slide);
+ //target.focus();
+
+ try
+ {
+ if (!w3c_slidy.opera)
+ w3c_slidy.help_anchor.focus();
+ }
+ catch (e)
+ {
+ }
+ }
+ }
+
+ w3c_slidy.hide_table_of_contents(e);
+ if (w3c_slidy.ie7) w3c_slidy.ie_hack();
+ w3c_slidy.stop_propagation(e);
+ return w3c_slidy.cancel(e);
+ },
+
+ // called onkeydown for toc entry
+ toc_keydown: function (event) {
+ var key;
+
+ if (!event)
+ var event = window.event;
+
+ // kludge around NS/IE differences
+ if (window.event)
+ key = window.event.keyCode;
+ else if (event.which)
+ key = event.which;
+ else
+ return true; // Yikes! unknown browser
+
+ // ignore event if key value is zero
+ // as for alt on Opera and Konqueror
+ if (!key)
+ return true;
+
+ // check for concurrent control/command/alt key
+ // but are these only present on mouse events?
+
+ if (event.ctrlKey || event.altKey)
+ return true;
+
+ if (key == 13)
+ {
+ var uri = this.getAttribute("href");
+
+ if (uri)
+ {
+ //alert("going to " + uri);
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.slide_number = w3c_slidy.find_slide_number(uri);
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_location();
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+ w3c_slidy.show_slide(slide);
+ //target.focus();
+
+ try
+ {
+ if (!w3c_slidy.opera)
+ w3c_slidy.help_anchor.focus();
+ }
+ catch (e)
+ {
+ }
+ }
+
+ w3c_slidy.hide_table_of_contents();
+
+ if (self.ie7)
+ w3c_slidy.ie_hack();
+
+ return w3c_slidy.cancel(event);
+ }
+
+ if (key == 40 && this.next)
+ {
+ this.next.focus();
+ return w3c_slidy.cancel(event);
+ }
+
+ if (key == 38 && this.previous)
+ {
+ this.previous.focus();
+ return w3c_slidy.cancel(event);
+ }
+
+ return true;
+ },
+
+
+ // ### OBSOLETE ###
+ before_print: function () {
+ this.show_all_slides();
+ this.hide_toolbar();
+ alert("before print");
+ },
+
+ // ### OBSOLETE ###
+ after_print: function () {
+ if (!this.view_all)
+ {
+ this.single_slide_view();
+ this.show_toolbar();
+ }
+ alert("after print");
+ },
+
+ // ### OBSOLETE ###
+ print_slides: function () {
+ this.before_print();
+ window.print();
+ this.after_print();
+ },
+
+ // ### OBSOLETE ?? ###
+ toggle_view: function () {
+ if (this.view_all)
+ {
+ this.single_slide_view();
+ this.show_toolbar();
+ this.view_all = 0;
+ }
+ else
+ {
+ this.show_all_slides();
+ this.hide_toolbar();
+ this.view_all = 1;
+ }
+ },
+
+ // prepare for printing ### OBSOLETE ###
+ show_all_slides: function () {
+ this.remove_class(document.body, "single_slide");
+ this.set_visibility_all_incremental("visible");
+ },
+
+ // restore after printing ### OBSOLETE ###
+ single_slide_view: function () {
+ this.add_class(document.body, "single_slide");
+ this.set_visibility_all_incremental("visible");
+ this.last_shown = this.previous_incremental_item(null);
+ },
+
+ // suppress IE's image toolbar pop up
+ hide_image_toolbar: function () {
+ if (!this.ns_pos)
+ {
+ var images = document.getElementsByTagName("IMG");
+
+ for (var i = 0; i < images.length; ++i)
+ images[i].setAttribute("galleryimg", "no");
+ }
+ },
+
+ unloaded: function (e) {
+ //alert("unloaded");
+ },
+
+ // Safari and Konqueror don't yet support getComputedStyle()
+ // and they always reload page when location.href is updated
+ is_KHTML: function () {
+ var agent = navigator.userAgent;
+ return (agent.indexOf("KHTML") >= 0 ? true : false);
+ },
+
+ // find slide name from first h1 element
+ // default to document title + slide number
+ slide_name: function (index) {
+ var name = null;
+ var slide = this.slides[index];
+
+ var heading = this.find_heading(slide);
+
+ if (heading)
+ name = this.extract_text(heading);
+
+ if (!name)
+ name = this.title + "(" + (index + 1) + ")";
+
+ name.replace(/\&/g, "&amp;");
+ name.replace(/\</g, "&lt;");
+ name.replace(/\>/g, "&gt;");
+
+ return name;
+ },
+
+ // find first h1 element in DOM tree
+ find_heading: function (node) {
+ if (!node || node.nodeType != 1)
+ return null;
+
+ if (node.nodeName == "H1" || node.nodeName == "h1")
+ return node;
+
+ var child = node.firstChild;
+
+ while (child)
+ {
+ node = this.find_heading(child);
+
+ if (node)
+ return node;
+
+ child = child.nextSibling;
+ }
+
+ return null;
+ },
+
+ // recursively extract text from DOM tree
+ extract_text: function (node) {
+ if (!node)
+ return "";
+
+ // text nodes
+ if (node.nodeType == 3)
+ return node.nodeValue;
+
+ // elements
+ if (node.nodeType == 1)
+ {
+ node = node.firstChild;
+ var text = "";
+
+ while (node)
+ {
+ text = text + this.extract_text(node);
+ node = node.nextSibling;
+ }
+
+ return text;
+ }
+
+ return "";
+ },
+
+ // find copyright text from meta element
+ find_copyright: function () {
+ var name, content;
+ var meta = document.getElementsByTagName("meta");
+
+ for (var i = 0; i < meta.length; ++i)
+ {
+ name = meta[i].getAttribute("name");
+ content = meta[i].getAttribute("content");
+
+ if (name == "copyright")
+ return content;
+ }
+
+ return null;
+ },
+
+ find_size_adjust: function () {
+ var name, content, offset;
+ var meta = document.getElementsByTagName("meta");
+
+ for (var i = 0; i < meta.length; ++i)
+ {
+ name = meta[i].getAttribute("name");
+ content = meta[i].getAttribute("content");
+
+ if (name == "font-size-adjustment")
+ return 1 * content;
+ }
+
+ return 1;
+ },
+
+ // <meta name="duration" content="20" /> for 20 minutes
+ find_duration: function () {
+ var name, content, offset;
+ var meta = document.getElementsByTagName("meta");
+
+ for (var i = 0; i < meta.length; ++i)
+ {
+ name = meta[i].getAttribute("name");
+ content = meta[i].getAttribute("content");
+
+ if (name == "duration")
+ return 60000 * content;
+ }
+
+ return null;
+ },
+
+ replace_by_non_breaking_space: function (str) {
+ for (var i = 0; i < str.length; ++i)
+ str[i] = 160;
+ },
+
+ // ### CHECK ME ### is use of "li" okay for text/html?
+ // for XHTML do we also need to specify namespace?
+ init_outliner: function () {
+ var items = document.getElementsByTagName("li");
+
+ for (var i = 0; i < items.length; ++i)
+ {
+ var target = items[i];
+
+ if (!this.has_class(target.parentNode, "outline"))
+ continue;
+
+ target.onclick = this.outline_click;
+/* ### more work needed for IE6
+ if (!this.ns_pos)
+ {
+ target.onmouseover = this.hover_outline;
+ target.onmouseout = this.unhover_outline;
+ }
+*/
+ if (this.foldable(target))
+ {
+ target.foldable = true;
+ target.onfocus = function () {w3c_slidy.outline = this;};
+ target.onblur = function () {w3c_slidy.outline = null;};
+
+ if (!target.getAttribute("tabindex"))
+ target.setAttribute("tabindex", "0");
+
+ if (this.has_class(target, "expand"))
+ this.unfold(target);
+ else
+ this.fold(target);
+ }
+ else
+ {
+ this.add_class(target, "nofold");
+ target.visible = true;
+ target.foldable = false;
+ }
+ }
+ },
+
+ foldable: function (item) {
+ if (!item || item.nodeType != 1)
+ return false;
+
+ var node = item.firstChild;
+
+ while (node)
+ {
+ if (node.nodeType == 1 && this.is_block(node))
+ return true;
+
+ node = node.nextSibling;
+ }
+
+ return false;
+ },
+
+ // ### CHECK ME ### switch to add/remove "hidden" class
+ fold: function (item) {
+ if (item)
+ {
+ this.remove_class(item, "unfolded");
+ this.add_class(item, "folded");
+ }
+
+ var node = item ? item.firstChild : null;
+
+ while (node)
+ {
+ if (node.nodeType == 1 && this.is_block(node)) // element
+ {
+ w3c_slidy.add_class(node, "hidden");
+ }
+
+ node = node.nextSibling;
+ }
+
+ item.visible = false;
+ },
+
+ // ### CHECK ME ### switch to add/remove "hidden" class
+ unfold: function (item) {
+ if (item)
+ {
+ this.add_class(item, "unfolded");
+ this.remove_class(item, "folded");
+ }
+
+ var node = item ? item.firstChild : null;
+
+ while (node)
+ {
+ if (node.nodeType == 1 && this.is_block(node)) // element
+ {
+ w3c_slidy.remove_class(node, "hidden");
+ }
+
+ node = node.nextSibling;
+ }
+
+ item.visible = true;
+ },
+
+ outline_click: function (e) {
+ if (!e)
+ e = window.event;
+
+ var rightclick = false;
+ var target = w3c_slidy.get_target(e);
+
+ while (target && target.visible == undefined)
+ target = target.parentNode;
+
+ if (!target)
+ return true;
+
+ if (e.which)
+ rightclick = (e.which == 3);
+ else if (e.button)
+ rightclick = (e.button == 2);
+
+ if (!rightclick && target.visible != undefined)
+ {
+ if (target.foldable)
+ {
+ if (target.visible)
+ w3c_slidy.fold(target);
+ else
+ w3c_slidy.unfold(target);
+ }
+
+ w3c_slidy.stop_propagation(e);
+ e.cancel = true;
+ e.returnValue = false;
+ }
+
+ return false;
+ },
+
+ add_initial_prompt: function () {
+ var prompt = this.create_element("div");
+ prompt.setAttribute("class", "initial_prompt");
+
+ var p1 = this.create_element("p");
+ prompt.appendChild(p1);
+ p1.setAttribute("class", "help");
+
+ if (this.keyboardless)
+ p1.innerHTML = "Tap footer to move to next slide";
+ else
+ p1.innerHTML = "Space or Right Arrow to move to next " +
+ "slide, click help below for more details";
+
+ this.add_listener(prompt, "click", function (e) {
+ document.body.removeChild(prompt);
+ w3c_slidy.stop_propagation(e);
+
+ if (e.cancel != undefined)
+ e.cancel = true;
+
+ if (e.returnValue != undefined)
+ e.returnValue = false;
+
+ return false;
+ });
+
+ document.body.appendChild(prompt);
+ this.initial_prompt = prompt;
+ setTimeout(function() {document.body.removeChild(prompt);}, 5000);
+ },
+
+ add_toolbar: function () {
+ var counter, page;
+
+ this.toolbar = this.create_element("div");
+ this.toolbar.setAttribute("class", "toolbar");
+
+ // a reasonably behaved browser
+ if (this.ns_pos || !this.ie6)
+ {
+ var right = this.create_element("div");
+ right.setAttribute("style", "float: right; text-align: right");
+
+ counter = this.create_element("span")
+ counter.innerHTML = "slide".localize() + " n/m";
+ right.appendChild(counter);
+ this.toolbar.appendChild(right);
+
+ var left = this.create_element("div");
+ left.setAttribute("style", "text-align: left");
+
+ // global end of slide indicator
+ this.eos = this.create_element("span");
+ this.eos.innerHTML = "* ";
+ left.appendChild(this.eos);
+
+ var help = this.create_element("a");
+ help.setAttribute("href", this.help_page);
+ help.setAttribute("title", this.help_text.localize());
+ help.innerHTML = "help?".localize();
+ left.appendChild(help);
+ this.help_anchor = help; // save for focus hack
+
+ var gap1 = document.createTextNode(" ");
+ left.appendChild(gap1);
+
+ var contents = this.create_element("a");
+ contents.setAttribute("href", "javascript:w3c_slidy.toggle_table_of_contents()");
+ contents.setAttribute("title", "table of contents".localize());
+ contents.innerHTML = "contents?".localize();
+ left.appendChild(contents);
+
+ var gap2 = document.createTextNode(" ");
+ left.appendChild(gap2);
+
+ var copyright = this.find_copyright();
+
+ if (copyright)
+ {
+ var span = this.create_element("span");
+ span.className = "copyright";
+ span.innerHTML = copyright;
+ left.appendChild(span);
+ }
+
+ this.toolbar.setAttribute("tabindex", "0");
+ this.toolbar.appendChild(left);
+ }
+ else // IE6 so need to work around its poor CSS support
+ {
+ this.toolbar.style.position = (this.ie7 ? "fixed" : "absolute");
+ this.toolbar.style.zIndex = "200";
+ this.toolbar.style.width = "99.9%";
+ this.toolbar.style.height = "1.2em";
+ this.toolbar.style.top = "auto";
+ this.toolbar.style.bottom = "0";
+ this.toolbar.style.left = "0";
+ this.toolbar.style.right = "0";
+ this.toolbar.style.textAlign = "left";
+ this.toolbar.style.fontSize = "60%";
+ this.toolbar.style.color = "red";
+ this.toolbar.borderWidth = 0;
+ this.toolbar.className = "toolbar";
+ this.toolbar.style.background = "rgb(240,240,240)";
+
+ // would like to have help text left aligned
+ // and page counter right aligned, floating
+ // div's don't work, so instead use nested
+ // absolutely positioned div's.
+
+ var sp = this.create_element("span");
+ sp.innerHTML = "&nbsp;&nbsp;*&nbsp;";
+ this.toolbar.appendChild(sp);
+ this.eos = sp; // end of slide indicator
+
+ var help = this.create_element("a");
+ help.setAttribute("href", this.help_page);
+ help.setAttribute("title", this.help_text.localize());
+ help.innerHTML = "help?".localize();
+ this.toolbar.appendChild(help);
+ this.help_anchor = help; // save for focus hack
+
+ var gap1 = document.createTextNode(" ");
+ this.toolbar.appendChild(gap1);
+
+ var contents = this.create_element("a");
+ contents.setAttribute("href", "javascript:toggleTableOfContents()");
+ contents.setAttribute("title", "table of contents".localize());
+ contents.innerHTML = "contents?".localize();
+ this.toolbar.appendChild(contents);
+
+ var gap2 = document.createTextNode(" ");
+ this.toolbar.appendChild(gap2);
+
+ var copyright = this.find_copyright();
+
+ if (copyright)
+ {
+ var span = this.create_element("span");
+ span.innerHTML = copyright;
+ span.style.color = "black";
+ span.style.marginLeft = "0.5em";
+ this.toolbar.appendChild(span);
+ }
+
+ counter = this.create_element("div")
+ counter.style.position = "absolute";
+ counter.style.width = "auto"; //"20%";
+ counter.style.height = "1.2em";
+ counter.style.top = "auto";
+ counter.style.bottom = 0;
+ counter.style.right = "0";
+ counter.style.textAlign = "right";
+ counter.style.color = "red";
+ counter.style.background = "rgb(240,240,240)";
+
+ counter.innerHTML = "slide".localize() + " n/m";
+ this.toolbar.appendChild(counter);
+ }
+
+ // ensure that click isn't passed through to the page
+ this.toolbar.onclick =
+ function (e) {
+ if (!e)
+ e = window.event;
+
+ var target = e.target;
+
+ if (!target && e.srcElement)
+ target = e.srcElement;
+
+ // work around Safari bug
+ if (target && target.nodeType == 3)
+ target = target.parentNode;
+
+ w3c_slidy.stop_propagation(e);
+
+ if (target && target.nodeName.toLowerCase() != "a")
+ w3c_slidy.mouse_button_click(e);
+ };
+
+ this.slide_number_element = counter;
+ this.set_eos_status(false);
+ document.body.appendChild(this.toolbar);
+ },
+
+ // wysiwyg editors make it hard to use div elements
+ // e.g. amaya loses the div when you copy and paste
+ // this function wraps div elements around implicit
+ // slides which start with an h1 element and continue
+ // up to the next heading or div element
+ wrap_implicit_slides: function () {
+ var i, heading, node, next, div;
+ var headings = document.getElementsByTagName("h1");
+
+ if (!headings)
+ return;
+
+ for (i = 0; i < headings.length; ++i)
+ {
+ heading = headings[i];
+
+ if (heading.parentNode != document.body)
+ continue;
+
+ node = heading.nextSibling;
+
+ div = document.createElement("div");
+ this.add_class(div, "slide");
+ document.body.replaceChild(div, heading);
+ div.appendChild(heading);
+
+ while (node)
+ {
+ if (node.nodeType == 1 && // an element
+ (node.nodeName == "H1" ||
+ node.nodeName == "h1" ||
+ node.nodeName == "DIV" ||
+ node.nodeName == "div"))
+ break;
+
+ next = node.nextSibling;
+ node = document.body.removeChild(node);
+ div.appendChild(node);
+ node = next;
+ }
+ }
+ },
+
+// return new array of all slides
+ collect_slides: function () {
+ var slides = new Array();
+ var divs = document.body.getElementsByTagName("div");
+
+ for (var i = 0; i < divs.length; ++i)
+ {
+ div = divs.item(i);
+
+ if (this.has_class(div, "slide"))
+ {
+ // add slide to collection
+ slides[slides.length] = div;
+
+ // hide each slide as it is found
+ this.add_class(div, "hidden");
+
+ // add dummy <br/> at end for scrolling hack
+ var node1 = document.createElement("br");
+ div.appendChild(node1);
+ var node2 = document.createElement("br");
+ div.appendChild(node2);
+ }
+ else if (this.has_class(div, "background"))
+ { // work around for Firefox SVG reload bug
+ // which otherwise replaces 1st SVG graphic with 2nd
+ div.style.display = "block";
+ }
+ }
+
+ this.slides = slides;
+ },
+
+ // return new array of all <div class="handout">
+ collect_notes: function () {
+ var notes = new Array();
+ var divs = document.body.getElementsByTagName("div");
+
+ for (var i = 0; i < divs.length; ++i)
+ {
+ div = divs.item(i);
+
+ if (this.has_class(div, "handout"))
+ {
+ // add note to collection
+ notes[notes.length] = div;
+
+ // and hide it
+ this.add_class(div, "hidden");
+ }
+ }
+
+ this.notes = notes;
+ },
+
+ // return new array of all <div class="background">
+ // including named backgrounds e.g. class="background titlepage"
+ collect_backgrounds: function () {
+ var backgrounds = new Array();
+ var divs = document.body.getElementsByTagName("div");
+
+ for (var i = 0; i < divs.length; ++i)
+ {
+ div = divs.item(i);
+
+ if (this.has_class(div, "background"))
+ {
+ // add background to collection
+ backgrounds[backgrounds.length] = div;
+
+ // and hide it
+ this.add_class(div, "hidden");
+ }
+ }
+
+ this.backgrounds = backgrounds;
+ },
+
+ // set click handlers on all anchors
+ patch_anchors: function () {
+ var self = w3c_slidy;
+ var handler = function (event) {
+ // compare this.href with location.href
+ // for link to another slide in this doc
+
+ if (self.page_address(this.href) == self.page_address(location.href))
+ {
+ // yes, so find new slide number
+ var newslidenum = self.find_slide_number(this.href);
+
+ if (newslidenum != self.slide_number)
+ {
+ var slide = self.slides[self.slide_number];
+ self.hide_slide(slide);
+ self.slide_number = newslidenum;
+ slide = self.slides[self.slide_number];
+ self.show_slide(slide);
+ self.set_location();
+ }
+ }
+ else if (this.target == null)
+ location.href = this.href;
+
+ this.blur();
+ self.disable_slide_click = true;
+ };
+
+ var anchors = document.body.getElementsByTagName("a");
+
+ for (var i = 0; i < anchors.length; ++i)
+ {
+ if (window.addEventListener)
+ anchors[i].addEventListener("click", handler, false);
+ else
+ anchors[i].attachEvent("onclick", handler);
+ }
+ },
+
+ // ### CHECK ME ### see which functions are invoked via setTimeout
+ // either directly or indirectly for use of w3c_slidy vs this
+ show_slide_number: function () {
+ var timer = w3c_slidy.get_timer();
+ w3c_slidy.slide_number_element.innerHTML = timer + "slide".localize() + " " +
+ (w3c_slidy.slide_number + 1) + "/" + w3c_slidy.slides.length;
+ },
+
+ // every 200mS check if the location has been changed as a
+ // result of the user activating the Back button/menu item
+ // doesn't work for Opera < 9.5
+ check_location: function () {
+ var hash = location.hash;
+
+ if (w3c_slidy.slide_number > 0 && (hash == "" || hash == "#"))
+ w3c_slidy.goto_slide(0);
+ else if (hash.length > 2 && hash != "#("+(w3c_slidy.slide_number+1)+")")
+ {
+ var num = parseInt(location.hash.substr(2));
+
+ if (!isNaN(num))
+ w3c_slidy.goto_slide(num-1);
+ }
+
+ if (w3c_slidy.time_left && w3c_slidy.slide_number > 0)
+ {
+ w3c_slidy.show_slide_number();
+
+ if (w3c_slidy.time_left > 0)
+ w3c_slidy.time_left -= 200;
+ }
+ },
+
+ get_timer: function () {
+ var timer = "";
+ if (w3c_slidy.time_left)
+ {
+ var mins, secs;
+ secs = Math.floor(w3c_slidy.time_left/1000);
+ mins = Math.floor(secs / 60);
+ secs = secs % 60;
+ timer = (mins ? mins+"m" : "") + secs + "s ";
+ }
+
+ return timer;
+ },
+
+ // this doesn't push location onto history stack for IE
+ // for which a hidden iframe hack is needed: load page into
+ // the iframe with script that set's parent's location.hash
+ // but that won't work for standalone use unless we can
+ // create the page dynamically via a javascript: URL
+ set_location: function () {
+ var uri = w3c_slidy.page_address(location.href);
+ var hash = "#(" + (w3c_slidy.slide_number+1) + ")";
+
+ if (w3c_slidy.slide_number >= 0)
+ uri = uri + hash;
+
+ if (w3c_slidy.ie && !w3c_slidy.ie8)
+ w3c_slidy.push_hash(hash);
+
+ if (uri != location.href) // && !khtml
+ location.href = uri;
+
+ if (this.khtml)
+ hash = "(" + (w3c_slidy.slide_number+1) + ")";
+
+ if (!this.ie && location.hash != hash && location.hash != "")
+ location.hash = hash;
+
+ document.title = w3c_slidy.title + " (" + (w3c_slidy.slide_number+1) + ")";
+ w3c_slidy.show_slide_number();
+ },
+
+ page_address: function (uri) {
+ var i = uri.indexOf("#");
+
+ if (i < 0)
+ i = uri.indexOf("%23");
+
+ // check if anchor is entire page
+
+ if (i < 0)
+ return uri; // yes
+
+ return uri.substr(0, i);
+ },
+
+ // only used for IE6 and IE7
+ on_frame_loaded: function (hash) {
+ location.hash = hash;
+ var uri = w3c_slidy.page_address(location.href);
+ location.href = uri + hash;
+ },
+
+ // history hack with thanks to Bertrand Le Roy
+ push_hash: function (hash) {
+ if (hash == "") hash = "#(1)";
+ window.location.hash = hash;
+
+ var doc = document.getElementById("historyFrame").contentWindow.document;
+ doc.open("javascript:'<html></html>'");
+ // PWL modified this string literal to break the close script tag
+ // which otherwise gets parsed when incorporated
+ doc.write("<html><head><script type=\"text/javascript\">window.parent.w3c_slidy.on_frame_loaded('"+
+ (hash) + "');</" + "script></head><body>hello mum</body></html>");
+ doc.close();
+ },
+
+ // find current slide based upon location
+ // first find target anchor and then look
+ // for associated div element enclosing it
+ // finally map that to slide number
+ find_slide_number: function (uri) {
+ // first get anchor from page location
+
+ var i = uri.indexOf("#");
+
+ // check if anchor is entire page
+ if (i < 0)
+ return 0; // yes
+
+ var anchor = unescape(uri.substr(i+1));
+
+ // now use anchor as XML ID to find target
+ var target = document.getElementById(anchor);
+
+ if (!target)
+ {
+ // does anchor look like "(2)" for slide 2 ??
+ // where first slide is (1)
+ var re = /\((\d)+\)/;
+
+ if (anchor.match(re))
+ {
+ var num = parseInt(anchor.substring(1, anchor.length-1));
+
+ if (num > this.slides.length)
+ num = 1;
+
+ if (--num < 0)
+ num = 0;
+
+ return num;
+ }
+
+ // accept [2] for backwards compatibility
+ re = /\[(\d)+\]/;
+
+ if (anchor.match(re))
+ {
+ var num = parseInt(anchor.substring(1, anchor.length-1));
+
+ if (num > this.slides.length)
+ num = 1;
+
+ if (--num < 0)
+ num = 0;
+
+ return num;
+ }
+
+ // oh dear unknown anchor
+ return 0;
+ }
+
+ // search for enclosing slide
+
+ while (true)
+ {
+ // browser coerces html elements to uppercase!
+ if (target.nodeName.toLowerCase() == "div" &&
+ this.has_class(target, "slide"))
+ {
+ // found the slide element
+ break;
+ }
+
+ // otherwise try parent element if any
+
+ target = target.parentNode;
+
+ if (!target)
+ {
+ return 0; // no luck!
+ }
+ };
+
+ for (i = 0; i < slides.length; ++i)
+ {
+ if (slides[i] == target)
+ return i; // success
+ }
+
+ // oh dear still no luck
+ return 0;
+ },
+
+ previous_slide: function (incremental) {
+ if (!w3c_slidy.view_all)
+ {
+ var slide;
+
+ if ((incremental || w3c_slidy.slide_number == 0) && w3c_slidy.last_shown != null)
+ {
+ w3c_slidy.last_shown = w3c_slidy.hide_previous_item(w3c_slidy.last_shown);
+ w3c_slidy.set_eos_status(false);
+ }
+ else if (w3c_slidy.slide_number > 0)
+ {
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+
+ w3c_slidy.slide_number = w3c_slidy.slide_number - 1;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.set_visibility_all_incremental("visible");
+ w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);
+ w3c_slidy.set_eos_status(true);
+ w3c_slidy.show_slide(slide);
+ }
+
+ w3c_slidy.set_location();
+
+ if (!w3c_slidy.ns_pos)
+ w3c_slidy.refresh_toolbar(200);
+ }
+ },
+
+ next_slide: function (incremental) {
+ if (!w3c_slidy.view_all)
+ {
+ var slide, last = w3c_slidy.last_shown;
+
+ if (incremental || w3c_slidy.slide_number == w3c_slidy.slides.length - 1)
+ w3c_slidy.last_shown = w3c_slidy.reveal_next_item(w3c_slidy.last_shown);
+
+ if ((!incremental || w3c_slidy.last_shown == null) &&
+ w3c_slidy.slide_number < w3c_slidy.slides.length - 1)
+ {
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+
+ w3c_slidy.slide_number = w3c_slidy.slide_number + 1;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.show_slide(slide);
+ }
+ else if (!w3c_slidy.last_shown)
+ {
+ if (last && incremental)
+ w3c_slidy.last_shown = last;
+ }
+
+ w3c_slidy.set_location();
+
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+
+ if (!w3c_slidy.ns_pos)
+ w3c_slidy.refresh_toolbar(200);
+ }
+ },
+
+ // to first slide with nothing revealed
+ // i.e. state at start of presentation
+ first_slide: function () {
+ if (!w3c_slidy.view_all)
+ {
+ var slide;
+
+ if (w3c_slidy.slide_number != 0)
+ {
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+
+ w3c_slidy.slide_number = 0;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.show_slide(slide);
+ }
+
+ w3c_slidy.set_eos_status(
+ !w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+ w3c_slidy.set_location();
+ }
+ },
+
+ // goto last slide with everything revealed
+ // i.e. state at end of presentation
+ last_slide: function () {
+ if (!w3c_slidy.view_all)
+ {
+ var slide;
+
+ w3c_slidy.last_shown = null; //revealNextItem(lastShown);
+
+ if (w3c_slidy.last_shown == null &&
+ w3c_slidy.slide_number < w3c_slidy.slides.length - 1)
+ {
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.slide_number = w3c_slidy.slides.length - 1;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.set_visibility_all_incremental("visible");
+ w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);
+
+ w3c_slidy.show_slide(slide);
+ }
+ else
+ {
+ w3c_slidy.set_visibility_all_incremental("visible");
+ w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);
+ }
+
+ w3c_slidy.set_eos_status(true);
+ w3c_slidy.set_location();
+ }
+ },
+
+
+ // ### check this and consider add/remove class
+ set_eos_status: function (state) {
+ if (this.eos)
+ this.eos.style.color = (state ? "rgb(240,240,240)" : "red");
+ },
+
+ // first slide is 0
+ goto_slide: function (num) {
+ //alert("going to slide " + (num+1));
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.slide_number = num;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+ document.title = w3c_slidy.title + " (" + (w3c_slidy.slide_number+1) + ")";
+ w3c_slidy.show_slide(slide);
+ w3c_slidy.show_slide_number();
+ },
+
+
+ show_slide: function (slide) {
+ this.sync_background(slide);
+ window.scrollTo(0,0);
+ this.remove_class(slide, "hidden");
+ },
+
+ hide_slide: function (slide) {
+ this.add_class(slide, "hidden");
+ },
+
+ // show just the backgrounds pertinent to this slide
+ // when slide background-color is transparent
+ // this should now work with rgba color values
+ sync_background: function (slide) {
+ var background;
+ var bgColor;
+
+ if (slide.currentStyle)
+ bgColor = slide.currentStyle["backgroundColor"];
+ else if (document.defaultView)
+ {
+ var styles = document.defaultView.getComputedStyle(slide,null);
+
+ if (styles)
+ bgColor = styles.getPropertyValue("background-color");
+ else // broken implementation probably due Safari or Konqueror
+ {
+ //alert("defective implementation of getComputedStyle()");
+ bgColor = "transparent";
+ }
+ }
+ else
+ bgColor == "transparent";
+
+ if (bgColor == "transparent" ||
+ bgColor.indexOf("rgba") >= 0 ||
+ bgColor.indexOf("opacity") >= 0)
+ {
+ var slideClass = this.get_class_list(slide);
+
+ for (var i = 0; i < this.backgrounds.length; i++)
+ {
+ background = this.backgrounds[i];
+
+ var bgClass = this.get_class_list(background);
+
+ if (this.matching_background(slideClass, bgClass))
+ this.remove_class(background, "hidden");
+ else
+ this.add_class(background, "hidden");
+ }
+ }
+ else // forcibly hide all backgrounds
+ this.hide_backgrounds();
+ },
+
+ hide_backgrounds: function () {
+ for (var i = 0; i < this.backgrounds.length; i++)
+ {
+ background = this.backgrounds[i];
+ this.add_class(background, "hidden");
+ }
+ },
+
+ // compare classes for slide and background
+ matching_background: function (slideClass, bgClass) {
+ var i, count, pattern, result;
+
+ // define pattern as regular expression
+ pattern = /\w+/g;
+
+ // check background class names
+ result = bgClass.match(pattern);
+
+ for (i = count = 0; i < result.length; i++)
+ {
+ if (result[i] == "hidden")
+ continue;
+
+ if (result[i] == "background")
+ continue;
+
+ ++count;
+ }
+
+ if (count == 0) // default match
+ return true;
+
+ // check for matches and place result in array
+ result = slideClass.match(pattern);
+
+ // now check if desired name is present for background
+ for (i = count = 0; i < result.length; i++)
+ {
+ if (result[i] == "hidden")
+ continue;
+
+ if (this.has_token(bgClass, result[i]))
+ return true;
+ }
+
+ return false;
+ },
+
+ resized: function () {
+ var width = 0;
+
+ if ( typeof( window.innerWidth ) == 'number' )
+ width = window.innerWidth; // Non IE browser
+ else if (document.documentElement && document.documentElement.clientWidth)
+ width = document.documentElement.clientWidth; // IE6
+ else if (document.body && document.body.clientWidth)
+ width = document.body.clientWidth; // IE4
+
+ var height = 0;
+
+ if ( typeof( window.innerHeight ) == 'number' )
+ height = window.innerHeight; // Non IE browser
+ else if (document.documentElement && document.documentElement.clientHeight)
+ height = document.documentElement.clientHeight; // IE6
+ else if (document.body && document.body.clientHeight)
+ height = document.body.clientHeight; // IE4
+
+ if (height && (width/height > 1.05*1024/768))
+ {
+ width = height * 1024.0/768;
+ }
+
+ // IE fires onresize even when only font size is changed!
+ // so we do a check to avoid blocking < and > actions
+ if (width != w3c_slidy.last_width || height != w3c_slidy.last_height)
+ {
+ if (width >= 1100)
+ w3c_slidy.size_index = 5; // 4
+ else if (width >= 1000)
+ w3c_slidy.size_index = 4; // 3
+ else if (width >= 800)
+ w3c_slidy.size_index = 3; // 2
+ else if (width >= 600)
+ w3c_slidy.size_index = 2; // 1
+ else if (width)
+ w3c_slidy.size_index = 0;
+
+ // add in font size adjustment from meta element e.g.
+ // <meta name="font-size-adjustment" content="-2" />
+ // useful when slides have too much content ;-)
+
+ if (0 <= w3c_slidy.size_index + w3c_slidy.size_adjustment &&
+ w3c_slidy.size_index + w3c_slidy.size_adjustment < w3c_slidy.sizes.length)
+ w3c_slidy.size_index = w3c_slidy.size_index + w3c_slidy.size_adjustment;
+
+ // enables cross browser use of relative width/height
+ // on object elements for use with SVG and Flash media
+ w3c_slidy.adjust_object_dimensions(width, height);
+
+ if (document.body.style.fontSize != w3c_slidy.sizes[w3c_slidy.size_index])
+ {
+ document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];
+ }
+
+ w3c_slidy.last_width = width;
+ w3c_slidy.last_height = height;
+
+ // force reflow to work around Mozilla bug
+ if (w3c_slidy.ns_pos)
+ {
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.show_slide(slide);
+ }
+
+ // force correct positioning of toolbar
+ w3c_slidy.refresh_toolbar(200);
+ }
+ },
+
+ scrolled: function () {
+ if (w3c_slidy.toolbar && !w3c_slidy.ns_pos && !w3c_slidy.ie7)
+ {
+ w3c_slidy.hack_offset = w3c_slidy.scroll_x_offset();
+ // hide toolbar
+ w3c_slidy.toolbar.style.display = "none";
+
+ // make it reappear later
+ if (w3c_slidy.scrollhack == 0 && !w3c_slidy.view_all)
+ {
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, 1000);
+ w3c_slidy.scrollhack = 1;
+ }
+ }
+ },
+
+ hide_toolbar: function () {
+ w3c_slidy.add_class(w3c_slidy.toolbar, "hidden");
+ window.focus();
+ },
+
+ // used to ensure IE refreshes toolbar in correct position
+ refresh_toolbar: function (interval) {
+ if (!w3c_slidy.ns_pos && !w3c_slidy.ie7)
+ {
+ w3c_slidy.hide_toolbar();
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, interval);
+ }
+ },
+
+ // restores toolbar after short delay
+ show_toolbar: function () {
+ if (w3c_slidy.want_toolbar)
+ {
+ w3c_slidy.toolbar.style.display = "block";
+
+ if (!w3c_slidy.ns_pos)
+ {
+ // adjust position to allow for scrolling
+ var xoffset = w3c_slidy.scroll_x_offset();
+ w3c_slidy.toolbar.style.left = xoffset;
+ w3c_slidy.toolbar.style.right = xoffset;
+
+ // determine vertical scroll offset
+ //var yoffset = scrollYOffset();
+
+ // bottom is doc height - window height - scroll offset
+ //var bottom = documentHeight() - lastHeight - yoffset
+
+ //if (yoffset > 0 || documentHeight() > lastHeight)
+ // bottom += 16; // allow for height of scrollbar
+
+ w3c_slidy.toolbar.style.bottom = 0; //bottom;
+ }
+
+ w3c_slidy.remove_class(w3c_slidy.toolbar, "hidden");
+ }
+
+ w3c_slidy.scrollhack = 0;
+
+
+ // set the keyboard focus to the help link on the
+ // toolbar to ensure that document has the focus
+ // IE doesn't always work with window.focus()
+ // and this hack has benefit of Enter for help
+
+ try
+ {
+ if (!w3c_slidy.opera)
+ w3c_slidy.help_anchor.focus();
+ }
+ catch (e)
+ {
+ }
+ },
+
+// invoked via F key
+ toggle_toolbar: function () {
+ if (!w3c_slidy.view_all)
+ {
+ if (w3c_slidy.has_class(w3c_slidy.toolbar, "hidden"))
+ {
+ w3c_slidy.remove_class(w3c_slidy.toolbar, "hidden")
+ w3c_slidy.want_toolbar = 1;
+ }
+ else
+ {
+ w3c_slidy.add_class(w3c_slidy.toolbar, "hidden")
+ w3c_slidy.want_toolbar = 0;
+ }
+ }
+ },
+
+ scroll_x_offset: function () {
+ if (window.pageXOffset)
+ return self.pageXOffset;
+
+ if (document.documentElement &&
+ document.documentElement.scrollLeft)
+ return document.documentElement.scrollLeft;
+
+ if (document.body)
+ return document.body.scrollLeft;
+
+ return 0;
+ },
+
+ scroll_y_offset: function () {
+ if (window.pageYOffset)
+ return self.pageYOffset;
+
+ if (document.documentElement &&
+ document.documentElement.scrollTop)
+ return document.documentElement.scrollTop;
+
+ if (document.body)
+ return document.body.scrollTop;
+
+ return 0;
+ },
+
+ // looking for a way to determine height of slide content
+ // the slide itself is set to the height of the window
+ optimize_font_size: function () {
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+
+ //var dh = documentHeight(); //getDocHeight(document);
+ var dh = slide.scrollHeight;
+ var wh = getWindowHeight();
+ var u = 100 * dh / wh;
+
+ alert("window utilization = " + u + "% (doc "
+ + dh + " win " + wh + ")");
+ },
+
+ // from document object
+ get_doc_height: function (doc) {
+ if (!doc)
+ doc = document;
+
+ if (doc && doc.body && doc.body.offsetHeight)
+ return doc.body.offsetHeight; // ns/gecko syntax
+
+ if (doc && doc.body && doc.body.scrollHeight)
+ return doc.body.scrollHeight;
+
+ alert("couldn't determine document height");
+ },
+
+ get_window_height: function () {
+ if ( typeof( window.innerHeight ) == 'number' )
+ return window.innerHeight; // Non IE browser
+
+ if (document.documentElement && document.documentElement.clientHeight)
+ return document.documentElement.clientHeight; // IE6
+
+ if (document.body && document.body.clientHeight)
+ return document.body.clientHeight; // IE4
+ },
+
+ document_height: function () {
+ var sh, oh;
+
+ sh = document.body.scrollHeight;
+ oh = document.body.offsetHeight;
+
+ if (sh && oh)
+ {
+ return (sh > oh ? sh : oh);
+ }
+
+ // no idea!
+ return 0;
+ },
+
+ smaller: function () {
+ if (w3c_slidy.size_index > 0)
+ {
+ --w3c_slidy.size_index;
+ }
+
+ w3c_slidy.toolbar.style.display = "none";
+ document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.show_slide(slide);
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, 50);
+ },
+
+ bigger: function () {
+ if (w3c_slidy.size_index < w3c_slidy.sizes.length - 1)
+ {
+ ++w3c_slidy.size_index;
+ }
+
+ w3c_slidy.toolbar.style.display = "none";
+ document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.show_slide(slide);
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, 50);
+ },
+
+ // enables cross browser use of relative width/height
+ // on object elements for use with SVG and Flash media
+ // with thanks to Ivan Herman for the suggestion
+ adjust_object_dimensions: function (width, height) {
+ for( var i = 0; i < w3c_slidy.objects.length; i++ )
+ {
+ var obj = this.objects[i];
+ var mimeType = obj.getAttribute("type");
+
+ if (mimeType == "image/svg+xml" || mimeType == "application/x-shockwave-flash")
+ {
+ if ( !obj.initialWidth )
+ obj.initialWidth = obj.getAttribute("width");
+
+ if ( !obj.initialHeight )
+ obj.initialHeight = obj.getAttribute("height");
+
+ if ( obj.initialWidth && obj.initialWidth.charAt(obj.initialWidth.length-1) == "%" )
+ {
+ var w = parseInt(obj.initialWidth.slice(0, obj.initialWidth.length-1));
+ var newW = width * (w/100.0);
+ obj.setAttribute("width",newW);
+ }
+
+ if ( obj.initialHeight &&
+ obj.initialHeight.charAt(obj.initialHeight.length-1) == "%" )
+ {
+ var h = parseInt(obj.initialHeight.slice(0, obj.initialHeight.length-1));
+ var newH = height * (h/100.0);
+ obj.setAttribute("height", newH);
+ }
+ }
+ }
+ },
+
+ // needed for Opera to inhibit default behavior
+ // since Opera delivers keyPress even if keyDown
+ // was cancelled
+ key_press: function (event) {
+ if (!event)
+ event = window.event;
+
+ if (!w3c_slidy.key_wanted)
+ return w3c_slidy.cancel(event);
+
+ return true;
+ },
+
+ // See e.g. http://www.quirksmode.org/js/events/keys.html for keycodes
+ key_down: function (event) {
+ var key;
+
+ w3c_slidy.key_wanted = true;
+
+ if (!event)
+ event = window.event;
+
+ // kludge around NS/IE differences
+ if (window.event)
+ key = window.event.keyCode;
+ else if (event.which)
+ key = event.which;
+ else
+ return true; // Yikes! unknown browser
+
+ // ignore event if key value is zero
+ // as for alt on Opera and Konqueror
+ if (!key)
+ return true;
+
+ // check for concurrent control/command/alt key
+ // but are these only present on mouse events?
+
+ if (event.ctrlKey || event.altKey || event.metaKey)
+ return true;
+
+ // dismiss table of contents if visible
+ if (w3c_slidy.is_shown_toc() && key != 9 && key != 16 && key != 38 && key != 40)
+ {
+ w3c_slidy.hide_table_of_contents();
+
+ if (key == 27 || key == 84 || key == 67)
+ return w3c_slidy.cancel(event);
+ }
+
+ if (key == 34) // Page Down
+ {
+ if (w3c_slidy.view_all)
+ return true;
+
+ w3c_slidy.next_slide(false);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 33) // Page Up
+ {
+ if (w3c_slidy.view_all)
+ return true;
+
+ w3c_slidy.previous_slide(false);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 32) // space bar
+ {
+ w3c_slidy.next_slide(true);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 37) // Left arrow
+ {
+ w3c_slidy.previous_slide(!event.shiftKey);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 36) // Home
+ {
+ w3c_slidy.first_slide();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 35) // End
+ {
+ w3c_slidy.last_slide();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 39) // Right arrow
+ {
+ w3c_slidy.next_slide(!event.shiftKey);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 13) // Enter
+ {
+ if (w3c_slidy.outline)
+ {
+ if (w3c_slidy.outline.visible)
+ w3c_slidy.fold(w3c_slidy.outline);
+ else
+ w3c_slidy.unfold(w3c_slidy.outline);
+
+ return w3c_slidy.cancel(event);
+ }
+ }
+ else if (key == 188) // < for smaller fonts
+ {
+ w3c_slidy.smaller();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 190) // > for larger fonts
+ {
+ w3c_slidy.bigger();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 189 || key == 109) // - for smaller fonts
+ {
+ w3c_slidy.smaller();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 187 || key == 191 || key == 107) // = + for larger fonts
+ {
+ w3c_slidy.bigger();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 83) // S for smaller fonts
+ {
+ w3c_slidy.smaller();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 66) // B for larger fonts
+ {
+ w3c_slidy.bigger();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 90) // Z for last slide
+ {
+ w3c_slidy.last_slide();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 70) // F for toggle toolbar
+ {
+ w3c_slidy.toggle_toolbar();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 65) // A for toggle view single/all slides
+ {
+ w3c_slidy.toggle_view();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 75) // toggle action of left click for next page
+ {
+ w3c_slidy.mouse_click_enabled = !w3c_slidy.mouse_click_enabled;
+ var alert_msg = (w3c_slidy.mouse_click_enabled ?
+ "enabled" : "disabled") + " mouse click advance";
+
+ alert(alert_msg.localize());
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 84 || key == 67) // T or C for table of contents
+ {
+ if (w3c_slidy.toc)
+ w3c_slidy.toggle_table_of_contents();
+
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 72) // H for help
+ {
+ window.location = w3c_slidy.help_page;
+ return w3c_slidy.cancel(event);
+ }
+ //else alert("key code is "+ key);
+
+ return true;
+ },
+
+ // safe for both text/html and application/xhtml+xml
+ create_element: function (name) {
+ if (this.xhtml && (typeof document.createElementNS != 'undefined'))
+ return document.createElementNS("http://www.w3.org/1999/xhtml", name)
+
+ return document.createElement(name);
+ },
+
+ get_element_style: function (elem, IEStyleProp, CSSStyleProp) {
+ if (elem.currentStyle)
+ {
+ return elem.currentStyle[IEStyleProp];
+ }
+ else if (window.getComputedStyle)
+ {
+ var compStyle = window.getComputedStyle(elem, "");
+ return compStyle.getPropertyValue(CSSStyleProp);
+ }
+ return "";
+ },
+
+ // the string str is a whitespace separated list of tokens
+ // test if str contains a particular token, e.g. "slide"
+ has_token: function (str, token) {
+ if (str)
+ {
+ // define pattern as regular expression
+ var pattern = /\w+/g;
+
+ // check for matches
+ // place result in array
+ var result = str.match(pattern);
+
+ // now check if desired token is present
+ for (var i = 0; i < result.length; i++)
+ {
+ if (result[i] == token)
+ return true;
+ }
+ }
+
+ return false;
+ },
+
+ get_class_list: function (element) {
+ if (typeof element.className != 'undefined')
+ return element.className;
+
+ return element.getAttribute("class");
+ },
+
+ has_class: function (element, name) {
+ if (element.nodeType != 1)
+ return false;
+
+ var regexp = new RegExp("(^| )" + name + "\W*");
+
+ if (typeof element.className != 'undefined')
+ return regexp.test(element.className);
+
+ return regexp.test(element.getAttribute("class"));
+ },
+
+ remove_class: function (element, name) {
+ var regexp = new RegExp("(^| )" + name + "\W*");
+ var clsval = "";
+
+ if (typeof element.className != 'undefined')
+ {
+ clsval = element.className;
+
+ if (clsval)
+ {
+ clsval = clsval.replace(regexp, "");
+ element.className = clsval;
+ }
+ }
+ else
+ {
+ clsval = element.getAttribute("class");
+
+ if (clsval)
+ {
+ clsval = clsval.replace(regexp, "");
+ element.setAttribute("class", clsval);
+ }
+ }
+ },
+
+ add_class: function (element, name) {
+ if (!this.has_class(element, name))
+ {
+ if (typeof element.className != 'undefined')
+ element.className += " " + name;
+ else
+ {
+ var clsval = element.getAttribute("class");
+ clsval = clsval ? clsval + " " + name : name;
+ element.setAttribute("class", clsval);
+ }
+ }
+ },
+
+ // HTML elements that can be used with class="incremental"
+ // note that you can also put the class on containers like
+ // up, ol, dl, and div to make their contents appear
+ // incrementally. Upper case is used since this is what
+ // browsers report for HTML node names (text/html).
+ incremental_elements: null,
+ okay_for_incremental: function (name) {
+ if (!this.incremental_elements)
+ {
+ var inclist = new Array();
+ inclist["p"] = true;
+ inclist["pre"] = true;
+ inclist["li"] = true;
+ inclist["blockquote"] = true;
+ inclist["dt"] = true;
+ inclist["dd"] = true;
+ inclist["h2"] = true;
+ inclist["h3"] = true;
+ inclist["h4"] = true;
+ inclist["h5"] = true;
+ inclist["h6"] = true;
+ inclist["span"] = true;
+ inclist["address"] = true;
+ inclist["table"] = true;
+ inclist["tr"] = true;
+ inclist["th"] = true;
+ inclist["td"] = true;
+ inclist["img"] = true;
+ inclist["object"] = true;
+ this.incremental_elements = inclist;
+ }
+ return this.incremental_elements[name.toLowerCase()];
+ },
+
+ next_incremental_item: function (node) {
+ var br = this.is_xhtml ? "br" : "BR";
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+
+ for (;;)
+ {
+ node = w3c_slidy.next_node(slide, node);
+
+ if (node == null || node.parentNode == null)
+ break;
+
+ if (node.nodeType == 1) // ELEMENT
+ {
+ if (node.nodeName == br)
+ continue;
+
+ if (w3c_slidy.has_class(node, "incremental")
+ && w3c_slidy.okay_for_incremental(node.nodeName))
+ return node;
+
+ if (w3c_slidy.has_class(node.parentNode, "incremental")
+ && !w3c_slidy.has_class(node, "non-incremental"))
+ return node;
+ }
+ }
+
+ return node;
+ },
+
+ previous_incremental_item: function (node) {
+ var br = this.is_xhtml ? "br" : "BR";
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+
+ for (;;)
+ {
+ node = w3c_slidy.previous_node(slide, node);
+
+ if (node == null || node.parentNode == null)
+ break;
+
+ if (node.nodeType == 1)
+ {
+ if (node.nodeName == br)
+ continue;
+
+ if (w3c_slidy.has_class(node, "incremental")
+ && w3c_slidy.okay_for_incremental(node.nodeName))
+ return node;
+
+ if (w3c_slidy.has_class(node.parentNode, "incremental")
+ && !w3c_slidy.has_class(node, "non-incremental"))
+ return node;
+ }
+ }
+
+ return node;
+ },
+
+ // set visibility for all elements on current slide with
+ // a parent element with attribute class="incremental"
+ set_visibility_all_incremental: function (value) {
+ var node = this.next_incremental_item(null);
+
+ if (value == "hidden")
+ {
+ while (node)
+ {
+ w3c_slidy.add_class(node, "invisible");
+ node = w3c_slidy.next_incremental_item(node);
+ }
+ }
+ else // value == "visible"
+ {
+ while (node)
+ {
+ w3c_slidy.remove_class(node, "invisible");
+ node = w3c_slidy.next_incremental_item(node);
+ }
+ }
+ },
+
+ // reveal the next hidden item on the slide
+ // node is null or the node that was last revealed
+ reveal_next_item: function (node) {
+ node = w3c_slidy.next_incremental_item(node);
+
+ if (node && node.nodeType == 1) // an element
+ w3c_slidy.remove_class(node, "invisible");
+
+ return node;
+ },
+
+ // exact inverse of revealNextItem(node)
+ hide_previous_item: function (node) {
+ if (node && node.nodeType == 1) // an element
+ w3c_slidy.add_class(node, "invisible");
+
+ return this.previous_incremental_item(node);
+ },
+
+ // left to right traversal of root's content
+ next_node: function (root, node) {
+ if (node == null)
+ return root.firstChild;
+
+ if (node.firstChild)
+ return node.firstChild;
+
+ if (node.nextSibling)
+ return node.nextSibling;
+
+ for (;;)
+ {
+ node = node.parentNode;
+
+ if (!node || node == root)
+ break;
+
+ if (node && node.nextSibling)
+ return node.nextSibling;
+ }
+
+ return null;
+ },
+
+ // right to left traversal of root's content
+ previous_node: function (root, node) {
+ if (node == null)
+ {
+ node = root.lastChild;
+
+ if (node)
+ {
+ while (node.lastChild)
+ node = node.lastChild;
+ }
+
+ return node;
+ }
+
+ if (node.previousSibling)
+ {
+ node = node.previousSibling;
+
+ while (node.lastChild)
+ node = node.lastChild;
+
+ return node;
+ }
+
+ if (node.parentNode != root)
+ return node.parentNode;
+
+ return null;
+ },
+
+ previous_sibling_element: function (el) {
+ el = el.previousSibling;
+
+ while (el && el.nodeType != 1)
+ el = el.previousSibling;
+
+ return el;
+ },
+
+ next_sibling_element: function (el) {
+ el = el.nextSibling;
+
+ while (el && el.nodeType != 1)
+ el = el.nextSibling;
+
+ return el;
+ },
+
+ first_child_element: function (el) {
+ var node;
+
+ for (node = el.firstChild; node; node = node.nextSibling)
+ {
+ if (node.nodeType == 1)
+ break;
+ }
+
+ return node;
+ },
+
+ first_tag: function (element, tag) {
+ var node;
+
+ if (!this.is_xhtml)
+ tag = tag.toUpperCase();
+
+ for (node = element.firstChild; node; node = node.nextSibling)
+ {
+ if (node.nodeType == 1 && node.nodeName == tag)
+ break;
+ }
+
+ return node;
+ },
+
+ hide_selection: function () {
+ if (window.getSelection) // Firefox, Chromium, Safari, Opera
+ {
+ var selection = window.getSelection();
+
+ if (selection.rangeCount > 0)
+ {
+ var range = selection.getRangeAt(0);
+ range.collapse (false);
+ }
+ }
+ else // Internet Explorer
+ {
+ var textRange = document.selection.createRange ();
+ textRange.collapse (false);
+ }
+ },
+
+ get_selected_text: function () {
+ try
+ {
+ if (window.getSelection)
+ return window.getSelection().toString();
+
+ if (document.getSelection)
+ return document.getSelection().toString();
+
+ if (document.selection)
+ return document.selection.createRange().text;
+ }
+ catch (e)
+ {
+ }
+
+ return "";
+ },
+
+ // make note of length of selected text
+ // as this evaluates to zero in click event
+ mouse_button_up: function (e) {
+ w3c_slidy.selected_text_len = w3c_slidy.get_selected_text().length;
+ },
+
+ // right mouse button click is reserved for context menus
+ // it is more reliable to detect rightclick than leftclick
+ mouse_button_click: function (e) {
+ var rightclick = false;
+ var leftclick = false;
+ var middleclick = false;
+ var target;
+
+ if (!e)
+ var e = window.event;
+
+ if (e.target)
+ target = e.target;
+ else if (e.srcElement)
+ target = e.srcElement;
+
+ // work around Safari bug
+ if (target.nodeType == 3)
+ target = target.parentNode;
+
+ if (e.which) // all browsers except IE
+ {
+ leftclick = (e.which == 1);
+ middleclick = (e.which == 2);
+ rightclick = (e.which == 3);
+ }
+ else if (e.button)
+ {
+ // Konqueror gives 1 for left, 4 for middle
+ // IE6 gives 0 for left and not 1 as I expected
+
+ if (e.button == 4)
+ middleclick = true;
+
+ // all browsers agree on 2 for right button
+ rightclick = (e.button == 2);
+ }
+ else leftclick = true;
+/*
+ alert("you clicked over a " + target.nodeName + " element\n" +
+ "w3c_slidy.mouse_click_enabled = " + w3c_slidy.mouse_click_enabled + "\n" +
+ "leftclick = " + leftclick + "\n" +
+ "selected text length = " + w3c_slidy.selected_text_len);
+ //alert("selected text length = " + w3c_slidy.selected_text_len);
+*/
+ if (w3c_slidy.selected_text_len > 0)
+ {
+ w3c_slidy.stop_propagation(e);
+ e.cancel = true;
+ e.returnValue = false;
+ return false;
+ }
+
+ // dismiss table of contents
+ w3c_slidy.hide_table_of_contents();
+
+ // check if target is something that probably want's clicks
+ // e.g. a, embed, object, input, textarea, select, option
+ var tag = target.nodeName.toLowerCase();
+
+ if (w3c_slidy.mouse_click_enabled && leftclick &&
+ tag != "a" &&
+ tag != "embed" &&
+ tag != "object" &&
+ tag != "video" &&
+ tag != "input" &&
+ tag != "textarea" &&
+ tag != "select" &&
+ tag != "option" &&
+ !target.onclick)
+ {
+ w3c_slidy.next_slide(true);
+ w3c_slidy.stop_propagation(e);
+ e.cancel = true;
+ e.returnValue = false;
+ return false;
+ }
+ },
+
+ get_key: function (e)
+ {
+ var key;
+
+ // kludge around NS/IE differences
+ if (typeof window.event != "undefined")
+ key = window.event.keyCode;
+ else if (e.which)
+ key = e.which;
+
+ return key;
+ },
+
+ get_target: function (e) {
+ var target;
+
+ if (!e)
+ e = window.event;
+
+ if (e.target)
+ target = e.target;
+ else if (e.srcElement)
+ target = e.srcElement;
+
+ if (target.nodeType != 1)
+ target = target.parentNode;
+
+ return target;
+ },
+
+ // does display property provide correct defaults?
+ is_block: function (elem) {
+ var tag = elem.nodeName.toLowerCase();
+
+ return tag == "ol" || tag == "ul" || tag == "p" ||
+ tag == "li" || tag == "table" || tag == "pre" ||
+ tag == "h1" || tag == "h2" || tag == "h3" ||
+ tag == "h4" || tag == "h5" || tag == "h6" ||
+ tag == "blockquote" || tag == "address";
+ },
+
+ add_listener: function (element, event, handler) {
+ if (window.addEventListener)
+ element.addEventListener(event, handler, false);
+ else
+ element.attachEvent("on"+event, handler);
+ },
+
+ // used to prevent event propagation from field controls
+ stop_propagation: function (event) {
+ event = event ? event : window.event;
+ event.cancelBubble = true; // for IE
+
+ if (event.stopPropagation)
+ event.stopPropagation();
+
+ return true;
+ },
+
+ cancel: function (event) {
+ if (event)
+ {
+ event.cancel = true;
+ event.returnValue = false;
+
+ if (event.preventDefault)
+ event.preventDefault();
+ }
+
+ w3c_slidy.key_wanted = false;
+ return false;
+ }
+};
+
+// for each language define an associative array
+// and also the help text which is longer
+
+var w3c_slidy_i18n = {
+ strings_es: {
+ "slide":"pág.",
+ "help?":"Ayuda",
+ "contents?":"Índice",
+ "table of contents":"tabla de contenidos",
+ "Table of Contents":"Tabla de Contenidos",
+ "restart presentation":"Reiniciar presentación",
+ "restart?":"Inicio"
+ },
+ help_es:
+ "Utilice el ratón, barra espaciadora, teclas Izda/Dcha, " +
+ "o Re pág y Av pág. Use S y B para cambiar el tamaño de fuente.",
+
+ strings_ca: {
+ "slide":"pàg..",
+ "help?":"Ajuda",
+ "contents?":"Índex",
+ "table of contents":"taula de continguts",
+ "Table of Contents":"Taula de Continguts",
+ "restart presentation":"Reiniciar presentació",
+ "restart?":"Inici"
+ },
+ help_ca:
+ "Utilitzi el ratolí, barra espaiadora, tecles Esq./Dta. " +
+ "o Re pàg y Av pàg. Usi S i B per canviar grandària de font.",
+
+ strings_cs: {
+ "slide":"snímek",
+ "help?":"nápověda",
+ "contents?":"obsah",
+ "table of contents":"obsah prezentace",
+ "Table of Contents":"Obsah prezentace",
+ "restart presentation":"znovu spustit prezentaci",
+ "restart?":"restart"
+ },
+ help_cs:
+ "Prezentaci můžete procházet pomocí kliknutí myši, mezerníku, " +
+ "šipek vlevo a vpravo nebo kláves PageUp a PageDown. Písmo se " +
+ "dá zvětšit a zmenšit pomocí kláves B a S.",
+
+ strings_nl: {
+ "slide":"pagina",
+ "help?":"Help?",
+ "contents?":"Inhoud?",
+ "table of contents":"inhoudsopgave",
+ "Table of Contents":"Inhoudsopgave",
+ "restart presentation":"herstart presentatie",
+ "restart?":"Herstart?"
+ },
+ help_nl:
+ "Navigeer d.m.v. het muis, spatiebar, Links/Rechts toetsen, " +
+ "of PgUp en PgDn. Gebruik S en B om de karaktergrootte te veranderen.",
+
+ strings_de: {
+ "slide":"Seite",
+ "help?":"Hilfe",
+ "contents?":"Übersicht",
+ "table of contents":"Inhaltsverzeichnis",
+ "Table of Contents":"Inhaltsverzeichnis",
+ "restart presentation":"Präsentation neu starten",
+ "restart?":"Neustart"
+ },
+ help_de:
+ "Benutzen Sie die Maus, Leerschlag, die Cursortasten links/rechts oder " +
+ "Page up/Page Down zum Wechseln der Seiten und S und B für die Schriftgrösse.",
+
+ strings_pl: {
+ "slide":"slajd",
+ "help?":"pomoc?",
+ "contents?":"spis treści?",
+ "table of contents":"spis treści",
+ "Table of Contents":"Spis Treści",
+ "restart presentation":"Restartuj prezentację",
+ "restart?":"restart?"
+ },
+ help_pl:
+ "Zmieniaj slajdy klikając myszą, naciskając spację, strzałki lewo/prawo" +
+ "lub PgUp / PgDn. Użyj klawiszy S i B, aby zmienić rozmiar czczionki.",
+
+ strings_fr: {
+ "slide":"page",
+ "help?":"Aide",
+ "contents?":"Index",
+ "table of contents":"table des matières",
+ "Table of Contents":"Table des matières",
+ "restart presentation":"Recommencer l'exposé",
+ "restart?":"Début"
+ },
+ help_fr:
+ "Naviguez avec la souris, la barre d'espace, les flèches " +
+ "gauche/droite ou les touches Pg Up, Pg Dn. Utilisez " +
+ "les touches S et B pour modifier la taille de la police.",
+
+ strings_hu: {
+ "slide":"oldal",
+ "help?":"segítség",
+ "contents?":"tartalom",
+ "table of contents":"tartalomjegyzék",
+ "Table of Contents":"Tartalomjegyzék",
+ "restart presentation":"bemutató újraindítása",
+ "restart?":"újraindítás"
+ },
+ help_hu:
+ "Az oldalak közti lépkedéshez kattintson az egérrel, vagy " +
+ "használja a szóköz, a bal, vagy a jobb nyíl, illetve a Page Down, " +
+ "Page Up billentyűket. Az S és a B billentyűkkel változtathatja " +
+ "a szöveg méretét.",
+
+ strings_it: {
+ "slide":"pag.",
+ "help?":"Aiuto",
+ "contents?":"Indice",
+ "table of contents":"indice",
+ "Table of Contents":"Indice",
+ "restart presentation":"Ricominciare la presentazione",
+ "restart?":"Inizio"
+ },
+ help_it:
+ "Navigare con mouse, barra spazio, frecce sinistra/destra o " +
+ "PgUp e PgDn. Usare S e B per cambiare la dimensione dei caratteri.",
+
+ strings_el: {
+ "slide":"σελίδα",
+ "help?":"βοήθεια;",
+ "contents?":"περιεχόμενα;",
+ "table of contents":"πίνακας περιεχομένων",
+ "Table of Contents":"Πίνακας Περιεχομένων",
+ "restart presentation":"επανεκκίνηση παρουσίασης",
+ "restart?":"επανεκκίνηση;"
+ },
+ help_el:
+ "Πλοηγηθείτε με το κλίκ του ποντικιού, το space, τα βέλη αριστερά/δεξιά, " +
+ "ή Page Up και Page Down. Χρησιμοποιήστε τα πλήκτρα S και B για να αλλάξετε " +
+ "το μέγεθος της γραμματοσειράς.",
+
+ strings_ja: {
+ "slide":"スライド",
+ "help?":"ヘルプ",
+ "contents?":"目次",
+ "table of contents":"目次を表示",
+ "Table of Contents":"目次",
+ "restart presentation":"最初から再生",
+ "restart?":"最初から"
+ },
+ help_ja:
+ "マウス左クリック ・ スペース ・ 左右キー " +
+ "または Page Up ・ Page Downで操作, S ・ Bでフォントサイズ変更",
+
+ strings_zh: {
+ "slide":"幻灯片",
+ "help?":"帮助?",
+ "contents?":"内容?",
+ "table of contents":"目录",
+ "Table of Contents":"目录",
+ "restart presentation":"重新启动展示",
+ "restart?":"重新启动?"
+ },
+ help_zh:
+ "用鼠标点击, 空格条, 左右箭头, Pg Up 和 Pg Dn 导航. " +
+ "用 S, B 改变字体大小.",
+
+ strings_ru: {
+ "slide":"слайд",
+ "help?":"помощь?",
+ "contents?":"содержание?",
+ "table of contents":"оглавление",
+ "Table of Contents":"Оглавление",
+ "restart presentation":"перезапустить презентацию",
+ "restart?":"перезапуск?"
+ },
+ help_ru:
+ "Перемещайтесь кликая мышкой, используя клавишу пробел, стрелки" +
+ "влево/вправо или Pg Up и Pg Dn. Клавиши S и B меняют размер шрифта.",
+
+ strings_sv: {
+ "slide":"sida",
+ "help?":"hjälp",
+ "contents?":"innehåll",
+ "table of contents":"innehållsförteckning",
+ "Table of Contents":"Innehållsförteckning",
+ "restart presentation":"visa presentationen från början",
+ "restart?":"börja om"
+ },
+ help_sv:
+ "Bläddra med ett klick med vänstra musknappen, mellanslagstangenten, " +
+ "vänster- och högerpiltangenterna eller tangenterna Pg Up, Pg Dn. " +
+ "Använd tangenterna S och B för att ändra textens storlek.",
+
+// each such language array is declared in the localize array
+// which is set on string prototype and used as in "foo".localize();
+ localize: {
+ "es":this.strings_es,
+ "ca":this.strings_ca,
+ "cs":this.strings_cs,
+ "nl":this.strings_nl,
+ "de":this.strings_de,
+ "pl":this.strings_pl,
+ "fr":this.strings_fr,
+ "hu":this.strings_hu,
+ "it":this.strings_it,
+ "el":this.strings_el,
+ "jp":this.strings_ja,
+ "zh":this.strings_zh,
+ "ru":this.strings_ru,
+ "sv":this.strings_sv
+ },
+
+ init: function () {
+ var i18n = w3c_slidy_i18n;
+ var help_text = w3c_slidy.help_text;
+ i18n.strings_es[help_text] = i18n.help_es;
+ i18n.strings_ca[help_text] = i18n.help_ca;
+ i18n.strings_cs[help_text] = i18n.help_cs;
+ i18n.strings_nl[help_text] = i18n.help_nl;
+ i18n.strings_de[help_text] = i18n.help_de;
+ i18n.strings_pl[help_text] = i18n.help_pl;
+ i18n.strings_fr[help_text] = i18n.help_fr;
+ i18n.strings_hu[help_text] = i18n.help_hu;
+ i18n.strings_it[help_text] = i18n.help_it;
+ i18n.strings_el[help_text] = i18n.help_el;
+ i18n.strings_ja[help_text] = i18n.help_ja;
+ i18n.strings_zh[help_text] = i18n.help_zh;
+ i18n.strings_ru[help_text] = i18n.help_ru;
+ i18n.strings_sv[help_text] = i18n.help_sv;
+
+ w3c_slidy.lang = document.body.parentNode.getAttribute("lang");
+
+ if (!w3c_slidy.lang)
+ w3c_slidy.lang = document.body.parentNode.getAttribute("xml:lang");
+
+ if (!w3c_slidy.lang)
+ w3c_slidy.lang = "en";
+
+ // add localize method to all strings
+ // for use as in "contents".localize()
+ String.prototype.localize = function() {
+ if (this == "")
+ return this;
+
+ // try full language code, e.g. en-US
+ var s, lookup = w3c_slidy_i18n.localize[w3c_slidy.lang];
+
+ if (lookup)
+ {
+ s = lookup[this];
+
+ if (s)
+ return s;
+ }
+
+ // strip country code suffix, e.g.
+ // try en if undefined for en-US
+ var lg = w3c_slidy.lang.split("-");
+
+ if (lg.length > 1)
+ {
+ lookup = w3c_slidy_i18n.localize[lg[0]];
+
+ if (lookup)
+ {
+ s = lookup[this];
+
+ if (s)
+ return s;
+ }
+ }
+
+ // otherwise string as is
+ return this;
+ };
+ }
+};
+
+// hack for back button behavior
+if (w3c_slidy.ie6 || w3c_slidy.ie7)
+{
+ document.write("<iframe id='historyFrame' " +
+ "src='javascript:\"<html"+"></"+"html>\"' " +
+ "height='1' width='1' " +
+ "style='position:absolute;left:-800px'></iframe>");
+}
+
+// attach event listeners for initialization
+w3c_slidy.set_up();
+
+// hide the slides as soon as body element is available
+// to reduce annoying screen mess before the onload event
+setTimeout(w3c_slidy.hide_slides, 50);
+
+/*]]>*/
+</script>
+</head>
+<body class="article" style="max-width:45em">
+<div id="header" class="slide">
+<h1>Osmocom BTS Hardware Support</h1>
+<span id="author">Harald Welte &lt;hwelte@sysmocom.de&gt;</span><br />
+</div>
+<div class="sect1 slide">
+<h1 id="_overview">Overview</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="imageblock graphviz">
+<div class="content">
+<img src="bts_hardware__1.png" alt="bts_hardware__1.png" />
+</div>
+</div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_clasic_e1_t1_based_bts">Clasic E1/T1 based BTS</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="paragraph"><p>Supported Vendors/Dialects</p></div>
+<ul class="">
+<li>
+<span>
+Siemens (only BS-11 tested)
+</span>
+</li>
+<li>
+<span>
+Ericsson RBS2xxx (RBS2307, 2308, 2111 tested)
+</span>
+</li>
+<li>
+<span>
+Nokia InSite, MetroSite
+</span>
+</li>
+</ul>
+<div class="tableblock">
+<table rules="all"
+width="100%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top">Pro</th>
+<th align="left" valign="top">Con</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">available inexpensively from decomissioned sites</p></td>
+<td align="left" valign="top"><p class="table">appears a bit antiquated</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">up to 12 TRX</p></td>
+<td align="left" valign="top"><p class="table">not many people familiar with E1/T1 anymore</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">high RF output power</p></td>
+<td align="left" valign="top"><p class="table">no convenient testing/debugging of E1/T1 issues</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">rugged mechanical build, high MTTF</p></td>
+<td align="left" valign="top"><p class="table">high power consumption</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table"></p></td>
+<td align="left" valign="top"><p class="table">older models no EGPRS, no AMR</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_classic_e1_t1_based_bts">Classic E1/T1 based BTS</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="imageblock">
+<div class="content">
+<img src="images/har2009-bs11_at_tree.jpg" alt="images/har2009-bs11_at_tree.jpg" width="90%" />
+</div>
+</div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_clasic_e1_t1_based_bts_2">Clasic E1/T1 based BTS</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="imageblock gimmick_right">
+<div class="content">
+<img src="images/har2009-bs11_antennas2.small.jpg" alt="images/har2009-bs11_antennas2.small.jpg" width="50%" />
+</div>
+</div>
+<ul class="">
+<li>
+<span>
+This is how it all started
+</span>
+</li>
+<li>
+<span>
+E1 based BTS (Siemens BS-11)
+</span>
+</li>
+<li>
+<span>
+HAR 2009 - Dutch Hacker Camp
+</span>
+</li>
+<li>
+<span>
+Antennas mounted with duct tape to tree
+</span>
+</li>
+<li>
+<span>
+E1 back-haul over CAT5 to OpenBSC running in tent
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_ericsson_rbs_2308">Ericsson RBS 2308</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="imageblock gimmick_right">
+<div class="content">
+<img src="images/rbs2308.jpg" alt="images/rbs2308.jpg" width="60%" />
+</div>
+</div>
+<ul class="">
+<li>
+<span>
+Many RBS2000 models
+</span>
+</li>
+<li>
+<span>
+All very similar on protocol
+</span>
+</li>
+<li>
+<span>
+Not all models tested
+</span>
+</li>
+<li>
+<span>
+Good results with RBS2308 + RBS2111
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_ip_access_nanobts">ip.access nanoBTS</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="imageblock gimmick_right">
+<div class="content">
+<img src="images/nanoBTS_small.png" alt="images/nanoBTS_small.png" width="40%" />
+</div>
+</div>
+<ul class="">
+<li>
+<span>
+PoE-enabled single-TRX 200mW indoor BTS
+</span>
+</li>
+<li>
+<span>
+GPRS/GSM only models and EGPRS-enabled models
+</span>
+</li>
+<li>
+<span>
+available in band-specific versions for all four bands
+</span>
+</li>
+<li>
+<span>
+proprietary BTS and PCU inside
+</span>
+<ul class="">
+<li>
+<span>
+lots of PCU crashes reported by users :(
+</span>
+</li>
+<li>
+<span>
+no way for us to fix it
+</span>
+</li>
+</ul>
+</li>
+<li>
+<span>
+No fully dynamic channels (TCH/F + TCH/H + PDCH)
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_sysmobts">sysmoBTS</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="imageblock gimmick_right">
+<div class="content">
+<img src="images/symoBTS_v2D_front_1024.jpg" alt="images/symoBTS_v2D_front_1024.jpg" width="35%" />
+</div>
+</div>
+<ul class="">
+<li>
+<span>
+sysmocom builds family of GSM BTS based on OsmoBTS + OsmoPCU
+</span>
+</li>
+<li>
+<span>
+revenue from this sales used to cross-subsidize OsmoBTS development
+</span>
+</li>
+<li>
+<span>
+<strong>osmo-bts-sysmo</strong> uses shared-memory /dev to talk to PHY
+</span>
+</li>
+<li>
+<span>
+<strong>osmo-pcu</strong> uses shared-memory /dev to talk to PHY
+</span>
+</li>
+</ul>
+<div class="tableblock">
+<table rules="all"
+width="100%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<col width="28%" />
+<col width="14%" />
+<col width="14%" />
+<col width="14%" />
+<col width="14%" />
+<col width="14%" />
+<thead>
+<tr>
+<th align="left" valign="top">Model </th>
+<th align="left" valign="top"> RF Pwr </th>
+<th align="left" valign="top">TRX</th>
+<th align="left" valign="top">Outdoor</th>
+<th align="left" valign="top">PoE </th>
+<th align="left" valign="top"> Quad-Band</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">sysmoBTS 1002</p></td>
+<td align="left" valign="top"><p class="table">0.2 W</p></td>
+<td align="left" valign="top"><p class="table">1</p></td>
+<td align="left" valign="top"><p class="table">No</p></td>
+<td align="left" valign="top"><p class="table">No</p></td>
+<td align="left" valign="top"><p class="table">Yes</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">sysmoBTS 1002 OD</p></td>
+<td align="left" valign="top"><p class="table">0.2 W</p></td>
+<td align="left" valign="top"><p class="table">1</p></td>
+<td align="left" valign="top"><p class="table">Yes</p></td>
+<td align="left" valign="top"><p class="table">Yes</p></td>
+<td align="left" valign="top"><p class="table">Yes</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">sysmoBTS 1020</p></td>
+<td align="left" valign="top"><p class="table">2.0 W</p></td>
+<td align="left" valign="top"><p class="table">1</p></td>
+<td align="left" valign="top"><p class="table">Yes</p></td>
+<td align="left" valign="top"><p class="table">Yes</p></td>
+<td align="left" valign="top"><p class="table">No</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">sysmoBTS 1100</p></td>
+<td align="left" valign="top"><p class="table">10.0 W</p></td>
+<td align="left" valign="top"><p class="table">1</p></td>
+<td align="left" valign="top"><p class="table">Yes</p></td>
+<td align="left" valign="top"><p class="table">No</p></td>
+<td align="left" valign="top"><p class="table">No</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">sysmoBTS 2050</p></td>
+<td align="left" valign="top"><p class="table">2x 5 W</p></td>
+<td align="left" valign="top"><p class="table">2</p></td>
+<td align="left" valign="top"><p class="table">Yes</p></td>
+<td align="left" valign="top"><p class="table">No</p></td>
+<td align="left" valign="top"><p class="table">No</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">sysmoBTS 2100</p></td>
+<td align="left" valign="top"><p class="table">2x10 W</p></td>
+<td align="left" valign="top"><p class="table">2</p></td>
+<td align="left" valign="top"><p class="table">Yes</p></td>
+<td align="left" valign="top"><p class="table">No</p></td>
+<td align="left" valign="top"><p class="table">No</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_nuran_litecell_1_5">Nuran LiteCell 1.5</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="imageblock gimmick_right">
+<div class="content">
+<img src="images/litecell15.jpg" alt="images/litecell15.jpg" width="40%" />
+</div>
+</div>
+<ul class="">
+<li>
+<span>
+10W 2-TRX Outdoor BTS
+</span>
+</li>
+<li>
+<span>
+<strong>osmo-bts-litecell15</strong> uses shared-memory /dev to talk to PHY
+</span>
+</li>
+<li>
+<span>
+<strong>osmo-pcu</strong> uses shared-memory /dev to talk to PHY
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_octasic_octbts_with_octphy_2g">Octasic OCTBTS with OCTPHY-2G</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="imageblock gimmick_right">
+<div class="content">
+<img src="images/octbts_3600_photo__large.png" alt="images/octbts_3600_photo__large.png" width="40%" />
+</div>
+</div>
+<ul class="">
+<li>
+<span>
+not a ready-to-deploy BTS product, more a BTS development board
+</span>
+<ul class="">
+<li>
+<span>
+no enclosure, no PA, no filters
+</span>
+</li>
+</ul>
+</li>
+<li>
+<span>
+proprietary PHY runs in Octasic DSP
+</span>
+<ul class="">
+<li>
+<span>
+raw Ethernet frames towards <strong>osmo-bts-octphy</strong>
+</span>
+</li>
+<li>
+<span>
+unix domain pcu-socket to <strong>osmo-pcu</strong>
+</span>
+</li>
+</ul>
+</li>
+<li>
+<span>
+series of different board models (3000, 3500, 3600) with different
+ number of DSPs, radio interfaces, ARM/x86 processor core
+</span>
+</li>
+<li>
+<span>
+two TRX per DSP possible
+</span>
+</li>
+<li>
+<span>
+not all voice codecs supported
+</span>
+</li>
+<li>
+<span>
+EGRPS integration with OsmoPCU not working yet
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_eof">EOF</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="paragraph"><p>End of File</p></div>
+</div>
+</div>
+</body>
+</html>
diff --git a/2017/open_source_mobilfunk-clt2017/running-foss-gsm.adoc b/2017/open_source_mobilfunk-clt2017/running-foss-gsm.adoc
index 45ce701..47db6ae 100644
--- a/2017/open_source_mobilfunk-clt2017/running-foss-gsm.adoc
+++ b/2017/open_source_mobilfunk-clt2017/running-foss-gsm.adoc
@@ -698,4 +698,4 @@ LTE cells, similar to 3.5G strategy
* the entire Osmocom team for what they have achieved
** notably Dieter Spaar, Holger Freyther, Andreas Eversberg, Sylvain Munaut
* last but not least: CEPT for making the GSM specs English
-** (who'd want to read French specs anyway?)
+** (who'd want to read French specs here?)
diff --git a/2017/path_loss_link_budget-osmocon2017/path_loss_link_budget.html b/2017/path_loss_link_budget-osmocon2017/path_loss_link_budget.html
new file mode 100644
index 0000000..bce64b7
--- /dev/null
+++ b/2017/path_loss_link_budget-osmocon2017/path_loss_link_budget.html
@@ -0,0 +1,5039 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+<head>
+<title>Path Loss and Link Budget</title>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="copyright" content="Copyright &#169; 2017 by Harald Welte (License: CC-BY-SA)" />
+<meta name="generator" content="AsciiDoc 8.6.9" />
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overriden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+/* slidy.css
+
+ Copyright (c) 2005-2010 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+ W3C liability, trademark, document use and software licensing
+ rules apply, see:
+
+ http://www.w3.org/Consortium/Legal/copyright-documents
+ http://www.w3.org/Consortium/Legal/copyright-software
+*/
+
+/*
+ SJR: 2010-09-29: Modified for AsciiDoc slidy backend.
+ Mostly just commented out stuff that is handled by AsciiDoc's CSS files.
+*/
+
+body
+{
+ margin: 0 0 0 0;
+ padding: 0 0 0 0;
+ width: 100%;
+ height: 100%;
+ color: black;
+ background-color: white;
+/*
+ font-family: "Gill Sans MT", "Gill Sans", GillSans, sans-serif;
+*/
+ font-size: 14pt;
+}
+
+div.toolbar {
+ position: fixed; z-index: 200;
+ top: auto; bottom: 0; left: 0; right: 0;
+ height: 1.2em; text-align: right;
+ padding-left: 1em;
+ padding-right: 1em;
+ font-size: 60%;
+ color: red;
+ background-color: rgb(240,240,240);
+ border-top: solid 1px rgb(180,180,180);
+}
+
+div.toolbar span.copyright {
+ color: black;
+ margin-left: 0.5em;
+}
+
+div.initial_prompt {
+ position: absolute;
+ z-index: 1000;
+ bottom: 1.2em;
+ width: 90%;
+ background-color: rgb(200,200,200);
+ opacity: 0.35;
+ background-color: rgb(200,200,200, 0.35);
+ cursor: pointer;
+}
+
+div.initial_prompt p.help {
+ text-align: center;
+}
+
+div.initial_prompt p.close {
+ text-align: right;
+ font-style: italic;
+}
+
+div.slidy_toc {
+ position: absolute;
+ z-index: 300;
+ width: 60%;
+ max-width: 30em;
+ height: 30em;
+ overflow: auto;
+ top: auto;
+ right: auto;
+ left: 4em;
+ bottom: 4em;
+ padding: 1em;
+ background: rgb(240,240,240);
+ border-style: solid;
+ border-width: 2px;
+ font-size: 60%;
+}
+
+div.slidy_toc .toc_heading {
+ text-align: center;
+ width: 100%;
+ margin: 0;
+ margin-bottom: 1em;
+ border-bottom-style: solid;
+ border-bottom-color: rgb(180,180,180);
+ border-bottom-width: 1px;
+}
+
+div.slide {
+ z-index: 20;
+ margin: 0 0 0 0;
+ padding-top: 0;
+ padding-bottom: 0;
+ padding-left: 20px;
+ padding-right: 20px;
+ border-width: 0;
+ clear: both;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ line-height: 120%;
+ background-color: transparent;
+}
+
+div.background {
+ display: none;
+}
+
+div.handout {
+ margin-left: 20px;
+ margin-right: 20px;
+}
+
+div.slide.titlepage {
+ text-align: center;
+}
+
+div.slide.titlepage.h1 {
+ padding-top: 10%;
+}
+
+div.slide h1 {
+ padding-left: 0;
+ padding-right: 20pt;
+ padding-top: 4pt;
+ padding-bottom: 4pt;
+ margin-top: 0;
+ margin-left: 0;
+ margin-right: 60pt;
+ margin-bottom: 0.5em;
+ display: block;
+ font-size: 160%;
+ line-height: 1.2em;
+ background: transparent;
+}
+
+div.toc {
+ position: absolute;
+ top: auto;
+ bottom: 4em;
+ left: 4em;
+ right: auto;
+ width: 60%;
+ max-width: 30em;
+ height: 30em;
+ border: solid thin black;
+ padding: 1em;
+ background: rgb(240,240,240);
+ color: black;
+ z-index: 300;
+ overflow: auto;
+ display: block;
+ visibility: visible;
+}
+
+div.toc-heading {
+ width: 100%;
+ border-bottom: solid 1px rgb(180,180,180);
+ margin-bottom: 1em;
+ text-align: center;
+}
+
+/*
+pre {
+ font-size: 80%;
+ font-weight: bold;
+ line-height: 120%;
+ padding-top: 0.2em;
+ padding-bottom: 0.2em;
+ padding-left: 1em;
+ padding-right: 1em;
+ border-style: solid;
+ border-left-width: 1em;
+ border-top-width: thin;
+ border-right-width: thin;
+ border-bottom-width: thin;
+ border-color: #95ABD0;
+ color: #00428C;
+ background-color: #E4E5E7;
+}
+*/
+
+/*
+li pre { margin-left: 0; }
+
+blockquote { font-style: italic }
+
+img { background-color: transparent }
+
+p.copyright { font-size: smaller }
+*/
+
+.center { text-align: center }
+.footnote { font-size: smaller; margin-left: 2em; }
+
+/*
+a img { border-width: 0; border-style: none }
+*/
+
+a:visited { color: navy }
+a:link { color: navy }
+a:hover { color: red; text-decoration: underline }
+a:active { color: red; text-decoration: underline }
+
+a {text-decoration: none}
+.navbar a:link {color: white}
+.navbar a:visited {color: yellow}
+.navbar a:active {color: red}
+.navbar a:hover {color: red}
+
+/*
+ul { list-style-type: square; }
+ul ul { list-style-type: disc; }
+ul ul ul { list-style-type: circle; }
+ul ul ul ul { list-style-type: disc; }
+li { margin-left: 0.5em; margin-top: 0.5em; }
+li li { font-size: 85%; font-style: italic }
+li li li { font-size: 85%; font-style: normal }
+*/
+
+div dt
+{
+ margin-left: 0;
+ margin-top: 1em;
+ margin-bottom: 0.5em;
+ font-weight: bold;
+}
+div dd
+{
+ margin-left: 2em;
+ margin-bottom: 0.5em;
+}
+
+
+/*
+p,pre,ul,ol,blockquote,h2,h3,h4,h5,h6,dl,table {
+ margin-left: 1em;
+ margin-right: 1em;
+}
+*/
+
+p.subhead { font-weight: bold; margin-top: 2em; }
+
+.smaller { font-size: smaller }
+.bigger { font-size: 130% }
+
+/*
+td,th { padding: 0.2em }
+*/
+
+ul {
+ margin: 0.5em 1.5em 0.5em 1.5em;
+ padding: 0;
+}
+
+ol {
+ margin: 0.5em 1.5em 0.5em 1.5em;
+ padding: 0;
+}
+
+ul { list-style-type: square; }
+ul ul { list-style-type: disc; }
+ul ul ul { list-style-type: circle; }
+ul ul ul ul { list-style-type: disc; }
+
+/*
+ul li {
+ list-style: square;
+ margin: 0.1em 0em 0.6em 0;
+ padding: 0 0 0 0;
+ line-height: 140%;
+}
+
+ol li {
+ margin: 0.1em 0em 0.6em 1.5em;
+ padding: 0 0 0 0px;
+ line-height: 140%;
+ list-style-type: decimal;
+}
+
+li ul li {
+ font-size: 85%;
+ font-style: italic;
+ list-style-type: disc;
+ background: transparent;
+ padding: 0 0 0 0;
+}
+li li ul li {
+ font-size: 85%;
+ font-style: normal;
+ list-style-type: circle;
+ background: transparent;
+ padding: 0 0 0 0;
+}
+li li li ul li {
+ list-style-type: disc;
+ background: transparent;
+ padding: 0 0 0 0;
+}
+
+li ol li {
+ list-style-type: decimal;
+}
+
+
+li li ol li {
+ list-style-type: decimal;
+}
+*/
+
+/*
+ setting class="outline" on ol or ul makes it behave as an
+ ouline list where blocklevel content in li elements is
+ hidden by default and can be expanded or collapsed with
+ mouse click. Set class="expand" on li to override default
+*/
+
+ol.outline li:hover { cursor: pointer }
+ol.outline li.nofold:hover { cursor: default }
+
+ul.outline li:hover { cursor: pointer }
+ul.outline li.nofold:hover { cursor: default }
+
+ol.outline { list-style:decimal; }
+ol.outline ol { list-style-type:lower-alpha }
+
+ol.outline li.nofold {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/nofold-dim.gif) no-repeat 0px 0.5em;
+}
+ol.outline li.unfolded {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/fold-dim.gif) no-repeat 0px 0.5em;
+}
+ol.outline li.folded {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/unfold-dim.gif) no-repeat 0px 0.5em;
+}
+ol.outline li.unfolded:hover {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/fold.gif) no-repeat 0px 0.5em;
+}
+ol.outline li.folded:hover {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/unfold.gif) no-repeat 0px 0.5em;
+}
+
+ul.outline li.nofold {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/nofold-dim.gif) no-repeat 0px 0.5em;
+}
+ul.outline li.unfolded {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/fold-dim.gif) no-repeat 0px 0.5em;
+}
+ul.outline li.folded {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/unfold-dim.gif) no-repeat 0px 0.5em;
+}
+ul.outline li.unfolded:hover {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/fold.gif) no-repeat 0px 0.5em;
+}
+ul.outline li.folded:hover {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/unfold.gif) no-repeat 0px 0.5em;
+}
+
+/* for slides with class "title" in table of contents */
+a.titleslide { font-weight: bold; font-style: italic }
+
+/*
+ hide images for work around for save as bug
+ where browsers fail to save images used by CSS
+*/
+img.hidden { display: none; visibility: hidden }
+div.initial_prompt { display: none; visibility: hidden }
+
+ div.slide {
+ visibility: visible;
+ position: inherit;
+ }
+ div.handout {
+ border-top-style: solid;
+ border-top-width: thin;
+ border-top-color: black;
+ }
+
+@media screen {
+ .hidden { display: none; visibility: visible }
+
+ div.slide.hidden { display: block; visibility: visible }
+ div.handout.hidden { display: block; visibility: visible }
+ div.background { display: none; visibility: hidden }
+ body.single_slide div.initial_prompt { display: block; visibility: visible }
+ body.single_slide div.background { display: block; visibility: visible }
+ body.single_slide div.background.hidden { display: none; visibility: hidden }
+ body.single_slide .invisible { visibility: hidden }
+ body.single_slide .hidden { display: none; visibility: hidden }
+ body.single_slide div.slide { position: absolute }
+ body.single_slide div.handout { display: none; visibility: hidden }
+}
+
+@media print {
+ .hidden { display: block; visibility: visible }
+
+/*
+ div.slide pre { font-size: 60%; padding-left: 0.5em; }
+*/
+ div.toolbar { display: none; visibility: hidden; }
+ div.slidy_toc { display: none; visibility: hidden; }
+ div.background { display: none; visibility: hidden; }
+ div.slide { page-break-before: always }
+ /* :first-child isn't reliable for print media */
+ div.slide.first-slide { page-break-before: avoid }
+}
+
+
+/* SJR: AsciiDoc slidy backend tweaks */
+
+ol, ul {
+ margin: 0.8em 1.5em 0.8em 1.8em;
+}
+li > ul, li > ol {
+ margin-top: 0.5em;
+}
+
+.outline > li.folded,
+.outline > li.unfolded {
+ color: #527bbd;
+}
+ul > li{ color: #aaa; }
+ul > li > *, ol > li > * { color: black; }
+
+li {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+/* slidy.js
+
+ Copyright (c) 2005-2010 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+ W3C liability, trademark, document use and software licensing
+ rules apply, see:
+
+ http://www.w3.org/Consortium/Legal/copyright-documents
+ http://www.w3.org/Consortium/Legal/copyright-software
+*/
+
+// the slidy object implementation
+var w3c_slidy = {
+ // classify which kind of browser we're running under
+ ns_pos: (typeof window.pageYOffset!='undefined'),
+ khtml: ((navigator.userAgent).indexOf("KHTML") >= 0 ? true : false),
+ opera: ((navigator.userAgent).indexOf("Opera") >= 0 ? true : false),
+ ipad: ((navigator.userAgent).indexOf("iPad") >= 0 ? true : false),
+ iphone: ((navigator.userAgent).indexOf("iPhone") >= 0 ? true : false),
+ ie: (typeof document.all != "undefined" && !this.opera),
+ ie6: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 6") != -1),
+ ie7: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 7") != -1),
+ ie8: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 8") != -1),
+ ie9: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 9") != -1),
+ keyboardless: (this.ipad || this.iphone),
+
+ // are we running as XHTML? (doesn't work on Opera)
+ is_xhtml: /xml/.test(document.contentType),
+
+ slide_number: 0, // integer slide count: 0, 1, 2, ...
+ slide_number_element: null, // element containing slide number
+ slides: [], // set to array of slide div's
+ notes: [], // set to array of handout div's
+ backgrounds: [], // set to array of background div's
+ toolbar: null, // element containing toolbar
+ title: null, // document title
+ last_shown: null, // last incrementally shown item
+ eos: null, // span element for end of slide indicator
+ toc: null, // table of contents
+ outline: null, // outline element with the focus
+ selected_text_len: 0, // length of drag selection on document
+ view_all: 0, // 1 to view all slides + handouts
+ want_toolbar: true, // user preference to show/hide toolbar
+ mouse_click_enabled: true, // enables left click for next slide
+ scroll_hack: 0, // IE work around for position: fixed
+ disable_slide_click: false, // used by clicked anchors
+
+ lang: "en", // updated to language specified by html file
+
+ help_anchor: null, // used for keyboard focus hack in showToolbar()
+ help_page: "http://www.w3.org/Talks/Tools/Slidy2/help/help.html",
+ help_text: "Navigate with mouse click, space bar, Cursor Left/Right, " +
+ "or Pg Up and Pg Dn. Use S and B to change font size.",
+
+ size_index: 0,
+ size_adjustment: 0,
+ sizes: new Array("10pt", "12pt", "14pt", "16pt", "18pt", "20pt",
+ "22pt", "24pt", "26pt", "28pt", "30pt", "32pt"),
+
+ // needed for efficient resizing
+ last_width: 0,
+ last_height: 0,
+
+
+ // Needed for cross browser support for relative width/height on
+ // object elements. The work around is to save width/height attributes
+ // and then to recompute absolute width/height dimensions on resizing
+ objects: [],
+
+ // attach initialiation event handlers
+ set_up: function () {
+ var init = function() { w3c_slidy.init(); };
+ if (typeof window.addEventListener != "undefined")
+ window.addEventListener("load", init, false);
+ else
+ window.attachEvent("onload", init);
+ },
+
+ hide_slides: function () {
+ if (document.body && !w3c_slidy.initialized)
+ document.body.style.visibility = "hidden";
+ else
+ setTimeout(w3c_slidy.hide_slides, 50);
+ },
+
+ // hack to persuade IE to compute correct document height
+ // as needed for simulating fixed positioning of toolbar
+ ie_hack: function () {
+ window.resizeBy(0,-1);
+ window.resizeBy(0, 1);
+ },
+
+ init: function () {
+ //alert("slidy starting test 10");
+ document.body.style.visibility = "visible";
+ w3c_slidy_i18n.init();
+ this.add_toolbar();
+ this.wrap_implicit_slides();
+ this.collect_slides();
+ this.collect_notes();
+ this.collect_backgrounds();
+ this.objects = document.body.getElementsByTagName("object");
+ this.patch_anchors();
+ this.slide_number = this.find_slide_number(location.href);
+ window.offscreenbuffering = true;
+ this.size_adjustment = this.find_size_adjust();
+ this.time_left = this.find_duration();
+ this.hide_image_toolbar(); // suppress IE image toolbar popup
+ this.init_outliner(); // activate fold/unfold support
+ this.title = document.title;
+
+ // work around for opera bug
+ this.is_xhtml = (document.body.tagName == "BODY" ? false : true);
+
+ if (this.slides.length > 0)
+ {
+ var slide = this.slides[this.slide_number];
+
+ if (this.slide_number > 0)
+ {
+ this.set_visibility_all_incremental("visible");
+ this.last_shown = this.previous_incremental_item(null);
+ this.set_eos_status(true);
+ }
+ else
+ {
+ this.last_shown = null;
+ this.set_visibility_all_incremental("hidden");
+ this.set_eos_status(!this.next_incremental_item(this.last_shown));
+ }
+
+ this.set_location();
+ this.add_class(this.slides[0], "first-slide");
+ w3c_slidy.show_slide(slide);
+ }
+
+ this.toc = this.table_of_contents();
+
+ this.add_initial_prompt();
+
+ // bind event handlers without interfering with custom page scripts
+ // Tap events behave too weirdly to support clicks reliably on
+ // iPhone and iPad, so exclude these from click handler
+
+ if (!this.keyboardless)
+ this.add_listener(document.body, "click", this.mouse_button_click);
+
+ this.add_listener(document, "keydown", this.key_down);
+ this.add_listener(document, "keypress", this.key_press);
+ this.add_listener(window, "resize", this.resized);
+ this.add_listener(window, "scroll", this.scrolled);
+ this.add_listener(window, "unload", this.unloaded);
+
+ if (!document.body.onclick)
+ document.body.onclick = function () { };
+
+ this.single_slide_view();
+
+ //this.set_location();
+
+ this.resized();
+
+ if (this.ie7)
+ setTimeout(w3c_slidy.ie_hack, 100);
+
+ this.show_toolbar();
+
+ // for back button detection
+ setInterval(function () { w3c_slidy.check_location(); }, 200);
+ w3c_slidy.initialized = true;
+ },
+
+ // create div element with links to each slide
+ table_of_contents: function () {
+ var toc = this.create_element("div");
+ this.add_class(toc, "slidy_toc hidden");
+ //toc.setAttribute("tabindex", "0");
+
+ var heading = this.create_element("div");
+ this.add_class(heading, "toc-heading");
+ heading.innerHTML = "Table of Contents".localize();
+
+ toc.appendChild(heading);
+ var previous = null;
+
+ for (var i = 0; i < this.slides.length; ++i)
+ {
+ var title = this.has_class(this.slides[i], "title");
+ var num = document.createTextNode((i + 1) + ". ");
+
+ toc.appendChild(num);
+
+ var a = this.create_element("a");
+ a.setAttribute("href", "#(" + (i+1) + ")");
+
+ if (title)
+ this.add_class(a, "titleslide");
+
+ var name = document.createTextNode(this.slide_name(i));
+ a.appendChild(name);
+ a.onclick = w3c_slidy.toc_click;
+ a.onkeydown = w3c_slidy.toc_keydown;
+ a.previous = previous;
+
+ if (previous)
+ previous.next = a;
+
+ toc.appendChild(a);
+
+ if (i == 0)
+ toc.first = a;
+
+ if (i < this.slides.length - 1)
+ {
+ var br = this.create_element("br");
+ toc.appendChild(br);
+ }
+
+ previous = a;
+ }
+
+ toc.focus = function () {
+ if (this.first)
+ this.first.focus();
+ }
+
+ toc.onmouseup = w3c_slidy.mouse_button_up;
+
+ toc.onclick = function (e) {
+ e||(e=window.event);
+
+ if (w3c_slidy.selected_text_len <= 0)
+ w3c_slidy.hide_table_of_contents();
+
+ w3c_slidy.stop_propagation(e);
+
+ if (e.cancel != undefined)
+ e.cancel = true;
+
+ if (e.returnValue != undefined)
+ e.returnValue = false;
+
+ return false;
+ };
+
+ document.body.insertBefore(toc, document.body.firstChild);
+ return toc;
+ },
+
+ is_shown_toc: function () {
+ return !w3c_slidy.has_class(w3c_slidy.toc, "hidden");
+ },
+
+ show_table_of_contents: function () {
+ w3c_slidy.remove_class(w3c_slidy.toc, "hidden");
+ var toc = w3c_slidy.toc;
+ toc.focus();
+
+ if (w3c_slidy.ie7 && w3c_slidy.slide_number == 0)
+ setTimeout(w3c_slidy.ie_hack, 100);
+ },
+
+ hide_table_of_contents: function () {
+ w3c_slidy.add_class(w3c_slidy.toc, "hidden");
+
+ if (!w3c_slidy.opera)
+ w3c_slidy.help_anchor.focus();
+ },
+
+ toggle_table_of_contents: function () {
+ if (w3c_slidy.is_shown_toc())
+ w3c_slidy.hide_table_of_contents();
+ else
+ w3c_slidy.show_table_of_contents();
+ },
+
+ // called on clicking toc entry
+ toc_click: function (e) {
+ if (!e)
+ e = window.event;
+
+ var target = w3c_slidy.get_target(e);
+
+ if (target && target.nodeType == 1)
+ {
+ var uri = target.getAttribute("href");
+
+ if (uri)
+ {
+ //alert("going to " + uri);
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.slide_number = w3c_slidy.find_slide_number(uri);
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_location();
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+ w3c_slidy.show_slide(slide);
+ //target.focus();
+
+ try
+ {
+ if (!w3c_slidy.opera)
+ w3c_slidy.help_anchor.focus();
+ }
+ catch (e)
+ {
+ }
+ }
+ }
+
+ w3c_slidy.hide_table_of_contents(e);
+ if (w3c_slidy.ie7) w3c_slidy.ie_hack();
+ w3c_slidy.stop_propagation(e);
+ return w3c_slidy.cancel(e);
+ },
+
+ // called onkeydown for toc entry
+ toc_keydown: function (event) {
+ var key;
+
+ if (!event)
+ var event = window.event;
+
+ // kludge around NS/IE differences
+ if (window.event)
+ key = window.event.keyCode;
+ else if (event.which)
+ key = event.which;
+ else
+ return true; // Yikes! unknown browser
+
+ // ignore event if key value is zero
+ // as for alt on Opera and Konqueror
+ if (!key)
+ return true;
+
+ // check for concurrent control/command/alt key
+ // but are these only present on mouse events?
+
+ if (event.ctrlKey || event.altKey)
+ return true;
+
+ if (key == 13)
+ {
+ var uri = this.getAttribute("href");
+
+ if (uri)
+ {
+ //alert("going to " + uri);
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.slide_number = w3c_slidy.find_slide_number(uri);
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_location();
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+ w3c_slidy.show_slide(slide);
+ //target.focus();
+
+ try
+ {
+ if (!w3c_slidy.opera)
+ w3c_slidy.help_anchor.focus();
+ }
+ catch (e)
+ {
+ }
+ }
+
+ w3c_slidy.hide_table_of_contents();
+
+ if (self.ie7)
+ w3c_slidy.ie_hack();
+
+ return w3c_slidy.cancel(event);
+ }
+
+ if (key == 40 && this.next)
+ {
+ this.next.focus();
+ return w3c_slidy.cancel(event);
+ }
+
+ if (key == 38 && this.previous)
+ {
+ this.previous.focus();
+ return w3c_slidy.cancel(event);
+ }
+
+ return true;
+ },
+
+
+ // ### OBSOLETE ###
+ before_print: function () {
+ this.show_all_slides();
+ this.hide_toolbar();
+ alert("before print");
+ },
+
+ // ### OBSOLETE ###
+ after_print: function () {
+ if (!this.view_all)
+ {
+ this.single_slide_view();
+ this.show_toolbar();
+ }
+ alert("after print");
+ },
+
+ // ### OBSOLETE ###
+ print_slides: function () {
+ this.before_print();
+ window.print();
+ this.after_print();
+ },
+
+ // ### OBSOLETE ?? ###
+ toggle_view: function () {
+ if (this.view_all)
+ {
+ this.single_slide_view();
+ this.show_toolbar();
+ this.view_all = 0;
+ }
+ else
+ {
+ this.show_all_slides();
+ this.hide_toolbar();
+ this.view_all = 1;
+ }
+ },
+
+ // prepare for printing ### OBSOLETE ###
+ show_all_slides: function () {
+ this.remove_class(document.body, "single_slide");
+ this.set_visibility_all_incremental("visible");
+ },
+
+ // restore after printing ### OBSOLETE ###
+ single_slide_view: function () {
+ this.add_class(document.body, "single_slide");
+ this.set_visibility_all_incremental("visible");
+ this.last_shown = this.previous_incremental_item(null);
+ },
+
+ // suppress IE's image toolbar pop up
+ hide_image_toolbar: function () {
+ if (!this.ns_pos)
+ {
+ var images = document.getElementsByTagName("IMG");
+
+ for (var i = 0; i < images.length; ++i)
+ images[i].setAttribute("galleryimg", "no");
+ }
+ },
+
+ unloaded: function (e) {
+ //alert("unloaded");
+ },
+
+ // Safari and Konqueror don't yet support getComputedStyle()
+ // and they always reload page when location.href is updated
+ is_KHTML: function () {
+ var agent = navigator.userAgent;
+ return (agent.indexOf("KHTML") >= 0 ? true : false);
+ },
+
+ // find slide name from first h1 element
+ // default to document title + slide number
+ slide_name: function (index) {
+ var name = null;
+ var slide = this.slides[index];
+
+ var heading = this.find_heading(slide);
+
+ if (heading)
+ name = this.extract_text(heading);
+
+ if (!name)
+ name = this.title + "(" + (index + 1) + ")";
+
+ name.replace(/\&/g, "&amp;");
+ name.replace(/\</g, "&lt;");
+ name.replace(/\>/g, "&gt;");
+
+ return name;
+ },
+
+ // find first h1 element in DOM tree
+ find_heading: function (node) {
+ if (!node || node.nodeType != 1)
+ return null;
+
+ if (node.nodeName == "H1" || node.nodeName == "h1")
+ return node;
+
+ var child = node.firstChild;
+
+ while (child)
+ {
+ node = this.find_heading(child);
+
+ if (node)
+ return node;
+
+ child = child.nextSibling;
+ }
+
+ return null;
+ },
+
+ // recursively extract text from DOM tree
+ extract_text: function (node) {
+ if (!node)
+ return "";
+
+ // text nodes
+ if (node.nodeType == 3)
+ return node.nodeValue;
+
+ // elements
+ if (node.nodeType == 1)
+ {
+ node = node.firstChild;
+ var text = "";
+
+ while (node)
+ {
+ text = text + this.extract_text(node);
+ node = node.nextSibling;
+ }
+
+ return text;
+ }
+
+ return "";
+ },
+
+ // find copyright text from meta element
+ find_copyright: function () {
+ var name, content;
+ var meta = document.getElementsByTagName("meta");
+
+ for (var i = 0; i < meta.length; ++i)
+ {
+ name = meta[i].getAttribute("name");
+ content = meta[i].getAttribute("content");
+
+ if (name == "copyright")
+ return content;
+ }
+
+ return null;
+ },
+
+ find_size_adjust: function () {
+ var name, content, offset;
+ var meta = document.getElementsByTagName("meta");
+
+ for (var i = 0; i < meta.length; ++i)
+ {
+ name = meta[i].getAttribute("name");
+ content = meta[i].getAttribute("content");
+
+ if (name == "font-size-adjustment")
+ return 1 * content;
+ }
+
+ return 1;
+ },
+
+ // <meta name="duration" content="20" /> for 20 minutes
+ find_duration: function () {
+ var name, content, offset;
+ var meta = document.getElementsByTagName("meta");
+
+ for (var i = 0; i < meta.length; ++i)
+ {
+ name = meta[i].getAttribute("name");
+ content = meta[i].getAttribute("content");
+
+ if (name == "duration")
+ return 60000 * content;
+ }
+
+ return null;
+ },
+
+ replace_by_non_breaking_space: function (str) {
+ for (var i = 0; i < str.length; ++i)
+ str[i] = 160;
+ },
+
+ // ### CHECK ME ### is use of "li" okay for text/html?
+ // for XHTML do we also need to specify namespace?
+ init_outliner: function () {
+ var items = document.getElementsByTagName("li");
+
+ for (var i = 0; i < items.length; ++i)
+ {
+ var target = items[i];
+
+ if (!this.has_class(target.parentNode, "outline"))
+ continue;
+
+ target.onclick = this.outline_click;
+/* ### more work needed for IE6
+ if (!this.ns_pos)
+ {
+ target.onmouseover = this.hover_outline;
+ target.onmouseout = this.unhover_outline;
+ }
+*/
+ if (this.foldable(target))
+ {
+ target.foldable = true;
+ target.onfocus = function () {w3c_slidy.outline = this;};
+ target.onblur = function () {w3c_slidy.outline = null;};
+
+ if (!target.getAttribute("tabindex"))
+ target.setAttribute("tabindex", "0");
+
+ if (this.has_class(target, "expand"))
+ this.unfold(target);
+ else
+ this.fold(target);
+ }
+ else
+ {
+ this.add_class(target, "nofold");
+ target.visible = true;
+ target.foldable = false;
+ }
+ }
+ },
+
+ foldable: function (item) {
+ if (!item || item.nodeType != 1)
+ return false;
+
+ var node = item.firstChild;
+
+ while (node)
+ {
+ if (node.nodeType == 1 && this.is_block(node))
+ return true;
+
+ node = node.nextSibling;
+ }
+
+ return false;
+ },
+
+ // ### CHECK ME ### switch to add/remove "hidden" class
+ fold: function (item) {
+ if (item)
+ {
+ this.remove_class(item, "unfolded");
+ this.add_class(item, "folded");
+ }
+
+ var node = item ? item.firstChild : null;
+
+ while (node)
+ {
+ if (node.nodeType == 1 && this.is_block(node)) // element
+ {
+ w3c_slidy.add_class(node, "hidden");
+ }
+
+ node = node.nextSibling;
+ }
+
+ item.visible = false;
+ },
+
+ // ### CHECK ME ### switch to add/remove "hidden" class
+ unfold: function (item) {
+ if (item)
+ {
+ this.add_class(item, "unfolded");
+ this.remove_class(item, "folded");
+ }
+
+ var node = item ? item.firstChild : null;
+
+ while (node)
+ {
+ if (node.nodeType == 1 && this.is_block(node)) // element
+ {
+ w3c_slidy.remove_class(node, "hidden");
+ }
+
+ node = node.nextSibling;
+ }
+
+ item.visible = true;
+ },
+
+ outline_click: function (e) {
+ if (!e)
+ e = window.event;
+
+ var rightclick = false;
+ var target = w3c_slidy.get_target(e);
+
+ while (target && target.visible == undefined)
+ target = target.parentNode;
+
+ if (!target)
+ return true;
+
+ if (e.which)
+ rightclick = (e.which == 3);
+ else if (e.button)
+ rightclick = (e.button == 2);
+
+ if (!rightclick && target.visible != undefined)
+ {
+ if (target.foldable)
+ {
+ if (target.visible)
+ w3c_slidy.fold(target);
+ else
+ w3c_slidy.unfold(target);
+ }
+
+ w3c_slidy.stop_propagation(e);
+ e.cancel = true;
+ e.returnValue = false;
+ }
+
+ return false;
+ },
+
+ add_initial_prompt: function () {
+ var prompt = this.create_element("div");
+ prompt.setAttribute("class", "initial_prompt");
+
+ var p1 = this.create_element("p");
+ prompt.appendChild(p1);
+ p1.setAttribute("class", "help");
+
+ if (this.keyboardless)
+ p1.innerHTML = "Tap footer to move to next slide";
+ else
+ p1.innerHTML = "Space or Right Arrow to move to next " +
+ "slide, click help below for more details";
+
+ this.add_listener(prompt, "click", function (e) {
+ document.body.removeChild(prompt);
+ w3c_slidy.stop_propagation(e);
+
+ if (e.cancel != undefined)
+ e.cancel = true;
+
+ if (e.returnValue != undefined)
+ e.returnValue = false;
+
+ return false;
+ });
+
+ document.body.appendChild(prompt);
+ this.initial_prompt = prompt;
+ setTimeout(function() {document.body.removeChild(prompt);}, 5000);
+ },
+
+ add_toolbar: function () {
+ var counter, page;
+
+ this.toolbar = this.create_element("div");
+ this.toolbar.setAttribute("class", "toolbar");
+
+ // a reasonably behaved browser
+ if (this.ns_pos || !this.ie6)
+ {
+ var right = this.create_element("div");
+ right.setAttribute("style", "float: right; text-align: right");
+
+ counter = this.create_element("span")
+ counter.innerHTML = "slide".localize() + " n/m";
+ right.appendChild(counter);
+ this.toolbar.appendChild(right);
+
+ var left = this.create_element("div");
+ left.setAttribute("style", "text-align: left");
+
+ // global end of slide indicator
+ this.eos = this.create_element("span");
+ this.eos.innerHTML = "* ";
+ left.appendChild(this.eos);
+
+ var help = this.create_element("a");
+ help.setAttribute("href", this.help_page);
+ help.setAttribute("title", this.help_text.localize());
+ help.innerHTML = "help?".localize();
+ left.appendChild(help);
+ this.help_anchor = help; // save for focus hack
+
+ var gap1 = document.createTextNode(" ");
+ left.appendChild(gap1);
+
+ var contents = this.create_element("a");
+ contents.setAttribute("href", "javascript:w3c_slidy.toggle_table_of_contents()");
+ contents.setAttribute("title", "table of contents".localize());
+ contents.innerHTML = "contents?".localize();
+ left.appendChild(contents);
+
+ var gap2 = document.createTextNode(" ");
+ left.appendChild(gap2);
+
+ var copyright = this.find_copyright();
+
+ if (copyright)
+ {
+ var span = this.create_element("span");
+ span.className = "copyright";
+ span.innerHTML = copyright;
+ left.appendChild(span);
+ }
+
+ this.toolbar.setAttribute("tabindex", "0");
+ this.toolbar.appendChild(left);
+ }
+ else // IE6 so need to work around its poor CSS support
+ {
+ this.toolbar.style.position = (this.ie7 ? "fixed" : "absolute");
+ this.toolbar.style.zIndex = "200";
+ this.toolbar.style.width = "99.9%";
+ this.toolbar.style.height = "1.2em";
+ this.toolbar.style.top = "auto";
+ this.toolbar.style.bottom = "0";
+ this.toolbar.style.left = "0";
+ this.toolbar.style.right = "0";
+ this.toolbar.style.textAlign = "left";
+ this.toolbar.style.fontSize = "60%";
+ this.toolbar.style.color = "red";
+ this.toolbar.borderWidth = 0;
+ this.toolbar.className = "toolbar";
+ this.toolbar.style.background = "rgb(240,240,240)";
+
+ // would like to have help text left aligned
+ // and page counter right aligned, floating
+ // div's don't work, so instead use nested
+ // absolutely positioned div's.
+
+ var sp = this.create_element("span");
+ sp.innerHTML = "&nbsp;&nbsp;*&nbsp;";
+ this.toolbar.appendChild(sp);
+ this.eos = sp; // end of slide indicator
+
+ var help = this.create_element("a");
+ help.setAttribute("href", this.help_page);
+ help.setAttribute("title", this.help_text.localize());
+ help.innerHTML = "help?".localize();
+ this.toolbar.appendChild(help);
+ this.help_anchor = help; // save for focus hack
+
+ var gap1 = document.createTextNode(" ");
+ this.toolbar.appendChild(gap1);
+
+ var contents = this.create_element("a");
+ contents.setAttribute("href", "javascript:toggleTableOfContents()");
+ contents.setAttribute("title", "table of contents".localize());
+ contents.innerHTML = "contents?".localize();
+ this.toolbar.appendChild(contents);
+
+ var gap2 = document.createTextNode(" ");
+ this.toolbar.appendChild(gap2);
+
+ var copyright = this.find_copyright();
+
+ if (copyright)
+ {
+ var span = this.create_element("span");
+ span.innerHTML = copyright;
+ span.style.color = "black";
+ span.style.marginLeft = "0.5em";
+ this.toolbar.appendChild(span);
+ }
+
+ counter = this.create_element("div")
+ counter.style.position = "absolute";
+ counter.style.width = "auto"; //"20%";
+ counter.style.height = "1.2em";
+ counter.style.top = "auto";
+ counter.style.bottom = 0;
+ counter.style.right = "0";
+ counter.style.textAlign = "right";
+ counter.style.color = "red";
+ counter.style.background = "rgb(240,240,240)";
+
+ counter.innerHTML = "slide".localize() + " n/m";
+ this.toolbar.appendChild(counter);
+ }
+
+ // ensure that click isn't passed through to the page
+ this.toolbar.onclick =
+ function (e) {
+ if (!e)
+ e = window.event;
+
+ var target = e.target;
+
+ if (!target && e.srcElement)
+ target = e.srcElement;
+
+ // work around Safari bug
+ if (target && target.nodeType == 3)
+ target = target.parentNode;
+
+ w3c_slidy.stop_propagation(e);
+
+ if (target && target.nodeName.toLowerCase() != "a")
+ w3c_slidy.mouse_button_click(e);
+ };
+
+ this.slide_number_element = counter;
+ this.set_eos_status(false);
+ document.body.appendChild(this.toolbar);
+ },
+
+ // wysiwyg editors make it hard to use div elements
+ // e.g. amaya loses the div when you copy and paste
+ // this function wraps div elements around implicit
+ // slides which start with an h1 element and continue
+ // up to the next heading or div element
+ wrap_implicit_slides: function () {
+ var i, heading, node, next, div;
+ var headings = document.getElementsByTagName("h1");
+
+ if (!headings)
+ return;
+
+ for (i = 0; i < headings.length; ++i)
+ {
+ heading = headings[i];
+
+ if (heading.parentNode != document.body)
+ continue;
+
+ node = heading.nextSibling;
+
+ div = document.createElement("div");
+ this.add_class(div, "slide");
+ document.body.replaceChild(div, heading);
+ div.appendChild(heading);
+
+ while (node)
+ {
+ if (node.nodeType == 1 && // an element
+ (node.nodeName == "H1" ||
+ node.nodeName == "h1" ||
+ node.nodeName == "DIV" ||
+ node.nodeName == "div"))
+ break;
+
+ next = node.nextSibling;
+ node = document.body.removeChild(node);
+ div.appendChild(node);
+ node = next;
+ }
+ }
+ },
+
+// return new array of all slides
+ collect_slides: function () {
+ var slides = new Array();
+ var divs = document.body.getElementsByTagName("div");
+
+ for (var i = 0; i < divs.length; ++i)
+ {
+ div = divs.item(i);
+
+ if (this.has_class(div, "slide"))
+ {
+ // add slide to collection
+ slides[slides.length] = div;
+
+ // hide each slide as it is found
+ this.add_class(div, "hidden");
+
+ // add dummy <br/> at end for scrolling hack
+ var node1 = document.createElement("br");
+ div.appendChild(node1);
+ var node2 = document.createElement("br");
+ div.appendChild(node2);
+ }
+ else if (this.has_class(div, "background"))
+ { // work around for Firefox SVG reload bug
+ // which otherwise replaces 1st SVG graphic with 2nd
+ div.style.display = "block";
+ }
+ }
+
+ this.slides = slides;
+ },
+
+ // return new array of all <div class="handout">
+ collect_notes: function () {
+ var notes = new Array();
+ var divs = document.body.getElementsByTagName("div");
+
+ for (var i = 0; i < divs.length; ++i)
+ {
+ div = divs.item(i);
+
+ if (this.has_class(div, "handout"))
+ {
+ // add note to collection
+ notes[notes.length] = div;
+
+ // and hide it
+ this.add_class(div, "hidden");
+ }
+ }
+
+ this.notes = notes;
+ },
+
+ // return new array of all <div class="background">
+ // including named backgrounds e.g. class="background titlepage"
+ collect_backgrounds: function () {
+ var backgrounds = new Array();
+ var divs = document.body.getElementsByTagName("div");
+
+ for (var i = 0; i < divs.length; ++i)
+ {
+ div = divs.item(i);
+
+ if (this.has_class(div, "background"))
+ {
+ // add background to collection
+ backgrounds[backgrounds.length] = div;
+
+ // and hide it
+ this.add_class(div, "hidden");
+ }
+ }
+
+ this.backgrounds = backgrounds;
+ },
+
+ // set click handlers on all anchors
+ patch_anchors: function () {
+ var self = w3c_slidy;
+ var handler = function (event) {
+ // compare this.href with location.href
+ // for link to another slide in this doc
+
+ if (self.page_address(this.href) == self.page_address(location.href))
+ {
+ // yes, so find new slide number
+ var newslidenum = self.find_slide_number(this.href);
+
+ if (newslidenum != self.slide_number)
+ {
+ var slide = self.slides[self.slide_number];
+ self.hide_slide(slide);
+ self.slide_number = newslidenum;
+ slide = self.slides[self.slide_number];
+ self.show_slide(slide);
+ self.set_location();
+ }
+ }
+ else if (this.target == null)
+ location.href = this.href;
+
+ this.blur();
+ self.disable_slide_click = true;
+ };
+
+ var anchors = document.body.getElementsByTagName("a");
+
+ for (var i = 0; i < anchors.length; ++i)
+ {
+ if (window.addEventListener)
+ anchors[i].addEventListener("click", handler, false);
+ else
+ anchors[i].attachEvent("onclick", handler);
+ }
+ },
+
+ // ### CHECK ME ### see which functions are invoked via setTimeout
+ // either directly or indirectly for use of w3c_slidy vs this
+ show_slide_number: function () {
+ var timer = w3c_slidy.get_timer();
+ w3c_slidy.slide_number_element.innerHTML = timer + "slide".localize() + " " +
+ (w3c_slidy.slide_number + 1) + "/" + w3c_slidy.slides.length;
+ },
+
+ // every 200mS check if the location has been changed as a
+ // result of the user activating the Back button/menu item
+ // doesn't work for Opera < 9.5
+ check_location: function () {
+ var hash = location.hash;
+
+ if (w3c_slidy.slide_number > 0 && (hash == "" || hash == "#"))
+ w3c_slidy.goto_slide(0);
+ else if (hash.length > 2 && hash != "#("+(w3c_slidy.slide_number+1)+")")
+ {
+ var num = parseInt(location.hash.substr(2));
+
+ if (!isNaN(num))
+ w3c_slidy.goto_slide(num-1);
+ }
+
+ if (w3c_slidy.time_left && w3c_slidy.slide_number > 0)
+ {
+ w3c_slidy.show_slide_number();
+
+ if (w3c_slidy.time_left > 0)
+ w3c_slidy.time_left -= 200;
+ }
+ },
+
+ get_timer: function () {
+ var timer = "";
+ if (w3c_slidy.time_left)
+ {
+ var mins, secs;
+ secs = Math.floor(w3c_slidy.time_left/1000);
+ mins = Math.floor(secs / 60);
+ secs = secs % 60;
+ timer = (mins ? mins+"m" : "") + secs + "s ";
+ }
+
+ return timer;
+ },
+
+ // this doesn't push location onto history stack for IE
+ // for which a hidden iframe hack is needed: load page into
+ // the iframe with script that set's parent's location.hash
+ // but that won't work for standalone use unless we can
+ // create the page dynamically via a javascript: URL
+ set_location: function () {
+ var uri = w3c_slidy.page_address(location.href);
+ var hash = "#(" + (w3c_slidy.slide_number+1) + ")";
+
+ if (w3c_slidy.slide_number >= 0)
+ uri = uri + hash;
+
+ if (w3c_slidy.ie && !w3c_slidy.ie8)
+ w3c_slidy.push_hash(hash);
+
+ if (uri != location.href) // && !khtml
+ location.href = uri;
+
+ if (this.khtml)
+ hash = "(" + (w3c_slidy.slide_number+1) + ")";
+
+ if (!this.ie && location.hash != hash && location.hash != "")
+ location.hash = hash;
+
+ document.title = w3c_slidy.title + " (" + (w3c_slidy.slide_number+1) + ")";
+ w3c_slidy.show_slide_number();
+ },
+
+ page_address: function (uri) {
+ var i = uri.indexOf("#");
+
+ if (i < 0)
+ i = uri.indexOf("%23");
+
+ // check if anchor is entire page
+
+ if (i < 0)
+ return uri; // yes
+
+ return uri.substr(0, i);
+ },
+
+ // only used for IE6 and IE7
+ on_frame_loaded: function (hash) {
+ location.hash = hash;
+ var uri = w3c_slidy.page_address(location.href);
+ location.href = uri + hash;
+ },
+
+ // history hack with thanks to Bertrand Le Roy
+ push_hash: function (hash) {
+ if (hash == "") hash = "#(1)";
+ window.location.hash = hash;
+
+ var doc = document.getElementById("historyFrame").contentWindow.document;
+ doc.open("javascript:'<html></html>'");
+ // PWL modified this string literal to break the close script tag
+ // which otherwise gets parsed when incorporated
+ doc.write("<html><head><script type=\"text/javascript\">window.parent.w3c_slidy.on_frame_loaded('"+
+ (hash) + "');</" + "script></head><body>hello mum</body></html>");
+ doc.close();
+ },
+
+ // find current slide based upon location
+ // first find target anchor and then look
+ // for associated div element enclosing it
+ // finally map that to slide number
+ find_slide_number: function (uri) {
+ // first get anchor from page location
+
+ var i = uri.indexOf("#");
+
+ // check if anchor is entire page
+ if (i < 0)
+ return 0; // yes
+
+ var anchor = unescape(uri.substr(i+1));
+
+ // now use anchor as XML ID to find target
+ var target = document.getElementById(anchor);
+
+ if (!target)
+ {
+ // does anchor look like "(2)" for slide 2 ??
+ // where first slide is (1)
+ var re = /\((\d)+\)/;
+
+ if (anchor.match(re))
+ {
+ var num = parseInt(anchor.substring(1, anchor.length-1));
+
+ if (num > this.slides.length)
+ num = 1;
+
+ if (--num < 0)
+ num = 0;
+
+ return num;
+ }
+
+ // accept [2] for backwards compatibility
+ re = /\[(\d)+\]/;
+
+ if (anchor.match(re))
+ {
+ var num = parseInt(anchor.substring(1, anchor.length-1));
+
+ if (num > this.slides.length)
+ num = 1;
+
+ if (--num < 0)
+ num = 0;
+
+ return num;
+ }
+
+ // oh dear unknown anchor
+ return 0;
+ }
+
+ // search for enclosing slide
+
+ while (true)
+ {
+ // browser coerces html elements to uppercase!
+ if (target.nodeName.toLowerCase() == "div" &&
+ this.has_class(target, "slide"))
+ {
+ // found the slide element
+ break;
+ }
+
+ // otherwise try parent element if any
+
+ target = target.parentNode;
+
+ if (!target)
+ {
+ return 0; // no luck!
+ }
+ };
+
+ for (i = 0; i < slides.length; ++i)
+ {
+ if (slides[i] == target)
+ return i; // success
+ }
+
+ // oh dear still no luck
+ return 0;
+ },
+
+ previous_slide: function (incremental) {
+ if (!w3c_slidy.view_all)
+ {
+ var slide;
+
+ if ((incremental || w3c_slidy.slide_number == 0) && w3c_slidy.last_shown != null)
+ {
+ w3c_slidy.last_shown = w3c_slidy.hide_previous_item(w3c_slidy.last_shown);
+ w3c_slidy.set_eos_status(false);
+ }
+ else if (w3c_slidy.slide_number > 0)
+ {
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+
+ w3c_slidy.slide_number = w3c_slidy.slide_number - 1;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.set_visibility_all_incremental("visible");
+ w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);
+ w3c_slidy.set_eos_status(true);
+ w3c_slidy.show_slide(slide);
+ }
+
+ w3c_slidy.set_location();
+
+ if (!w3c_slidy.ns_pos)
+ w3c_slidy.refresh_toolbar(200);
+ }
+ },
+
+ next_slide: function (incremental) {
+ if (!w3c_slidy.view_all)
+ {
+ var slide, last = w3c_slidy.last_shown;
+
+ if (incremental || w3c_slidy.slide_number == w3c_slidy.slides.length - 1)
+ w3c_slidy.last_shown = w3c_slidy.reveal_next_item(w3c_slidy.last_shown);
+
+ if ((!incremental || w3c_slidy.last_shown == null) &&
+ w3c_slidy.slide_number < w3c_slidy.slides.length - 1)
+ {
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+
+ w3c_slidy.slide_number = w3c_slidy.slide_number + 1;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.show_slide(slide);
+ }
+ else if (!w3c_slidy.last_shown)
+ {
+ if (last && incremental)
+ w3c_slidy.last_shown = last;
+ }
+
+ w3c_slidy.set_location();
+
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+
+ if (!w3c_slidy.ns_pos)
+ w3c_slidy.refresh_toolbar(200);
+ }
+ },
+
+ // to first slide with nothing revealed
+ // i.e. state at start of presentation
+ first_slide: function () {
+ if (!w3c_slidy.view_all)
+ {
+ var slide;
+
+ if (w3c_slidy.slide_number != 0)
+ {
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+
+ w3c_slidy.slide_number = 0;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.show_slide(slide);
+ }
+
+ w3c_slidy.set_eos_status(
+ !w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+ w3c_slidy.set_location();
+ }
+ },
+
+ // goto last slide with everything revealed
+ // i.e. state at end of presentation
+ last_slide: function () {
+ if (!w3c_slidy.view_all)
+ {
+ var slide;
+
+ w3c_slidy.last_shown = null; //revealNextItem(lastShown);
+
+ if (w3c_slidy.last_shown == null &&
+ w3c_slidy.slide_number < w3c_slidy.slides.length - 1)
+ {
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.slide_number = w3c_slidy.slides.length - 1;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.set_visibility_all_incremental("visible");
+ w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);
+
+ w3c_slidy.show_slide(slide);
+ }
+ else
+ {
+ w3c_slidy.set_visibility_all_incremental("visible");
+ w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);
+ }
+
+ w3c_slidy.set_eos_status(true);
+ w3c_slidy.set_location();
+ }
+ },
+
+
+ // ### check this and consider add/remove class
+ set_eos_status: function (state) {
+ if (this.eos)
+ this.eos.style.color = (state ? "rgb(240,240,240)" : "red");
+ },
+
+ // first slide is 0
+ goto_slide: function (num) {
+ //alert("going to slide " + (num+1));
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.slide_number = num;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+ document.title = w3c_slidy.title + " (" + (w3c_slidy.slide_number+1) + ")";
+ w3c_slidy.show_slide(slide);
+ w3c_slidy.show_slide_number();
+ },
+
+
+ show_slide: function (slide) {
+ this.sync_background(slide);
+ window.scrollTo(0,0);
+ this.remove_class(slide, "hidden");
+ },
+
+ hide_slide: function (slide) {
+ this.add_class(slide, "hidden");
+ },
+
+ // show just the backgrounds pertinent to this slide
+ // when slide background-color is transparent
+ // this should now work with rgba color values
+ sync_background: function (slide) {
+ var background;
+ var bgColor;
+
+ if (slide.currentStyle)
+ bgColor = slide.currentStyle["backgroundColor"];
+ else if (document.defaultView)
+ {
+ var styles = document.defaultView.getComputedStyle(slide,null);
+
+ if (styles)
+ bgColor = styles.getPropertyValue("background-color");
+ else // broken implementation probably due Safari or Konqueror
+ {
+ //alert("defective implementation of getComputedStyle()");
+ bgColor = "transparent";
+ }
+ }
+ else
+ bgColor == "transparent";
+
+ if (bgColor == "transparent" ||
+ bgColor.indexOf("rgba") >= 0 ||
+ bgColor.indexOf("opacity") >= 0)
+ {
+ var slideClass = this.get_class_list(slide);
+
+ for (var i = 0; i < this.backgrounds.length; i++)
+ {
+ background = this.backgrounds[i];
+
+ var bgClass = this.get_class_list(background);
+
+ if (this.matching_background(slideClass, bgClass))
+ this.remove_class(background, "hidden");
+ else
+ this.add_class(background, "hidden");
+ }
+ }
+ else // forcibly hide all backgrounds
+ this.hide_backgrounds();
+ },
+
+ hide_backgrounds: function () {
+ for (var i = 0; i < this.backgrounds.length; i++)
+ {
+ background = this.backgrounds[i];
+ this.add_class(background, "hidden");
+ }
+ },
+
+ // compare classes for slide and background
+ matching_background: function (slideClass, bgClass) {
+ var i, count, pattern, result;
+
+ // define pattern as regular expression
+ pattern = /\w+/g;
+
+ // check background class names
+ result = bgClass.match(pattern);
+
+ for (i = count = 0; i < result.length; i++)
+ {
+ if (result[i] == "hidden")
+ continue;
+
+ if (result[i] == "background")
+ continue;
+
+ ++count;
+ }
+
+ if (count == 0) // default match
+ return true;
+
+ // check for matches and place result in array
+ result = slideClass.match(pattern);
+
+ // now check if desired name is present for background
+ for (i = count = 0; i < result.length; i++)
+ {
+ if (result[i] == "hidden")
+ continue;
+
+ if (this.has_token(bgClass, result[i]))
+ return true;
+ }
+
+ return false;
+ },
+
+ resized: function () {
+ var width = 0;
+
+ if ( typeof( window.innerWidth ) == 'number' )
+ width = window.innerWidth; // Non IE browser
+ else if (document.documentElement && document.documentElement.clientWidth)
+ width = document.documentElement.clientWidth; // IE6
+ else if (document.body && document.body.clientWidth)
+ width = document.body.clientWidth; // IE4
+
+ var height = 0;
+
+ if ( typeof( window.innerHeight ) == 'number' )
+ height = window.innerHeight; // Non IE browser
+ else if (document.documentElement && document.documentElement.clientHeight)
+ height = document.documentElement.clientHeight; // IE6
+ else if (document.body && document.body.clientHeight)
+ height = document.body.clientHeight; // IE4
+
+ if (height && (width/height > 1.05*1024/768))
+ {
+ width = height * 1024.0/768;
+ }
+
+ // IE fires onresize even when only font size is changed!
+ // so we do a check to avoid blocking < and > actions
+ if (width != w3c_slidy.last_width || height != w3c_slidy.last_height)
+ {
+ if (width >= 1100)
+ w3c_slidy.size_index = 5; // 4
+ else if (width >= 1000)
+ w3c_slidy.size_index = 4; // 3
+ else if (width >= 800)
+ w3c_slidy.size_index = 3; // 2
+ else if (width >= 600)
+ w3c_slidy.size_index = 2; // 1
+ else if (width)
+ w3c_slidy.size_index = 0;
+
+ // add in font size adjustment from meta element e.g.
+ // <meta name="font-size-adjustment" content="-2" />
+ // useful when slides have too much content ;-)
+
+ if (0 <= w3c_slidy.size_index + w3c_slidy.size_adjustment &&
+ w3c_slidy.size_index + w3c_slidy.size_adjustment < w3c_slidy.sizes.length)
+ w3c_slidy.size_index = w3c_slidy.size_index + w3c_slidy.size_adjustment;
+
+ // enables cross browser use of relative width/height
+ // on object elements for use with SVG and Flash media
+ w3c_slidy.adjust_object_dimensions(width, height);
+
+ if (document.body.style.fontSize != w3c_slidy.sizes[w3c_slidy.size_index])
+ {
+ document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];
+ }
+
+ w3c_slidy.last_width = width;
+ w3c_slidy.last_height = height;
+
+ // force reflow to work around Mozilla bug
+ if (w3c_slidy.ns_pos)
+ {
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.show_slide(slide);
+ }
+
+ // force correct positioning of toolbar
+ w3c_slidy.refresh_toolbar(200);
+ }
+ },
+
+ scrolled: function () {
+ if (w3c_slidy.toolbar && !w3c_slidy.ns_pos && !w3c_slidy.ie7)
+ {
+ w3c_slidy.hack_offset = w3c_slidy.scroll_x_offset();
+ // hide toolbar
+ w3c_slidy.toolbar.style.display = "none";
+
+ // make it reappear later
+ if (w3c_slidy.scrollhack == 0 && !w3c_slidy.view_all)
+ {
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, 1000);
+ w3c_slidy.scrollhack = 1;
+ }
+ }
+ },
+
+ hide_toolbar: function () {
+ w3c_slidy.add_class(w3c_slidy.toolbar, "hidden");
+ window.focus();
+ },
+
+ // used to ensure IE refreshes toolbar in correct position
+ refresh_toolbar: function (interval) {
+ if (!w3c_slidy.ns_pos && !w3c_slidy.ie7)
+ {
+ w3c_slidy.hide_toolbar();
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, interval);
+ }
+ },
+
+ // restores toolbar after short delay
+ show_toolbar: function () {
+ if (w3c_slidy.want_toolbar)
+ {
+ w3c_slidy.toolbar.style.display = "block";
+
+ if (!w3c_slidy.ns_pos)
+ {
+ // adjust position to allow for scrolling
+ var xoffset = w3c_slidy.scroll_x_offset();
+ w3c_slidy.toolbar.style.left = xoffset;
+ w3c_slidy.toolbar.style.right = xoffset;
+
+ // determine vertical scroll offset
+ //var yoffset = scrollYOffset();
+
+ // bottom is doc height - window height - scroll offset
+ //var bottom = documentHeight() - lastHeight - yoffset
+
+ //if (yoffset > 0 || documentHeight() > lastHeight)
+ // bottom += 16; // allow for height of scrollbar
+
+ w3c_slidy.toolbar.style.bottom = 0; //bottom;
+ }
+
+ w3c_slidy.remove_class(w3c_slidy.toolbar, "hidden");
+ }
+
+ w3c_slidy.scrollhack = 0;
+
+
+ // set the keyboard focus to the help link on the
+ // toolbar to ensure that document has the focus
+ // IE doesn't always work with window.focus()
+ // and this hack has benefit of Enter for help
+
+ try
+ {
+ if (!w3c_slidy.opera)
+ w3c_slidy.help_anchor.focus();
+ }
+ catch (e)
+ {
+ }
+ },
+
+// invoked via F key
+ toggle_toolbar: function () {
+ if (!w3c_slidy.view_all)
+ {
+ if (w3c_slidy.has_class(w3c_slidy.toolbar, "hidden"))
+ {
+ w3c_slidy.remove_class(w3c_slidy.toolbar, "hidden")
+ w3c_slidy.want_toolbar = 1;
+ }
+ else
+ {
+ w3c_slidy.add_class(w3c_slidy.toolbar, "hidden")
+ w3c_slidy.want_toolbar = 0;
+ }
+ }
+ },
+
+ scroll_x_offset: function () {
+ if (window.pageXOffset)
+ return self.pageXOffset;
+
+ if (document.documentElement &&
+ document.documentElement.scrollLeft)
+ return document.documentElement.scrollLeft;
+
+ if (document.body)
+ return document.body.scrollLeft;
+
+ return 0;
+ },
+
+ scroll_y_offset: function () {
+ if (window.pageYOffset)
+ return self.pageYOffset;
+
+ if (document.documentElement &&
+ document.documentElement.scrollTop)
+ return document.documentElement.scrollTop;
+
+ if (document.body)
+ return document.body.scrollTop;
+
+ return 0;
+ },
+
+ // looking for a way to determine height of slide content
+ // the slide itself is set to the height of the window
+ optimize_font_size: function () {
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+
+ //var dh = documentHeight(); //getDocHeight(document);
+ var dh = slide.scrollHeight;
+ var wh = getWindowHeight();
+ var u = 100 * dh / wh;
+
+ alert("window utilization = " + u + "% (doc "
+ + dh + " win " + wh + ")");
+ },
+
+ // from document object
+ get_doc_height: function (doc) {
+ if (!doc)
+ doc = document;
+
+ if (doc && doc.body && doc.body.offsetHeight)
+ return doc.body.offsetHeight; // ns/gecko syntax
+
+ if (doc && doc.body && doc.body.scrollHeight)
+ return doc.body.scrollHeight;
+
+ alert("couldn't determine document height");
+ },
+
+ get_window_height: function () {
+ if ( typeof( window.innerHeight ) == 'number' )
+ return window.innerHeight; // Non IE browser
+
+ if (document.documentElement && document.documentElement.clientHeight)
+ return document.documentElement.clientHeight; // IE6
+
+ if (document.body && document.body.clientHeight)
+ return document.body.clientHeight; // IE4
+ },
+
+ document_height: function () {
+ var sh, oh;
+
+ sh = document.body.scrollHeight;
+ oh = document.body.offsetHeight;
+
+ if (sh && oh)
+ {
+ return (sh > oh ? sh : oh);
+ }
+
+ // no idea!
+ return 0;
+ },
+
+ smaller: function () {
+ if (w3c_slidy.size_index > 0)
+ {
+ --w3c_slidy.size_index;
+ }
+
+ w3c_slidy.toolbar.style.display = "none";
+ document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.show_slide(slide);
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, 50);
+ },
+
+ bigger: function () {
+ if (w3c_slidy.size_index < w3c_slidy.sizes.length - 1)
+ {
+ ++w3c_slidy.size_index;
+ }
+
+ w3c_slidy.toolbar.style.display = "none";
+ document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.show_slide(slide);
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, 50);
+ },
+
+ // enables cross browser use of relative width/height
+ // on object elements for use with SVG and Flash media
+ // with thanks to Ivan Herman for the suggestion
+ adjust_object_dimensions: function (width, height) {
+ for( var i = 0; i < w3c_slidy.objects.length; i++ )
+ {
+ var obj = this.objects[i];
+ var mimeType = obj.getAttribute("type");
+
+ if (mimeType == "image/svg+xml" || mimeType == "application/x-shockwave-flash")
+ {
+ if ( !obj.initialWidth )
+ obj.initialWidth = obj.getAttribute("width");
+
+ if ( !obj.initialHeight )
+ obj.initialHeight = obj.getAttribute("height");
+
+ if ( obj.initialWidth && obj.initialWidth.charAt(obj.initialWidth.length-1) == "%" )
+ {
+ var w = parseInt(obj.initialWidth.slice(0, obj.initialWidth.length-1));
+ var newW = width * (w/100.0);
+ obj.setAttribute("width",newW);
+ }
+
+ if ( obj.initialHeight &&
+ obj.initialHeight.charAt(obj.initialHeight.length-1) == "%" )
+ {
+ var h = parseInt(obj.initialHeight.slice(0, obj.initialHeight.length-1));
+ var newH = height * (h/100.0);
+ obj.setAttribute("height", newH);
+ }
+ }
+ }
+ },
+
+ // needed for Opera to inhibit default behavior
+ // since Opera delivers keyPress even if keyDown
+ // was cancelled
+ key_press: function (event) {
+ if (!event)
+ event = window.event;
+
+ if (!w3c_slidy.key_wanted)
+ return w3c_slidy.cancel(event);
+
+ return true;
+ },
+
+ // See e.g. http://www.quirksmode.org/js/events/keys.html for keycodes
+ key_down: function (event) {
+ var key;
+
+ w3c_slidy.key_wanted = true;
+
+ if (!event)
+ event = window.event;
+
+ // kludge around NS/IE differences
+ if (window.event)
+ key = window.event.keyCode;
+ else if (event.which)
+ key = event.which;
+ else
+ return true; // Yikes! unknown browser
+
+ // ignore event if key value is zero
+ // as for alt on Opera and Konqueror
+ if (!key)
+ return true;
+
+ // check for concurrent control/command/alt key
+ // but are these only present on mouse events?
+
+ if (event.ctrlKey || event.altKey || event.metaKey)
+ return true;
+
+ // dismiss table of contents if visible
+ if (w3c_slidy.is_shown_toc() && key != 9 && key != 16 && key != 38 && key != 40)
+ {
+ w3c_slidy.hide_table_of_contents();
+
+ if (key == 27 || key == 84 || key == 67)
+ return w3c_slidy.cancel(event);
+ }
+
+ if (key == 34) // Page Down
+ {
+ if (w3c_slidy.view_all)
+ return true;
+
+ w3c_slidy.next_slide(false);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 33) // Page Up
+ {
+ if (w3c_slidy.view_all)
+ return true;
+
+ w3c_slidy.previous_slide(false);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 32) // space bar
+ {
+ w3c_slidy.next_slide(true);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 37) // Left arrow
+ {
+ w3c_slidy.previous_slide(!event.shiftKey);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 36) // Home
+ {
+ w3c_slidy.first_slide();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 35) // End
+ {
+ w3c_slidy.last_slide();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 39) // Right arrow
+ {
+ w3c_slidy.next_slide(!event.shiftKey);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 13) // Enter
+ {
+ if (w3c_slidy.outline)
+ {
+ if (w3c_slidy.outline.visible)
+ w3c_slidy.fold(w3c_slidy.outline);
+ else
+ w3c_slidy.unfold(w3c_slidy.outline);
+
+ return w3c_slidy.cancel(event);
+ }
+ }
+ else if (key == 188) // < for smaller fonts
+ {
+ w3c_slidy.smaller();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 190) // > for larger fonts
+ {
+ w3c_slidy.bigger();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 189 || key == 109) // - for smaller fonts
+ {
+ w3c_slidy.smaller();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 187 || key == 191 || key == 107) // = + for larger fonts
+ {
+ w3c_slidy.bigger();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 83) // S for smaller fonts
+ {
+ w3c_slidy.smaller();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 66) // B for larger fonts
+ {
+ w3c_slidy.bigger();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 90) // Z for last slide
+ {
+ w3c_slidy.last_slide();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 70) // F for toggle toolbar
+ {
+ w3c_slidy.toggle_toolbar();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 65) // A for toggle view single/all slides
+ {
+ w3c_slidy.toggle_view();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 75) // toggle action of left click for next page
+ {
+ w3c_slidy.mouse_click_enabled = !w3c_slidy.mouse_click_enabled;
+ var alert_msg = (w3c_slidy.mouse_click_enabled ?
+ "enabled" : "disabled") + " mouse click advance";
+
+ alert(alert_msg.localize());
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 84 || key == 67) // T or C for table of contents
+ {
+ if (w3c_slidy.toc)
+ w3c_slidy.toggle_table_of_contents();
+
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 72) // H for help
+ {
+ window.location = w3c_slidy.help_page;
+ return w3c_slidy.cancel(event);
+ }
+ //else alert("key code is "+ key);
+
+ return true;
+ },
+
+ // safe for both text/html and application/xhtml+xml
+ create_element: function (name) {
+ if (this.xhtml && (typeof document.createElementNS != 'undefined'))
+ return document.createElementNS("http://www.w3.org/1999/xhtml", name)
+
+ return document.createElement(name);
+ },
+
+ get_element_style: function (elem, IEStyleProp, CSSStyleProp) {
+ if (elem.currentStyle)
+ {
+ return elem.currentStyle[IEStyleProp];
+ }
+ else if (window.getComputedStyle)
+ {
+ var compStyle = window.getComputedStyle(elem, "");
+ return compStyle.getPropertyValue(CSSStyleProp);
+ }
+ return "";
+ },
+
+ // the string str is a whitespace separated list of tokens
+ // test if str contains a particular token, e.g. "slide"
+ has_token: function (str, token) {
+ if (str)
+ {
+ // define pattern as regular expression
+ var pattern = /\w+/g;
+
+ // check for matches
+ // place result in array
+ var result = str.match(pattern);
+
+ // now check if desired token is present
+ for (var i = 0; i < result.length; i++)
+ {
+ if (result[i] == token)
+ return true;
+ }
+ }
+
+ return false;
+ },
+
+ get_class_list: function (element) {
+ if (typeof element.className != 'undefined')
+ return element.className;
+
+ return element.getAttribute("class");
+ },
+
+ has_class: function (element, name) {
+ if (element.nodeType != 1)
+ return false;
+
+ var regexp = new RegExp("(^| )" + name + "\W*");
+
+ if (typeof element.className != 'undefined')
+ return regexp.test(element.className);
+
+ return regexp.test(element.getAttribute("class"));
+ },
+
+ remove_class: function (element, name) {
+ var regexp = new RegExp("(^| )" + name + "\W*");
+ var clsval = "";
+
+ if (typeof element.className != 'undefined')
+ {
+ clsval = element.className;
+
+ if (clsval)
+ {
+ clsval = clsval.replace(regexp, "");
+ element.className = clsval;
+ }
+ }
+ else
+ {
+ clsval = element.getAttribute("class");
+
+ if (clsval)
+ {
+ clsval = clsval.replace(regexp, "");
+ element.setAttribute("class", clsval);
+ }
+ }
+ },
+
+ add_class: function (element, name) {
+ if (!this.has_class(element, name))
+ {
+ if (typeof element.className != 'undefined')
+ element.className += " " + name;
+ else
+ {
+ var clsval = element.getAttribute("class");
+ clsval = clsval ? clsval + " " + name : name;
+ element.setAttribute("class", clsval);
+ }
+ }
+ },
+
+ // HTML elements that can be used with class="incremental"
+ // note that you can also put the class on containers like
+ // up, ol, dl, and div to make their contents appear
+ // incrementally. Upper case is used since this is what
+ // browsers report for HTML node names (text/html).
+ incremental_elements: null,
+ okay_for_incremental: function (name) {
+ if (!this.incremental_elements)
+ {
+ var inclist = new Array();
+ inclist["p"] = true;
+ inclist["pre"] = true;
+ inclist["li"] = true;
+ inclist["blockquote"] = true;
+ inclist["dt"] = true;
+ inclist["dd"] = true;
+ inclist["h2"] = true;
+ inclist["h3"] = true;
+ inclist["h4"] = true;
+ inclist["h5"] = true;
+ inclist["h6"] = true;
+ inclist["span"] = true;
+ inclist["address"] = true;
+ inclist["table"] = true;
+ inclist["tr"] = true;
+ inclist["th"] = true;
+ inclist["td"] = true;
+ inclist["img"] = true;
+ inclist["object"] = true;
+ this.incremental_elements = inclist;
+ }
+ return this.incremental_elements[name.toLowerCase()];
+ },
+
+ next_incremental_item: function (node) {
+ var br = this.is_xhtml ? "br" : "BR";
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+
+ for (;;)
+ {
+ node = w3c_slidy.next_node(slide, node);
+
+ if (node == null || node.parentNode == null)
+ break;
+
+ if (node.nodeType == 1) // ELEMENT
+ {
+ if (node.nodeName == br)
+ continue;
+
+ if (w3c_slidy.has_class(node, "incremental")
+ && w3c_slidy.okay_for_incremental(node.nodeName))
+ return node;
+
+ if (w3c_slidy.has_class(node.parentNode, "incremental")
+ && !w3c_slidy.has_class(node, "non-incremental"))
+ return node;
+ }
+ }
+
+ return node;
+ },
+
+ previous_incremental_item: function (node) {
+ var br = this.is_xhtml ? "br" : "BR";
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+
+ for (;;)
+ {
+ node = w3c_slidy.previous_node(slide, node);
+
+ if (node == null || node.parentNode == null)
+ break;
+
+ if (node.nodeType == 1)
+ {
+ if (node.nodeName == br)
+ continue;
+
+ if (w3c_slidy.has_class(node, "incremental")
+ && w3c_slidy.okay_for_incremental(node.nodeName))
+ return node;
+
+ if (w3c_slidy.has_class(node.parentNode, "incremental")
+ && !w3c_slidy.has_class(node, "non-incremental"))
+ return node;
+ }
+ }
+
+ return node;
+ },
+
+ // set visibility for all elements on current slide with
+ // a parent element with attribute class="incremental"
+ set_visibility_all_incremental: function (value) {
+ var node = this.next_incremental_item(null);
+
+ if (value == "hidden")
+ {
+ while (node)
+ {
+ w3c_slidy.add_class(node, "invisible");
+ node = w3c_slidy.next_incremental_item(node);
+ }
+ }
+ else // value == "visible"
+ {
+ while (node)
+ {
+ w3c_slidy.remove_class(node, "invisible");
+ node = w3c_slidy.next_incremental_item(node);
+ }
+ }
+ },
+
+ // reveal the next hidden item on the slide
+ // node is null or the node that was last revealed
+ reveal_next_item: function (node) {
+ node = w3c_slidy.next_incremental_item(node);
+
+ if (node && node.nodeType == 1) // an element
+ w3c_slidy.remove_class(node, "invisible");
+
+ return node;
+ },
+
+ // exact inverse of revealNextItem(node)
+ hide_previous_item: function (node) {
+ if (node && node.nodeType == 1) // an element
+ w3c_slidy.add_class(node, "invisible");
+
+ return this.previous_incremental_item(node);
+ },
+
+ // left to right traversal of root's content
+ next_node: function (root, node) {
+ if (node == null)
+ return root.firstChild;
+
+ if (node.firstChild)
+ return node.firstChild;
+
+ if (node.nextSibling)
+ return node.nextSibling;
+
+ for (;;)
+ {
+ node = node.parentNode;
+
+ if (!node || node == root)
+ break;
+
+ if (node && node.nextSibling)
+ return node.nextSibling;
+ }
+
+ return null;
+ },
+
+ // right to left traversal of root's content
+ previous_node: function (root, node) {
+ if (node == null)
+ {
+ node = root.lastChild;
+
+ if (node)
+ {
+ while (node.lastChild)
+ node = node.lastChild;
+ }
+
+ return node;
+ }
+
+ if (node.previousSibling)
+ {
+ node = node.previousSibling;
+
+ while (node.lastChild)
+ node = node.lastChild;
+
+ return node;
+ }
+
+ if (node.parentNode != root)
+ return node.parentNode;
+
+ return null;
+ },
+
+ previous_sibling_element: function (el) {
+ el = el.previousSibling;
+
+ while (el && el.nodeType != 1)
+ el = el.previousSibling;
+
+ return el;
+ },
+
+ next_sibling_element: function (el) {
+ el = el.nextSibling;
+
+ while (el && el.nodeType != 1)
+ el = el.nextSibling;
+
+ return el;
+ },
+
+ first_child_element: function (el) {
+ var node;
+
+ for (node = el.firstChild; node; node = node.nextSibling)
+ {
+ if (node.nodeType == 1)
+ break;
+ }
+
+ return node;
+ },
+
+ first_tag: function (element, tag) {
+ var node;
+
+ if (!this.is_xhtml)
+ tag = tag.toUpperCase();
+
+ for (node = element.firstChild; node; node = node.nextSibling)
+ {
+ if (node.nodeType == 1 && node.nodeName == tag)
+ break;
+ }
+
+ return node;
+ },
+
+ hide_selection: function () {
+ if (window.getSelection) // Firefox, Chromium, Safari, Opera
+ {
+ var selection = window.getSelection();
+
+ if (selection.rangeCount > 0)
+ {
+ var range = selection.getRangeAt(0);
+ range.collapse (false);
+ }
+ }
+ else // Internet Explorer
+ {
+ var textRange = document.selection.createRange ();
+ textRange.collapse (false);
+ }
+ },
+
+ get_selected_text: function () {
+ try
+ {
+ if (window.getSelection)
+ return window.getSelection().toString();
+
+ if (document.getSelection)
+ return document.getSelection().toString();
+
+ if (document.selection)
+ return document.selection.createRange().text;
+ }
+ catch (e)
+ {
+ }
+
+ return "";
+ },
+
+ // make note of length of selected text
+ // as this evaluates to zero in click event
+ mouse_button_up: function (e) {
+ w3c_slidy.selected_text_len = w3c_slidy.get_selected_text().length;
+ },
+
+ // right mouse button click is reserved for context menus
+ // it is more reliable to detect rightclick than leftclick
+ mouse_button_click: function (e) {
+ var rightclick = false;
+ var leftclick = false;
+ var middleclick = false;
+ var target;
+
+ if (!e)
+ var e = window.event;
+
+ if (e.target)
+ target = e.target;
+ else if (e.srcElement)
+ target = e.srcElement;
+
+ // work around Safari bug
+ if (target.nodeType == 3)
+ target = target.parentNode;
+
+ if (e.which) // all browsers except IE
+ {
+ leftclick = (e.which == 1);
+ middleclick = (e.which == 2);
+ rightclick = (e.which == 3);
+ }
+ else if (e.button)
+ {
+ // Konqueror gives 1 for left, 4 for middle
+ // IE6 gives 0 for left and not 1 as I expected
+
+ if (e.button == 4)
+ middleclick = true;
+
+ // all browsers agree on 2 for right button
+ rightclick = (e.button == 2);
+ }
+ else leftclick = true;
+/*
+ alert("you clicked over a " + target.nodeName + " element\n" +
+ "w3c_slidy.mouse_click_enabled = " + w3c_slidy.mouse_click_enabled + "\n" +
+ "leftclick = " + leftclick + "\n" +
+ "selected text length = " + w3c_slidy.selected_text_len);
+ //alert("selected text length = " + w3c_slidy.selected_text_len);
+*/
+ if (w3c_slidy.selected_text_len > 0)
+ {
+ w3c_slidy.stop_propagation(e);
+ e.cancel = true;
+ e.returnValue = false;
+ return false;
+ }
+
+ // dismiss table of contents
+ w3c_slidy.hide_table_of_contents();
+
+ // check if target is something that probably want's clicks
+ // e.g. a, embed, object, input, textarea, select, option
+ var tag = target.nodeName.toLowerCase();
+
+ if (w3c_slidy.mouse_click_enabled && leftclick &&
+ tag != "a" &&
+ tag != "embed" &&
+ tag != "object" &&
+ tag != "video" &&
+ tag != "input" &&
+ tag != "textarea" &&
+ tag != "select" &&
+ tag != "option" &&
+ !target.onclick)
+ {
+ w3c_slidy.next_slide(true);
+ w3c_slidy.stop_propagation(e);
+ e.cancel = true;
+ e.returnValue = false;
+ return false;
+ }
+ },
+
+ get_key: function (e)
+ {
+ var key;
+
+ // kludge around NS/IE differences
+ if (typeof window.event != "undefined")
+ key = window.event.keyCode;
+ else if (e.which)
+ key = e.which;
+
+ return key;
+ },
+
+ get_target: function (e) {
+ var target;
+
+ if (!e)
+ e = window.event;
+
+ if (e.target)
+ target = e.target;
+ else if (e.srcElement)
+ target = e.srcElement;
+
+ if (target.nodeType != 1)
+ target = target.parentNode;
+
+ return target;
+ },
+
+ // does display property provide correct defaults?
+ is_block: function (elem) {
+ var tag = elem.nodeName.toLowerCase();
+
+ return tag == "ol" || tag == "ul" || tag == "p" ||
+ tag == "li" || tag == "table" || tag == "pre" ||
+ tag == "h1" || tag == "h2" || tag == "h3" ||
+ tag == "h4" || tag == "h5" || tag == "h6" ||
+ tag == "blockquote" || tag == "address";
+ },
+
+ add_listener: function (element, event, handler) {
+ if (window.addEventListener)
+ element.addEventListener(event, handler, false);
+ else
+ element.attachEvent("on"+event, handler);
+ },
+
+ // used to prevent event propagation from field controls
+ stop_propagation: function (event) {
+ event = event ? event : window.event;
+ event.cancelBubble = true; // for IE
+
+ if (event.stopPropagation)
+ event.stopPropagation();
+
+ return true;
+ },
+
+ cancel: function (event) {
+ if (event)
+ {
+ event.cancel = true;
+ event.returnValue = false;
+
+ if (event.preventDefault)
+ event.preventDefault();
+ }
+
+ w3c_slidy.key_wanted = false;
+ return false;
+ }
+};
+
+// for each language define an associative array
+// and also the help text which is longer
+
+var w3c_slidy_i18n = {
+ strings_es: {
+ "slide":"pág.",
+ "help?":"Ayuda",
+ "contents?":"Índice",
+ "table of contents":"tabla de contenidos",
+ "Table of Contents":"Tabla de Contenidos",
+ "restart presentation":"Reiniciar presentación",
+ "restart?":"Inicio"
+ },
+ help_es:
+ "Utilice el ratón, barra espaciadora, teclas Izda/Dcha, " +
+ "o Re pág y Av pág. Use S y B para cambiar el tamaño de fuente.",
+
+ strings_ca: {
+ "slide":"pàg..",
+ "help?":"Ajuda",
+ "contents?":"Índex",
+ "table of contents":"taula de continguts",
+ "Table of Contents":"Taula de Continguts",
+ "restart presentation":"Reiniciar presentació",
+ "restart?":"Inici"
+ },
+ help_ca:
+ "Utilitzi el ratolí, barra espaiadora, tecles Esq./Dta. " +
+ "o Re pàg y Av pàg. Usi S i B per canviar grandària de font.",
+
+ strings_cs: {
+ "slide":"snímek",
+ "help?":"nápověda",
+ "contents?":"obsah",
+ "table of contents":"obsah prezentace",
+ "Table of Contents":"Obsah prezentace",
+ "restart presentation":"znovu spustit prezentaci",
+ "restart?":"restart"
+ },
+ help_cs:
+ "Prezentaci můžete procházet pomocí kliknutí myši, mezerníku, " +
+ "šipek vlevo a vpravo nebo kláves PageUp a PageDown. Písmo se " +
+ "dá zvětšit a zmenšit pomocí kláves B a S.",
+
+ strings_nl: {
+ "slide":"pagina",
+ "help?":"Help?",
+ "contents?":"Inhoud?",
+ "table of contents":"inhoudsopgave",
+ "Table of Contents":"Inhoudsopgave",
+ "restart presentation":"herstart presentatie",
+ "restart?":"Herstart?"
+ },
+ help_nl:
+ "Navigeer d.m.v. het muis, spatiebar, Links/Rechts toetsen, " +
+ "of PgUp en PgDn. Gebruik S en B om de karaktergrootte te veranderen.",
+
+ strings_de: {
+ "slide":"Seite",
+ "help?":"Hilfe",
+ "contents?":"Übersicht",
+ "table of contents":"Inhaltsverzeichnis",
+ "Table of Contents":"Inhaltsverzeichnis",
+ "restart presentation":"Präsentation neu starten",
+ "restart?":"Neustart"
+ },
+ help_de:
+ "Benutzen Sie die Maus, Leerschlag, die Cursortasten links/rechts oder " +
+ "Page up/Page Down zum Wechseln der Seiten und S und B für die Schriftgrösse.",
+
+ strings_pl: {
+ "slide":"slajd",
+ "help?":"pomoc?",
+ "contents?":"spis treści?",
+ "table of contents":"spis treści",
+ "Table of Contents":"Spis Treści",
+ "restart presentation":"Restartuj prezentację",
+ "restart?":"restart?"
+ },
+ help_pl:
+ "Zmieniaj slajdy klikając myszą, naciskając spację, strzałki lewo/prawo" +
+ "lub PgUp / PgDn. Użyj klawiszy S i B, aby zmienić rozmiar czczionki.",
+
+ strings_fr: {
+ "slide":"page",
+ "help?":"Aide",
+ "contents?":"Index",
+ "table of contents":"table des matières",
+ "Table of Contents":"Table des matières",
+ "restart presentation":"Recommencer l'exposé",
+ "restart?":"Début"
+ },
+ help_fr:
+ "Naviguez avec la souris, la barre d'espace, les flèches " +
+ "gauche/droite ou les touches Pg Up, Pg Dn. Utilisez " +
+ "les touches S et B pour modifier la taille de la police.",
+
+ strings_hu: {
+ "slide":"oldal",
+ "help?":"segítség",
+ "contents?":"tartalom",
+ "table of contents":"tartalomjegyzék",
+ "Table of Contents":"Tartalomjegyzék",
+ "restart presentation":"bemutató újraindítása",
+ "restart?":"újraindítás"
+ },
+ help_hu:
+ "Az oldalak közti lépkedéshez kattintson az egérrel, vagy " +
+ "használja a szóköz, a bal, vagy a jobb nyíl, illetve a Page Down, " +
+ "Page Up billentyűket. Az S és a B billentyűkkel változtathatja " +
+ "a szöveg méretét.",
+
+ strings_it: {
+ "slide":"pag.",
+ "help?":"Aiuto",
+ "contents?":"Indice",
+ "table of contents":"indice",
+ "Table of Contents":"Indice",
+ "restart presentation":"Ricominciare la presentazione",
+ "restart?":"Inizio"
+ },
+ help_it:
+ "Navigare con mouse, barra spazio, frecce sinistra/destra o " +
+ "PgUp e PgDn. Usare S e B per cambiare la dimensione dei caratteri.",
+
+ strings_el: {
+ "slide":"σελίδα",
+ "help?":"βοήθεια;",
+ "contents?":"περιεχόμενα;",
+ "table of contents":"πίνακας περιεχομένων",
+ "Table of Contents":"Πίνακας Περιεχομένων",
+ "restart presentation":"επανεκκίνηση παρουσίασης",
+ "restart?":"επανεκκίνηση;"
+ },
+ help_el:
+ "Πλοηγηθείτε με το κλίκ του ποντικιού, το space, τα βέλη αριστερά/δεξιά, " +
+ "ή Page Up και Page Down. Χρησιμοποιήστε τα πλήκτρα S και B για να αλλάξετε " +
+ "το μέγεθος της γραμματοσειράς.",
+
+ strings_ja: {
+ "slide":"スライド",
+ "help?":"ヘルプ",
+ "contents?":"目次",
+ "table of contents":"目次を表示",
+ "Table of Contents":"目次",
+ "restart presentation":"最初から再生",
+ "restart?":"最初から"
+ },
+ help_ja:
+ "マウス左クリック ・ スペース ・ 左右キー " +
+ "または Page Up ・ Page Downで操作, S ・ Bでフォントサイズ変更",
+
+ strings_zh: {
+ "slide":"幻灯片",
+ "help?":"帮助?",
+ "contents?":"内容?",
+ "table of contents":"目录",
+ "Table of Contents":"目录",
+ "restart presentation":"重新启动展示",
+ "restart?":"重新启动?"
+ },
+ help_zh:
+ "用鼠标点击, 空格条, 左右箭头, Pg Up 和 Pg Dn 导航. " +
+ "用 S, B 改变字体大小.",
+
+ strings_ru: {
+ "slide":"слайд",
+ "help?":"помощь?",
+ "contents?":"содержание?",
+ "table of contents":"оглавление",
+ "Table of Contents":"Оглавление",
+ "restart presentation":"перезапустить презентацию",
+ "restart?":"перезапуск?"
+ },
+ help_ru:
+ "Перемещайтесь кликая мышкой, используя клавишу пробел, стрелки" +
+ "влево/вправо или Pg Up и Pg Dn. Клавиши S и B меняют размер шрифта.",
+
+ strings_sv: {
+ "slide":"sida",
+ "help?":"hjälp",
+ "contents?":"innehåll",
+ "table of contents":"innehållsförteckning",
+ "Table of Contents":"Innehållsförteckning",
+ "restart presentation":"visa presentationen från början",
+ "restart?":"börja om"
+ },
+ help_sv:
+ "Bläddra med ett klick med vänstra musknappen, mellanslagstangenten, " +
+ "vänster- och högerpiltangenterna eller tangenterna Pg Up, Pg Dn. " +
+ "Använd tangenterna S och B för att ändra textens storlek.",
+
+// each such language array is declared in the localize array
+// which is set on string prototype and used as in "foo".localize();
+ localize: {
+ "es":this.strings_es,
+ "ca":this.strings_ca,
+ "cs":this.strings_cs,
+ "nl":this.strings_nl,
+ "de":this.strings_de,
+ "pl":this.strings_pl,
+ "fr":this.strings_fr,
+ "hu":this.strings_hu,
+ "it":this.strings_it,
+ "el":this.strings_el,
+ "jp":this.strings_ja,
+ "zh":this.strings_zh,
+ "ru":this.strings_ru,
+ "sv":this.strings_sv
+ },
+
+ init: function () {
+ var i18n = w3c_slidy_i18n;
+ var help_text = w3c_slidy.help_text;
+ i18n.strings_es[help_text] = i18n.help_es;
+ i18n.strings_ca[help_text] = i18n.help_ca;
+ i18n.strings_cs[help_text] = i18n.help_cs;
+ i18n.strings_nl[help_text] = i18n.help_nl;
+ i18n.strings_de[help_text] = i18n.help_de;
+ i18n.strings_pl[help_text] = i18n.help_pl;
+ i18n.strings_fr[help_text] = i18n.help_fr;
+ i18n.strings_hu[help_text] = i18n.help_hu;
+ i18n.strings_it[help_text] = i18n.help_it;
+ i18n.strings_el[help_text] = i18n.help_el;
+ i18n.strings_ja[help_text] = i18n.help_ja;
+ i18n.strings_zh[help_text] = i18n.help_zh;
+ i18n.strings_ru[help_text] = i18n.help_ru;
+ i18n.strings_sv[help_text] = i18n.help_sv;
+
+ w3c_slidy.lang = document.body.parentNode.getAttribute("lang");
+
+ if (!w3c_slidy.lang)
+ w3c_slidy.lang = document.body.parentNode.getAttribute("xml:lang");
+
+ if (!w3c_slidy.lang)
+ w3c_slidy.lang = "en";
+
+ // add localize method to all strings
+ // for use as in "contents".localize()
+ String.prototype.localize = function() {
+ if (this == "")
+ return this;
+
+ // try full language code, e.g. en-US
+ var s, lookup = w3c_slidy_i18n.localize[w3c_slidy.lang];
+
+ if (lookup)
+ {
+ s = lookup[this];
+
+ if (s)
+ return s;
+ }
+
+ // strip country code suffix, e.g.
+ // try en if undefined for en-US
+ var lg = w3c_slidy.lang.split("-");
+
+ if (lg.length > 1)
+ {
+ lookup = w3c_slidy_i18n.localize[lg[0]];
+
+ if (lookup)
+ {
+ s = lookup[this];
+
+ if (s)
+ return s;
+ }
+ }
+
+ // otherwise string as is
+ return this;
+ };
+ }
+};
+
+// hack for back button behavior
+if (w3c_slidy.ie6 || w3c_slidy.ie7)
+{
+ document.write("<iframe id='historyFrame' " +
+ "src='javascript:\"<html"+"></"+"html>\"' " +
+ "height='1' width='1' " +
+ "style='position:absolute;left:-800px'></iframe>");
+}
+
+// attach event listeners for initialization
+w3c_slidy.set_up();
+
+// hide the slides as soon as body element is available
+// to reduce annoying screen mess before the onload event
+setTimeout(w3c_slidy.hide_slides, 50);
+
+/*]]>*/
+</script>
+</head>
+<body class="article" style="max-width:45em">
+<div id="header" class="slide">
+<h1>Path Loss and Link Budget</h1>
+<span id="author">Harald Welte &lt;hwelte@sysmocom.de&gt;</span><br />
+</div>
+<div class="sect1 slide">
+<h1 id="rf-path-loss">Path Loss</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="paragraph"><p>A fundamental concept in planning any type of radio communications link
+is the concept of <em>Path Loss</em>. Path Loss describes the amount of
+signal loss (attenuation) between a receive and a transmitter.</p></div>
+<div class="paragraph"><p>As GSM operates in frequency duplex on uplink and downlink, there is
+correspondingly an <em>Uplink Path Loss</em> from MS to BTS, and a <em>Downlink
+Path Loss</em> from BTS to MS. Both need to be considered.</p></div>
+<div class="paragraph"><p>It is possible to compute the path loss in a theoretical ideal
+situation, where transmitter and receiver are in empty space, with no
+surfaces anywhere nearby causing reflections, and with no objects or
+materials in between them. This is generally called the <em>Free Space
+Path Loss</em>.</p></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="rf-path-loss">Path Loss</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="paragraph"><p>Estimating the path loss within a given real-world terrain/geography is
+a hard problem, and there are no easy solutions. It is impacted, among
+other things, by</p></div>
+<ul class="">
+<li>
+<span>
+the height of the transmitter and receiver antennas
+</span>
+</li>
+<li>
+<span>
+whether there is line-of-sight (LOS) or non-line-of-sight (NLOS)
+</span>
+</li>
+<li>
+<span>
+the geography/terrain in terms of hills, mountains, etc.
+</span>
+</li>
+<li>
+<span>
+the vegetation in terms of attenuation by foliage
+</span>
+</li>
+<li>
+<span>
+any type of construction, and if so, the type of materials used in
+ that construction, the height of the buildings, their distance, etc.
+</span>
+</li>
+<li>
+<span>
+the frequency (band) used. Lower frequencies generally expose better
+ NLOS characteristics than higher frequencies.
+</span>
+</li>
+</ul>
+<div class="paragraph"><p>The above factors determine on the one hand side the actual attenuation
+of the radio wave between transmitter and receiver. On the other
+hand, they also determine how many reflections there are on this path,
+causing so-called <em>Multipath Fading</em> of the signal.</p></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_radio_propagation_models">Radio Propagation Models</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="paragraph"><p>Over decades, many different radio propagation models have been designed
+by scientists and engineers. They might be based on empirical studies
+condensed down into relatively simple models, or they might be based on
+ray-tracing in a 3D model of the terrain.</p></div>
+<div class="paragraph"><p>Several companies have developed (expensive, proprietary) simulation
+software that can help with this process in detail. However, the
+results of such simulation also depend significantly on the availability
+of precise 3D models of the geography/terrain as well as the building
+structure in the coverage area.</p></div>
+<div class="paragraph"><p>In absence of such simulation software and/or precise models, there are
+several models that can help, depending on the general terrain:</p></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_common_path_loss_models">Common Path Loss Models</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="tableblock" id="path-loss-models">
+<table rules="all"
+width="100%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 1. List of common path loss models</caption>
+<col width="20%" />
+<col width="20%" />
+<col width="20%" />
+<col width="40%" />
+<thead>
+<tr>
+<th align="left" valign="top">Type</th>
+<th align="left" valign="top">Sub-Type</th>
+<th align="left" valign="top">Bands</th>
+<th align="left" valign="top">Name</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">Terrain</p></td>
+<td align="left" valign="top"><p class="table">-</p></td>
+<td align="left" valign="top"><p class="table">850, 900, 1800, 1900</p></td>
+<td align="left" valign="top"><p class="table">ITU terrain model</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">Rural</p></td>
+<td align="left" valign="top"><p class="table">Foliage</p></td>
+<td align="left" valign="top"><p class="table">850, 900, 1800, 1900</p></td>
+<td align="left" valign="top"><p class="table">One woodland terminal model</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">City</p></td>
+<td align="left" valign="top"><p class="table">Urban</p></td>
+<td align="left" valign="top"><p class="table">850, 900</p></td>
+<td align="left" valign="top"><p class="table">Okumura-Hata Model for Urban Areas</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">City</p></td>
+<td align="left" valign="top"><p class="table">Suburban</p></td>
+<td align="left" valign="top"><p class="table">850, 900</p></td>
+<td align="left" valign="top"><p class="table">Okumura-Hata Model for Suburban Areas</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">City</p></td>
+<td align="left" valign="top"><p class="table">Open</p></td>
+<td align="left" valign="top"><p class="table">850, 900</p></td>
+<td align="left" valign="top"><p class="table">Okumura-Hata Model for Open Areas</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">City</p></td>
+<td align="left" valign="top"><p class="table">Urban</p></td>
+<td align="left" valign="top"><p class="table">1800, 1900</p></td>
+<td align="left" valign="top"><p class="table">COST-231 Hata Model</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">Indoor</p></td>
+<td align="left" valign="top"><p class="table">-</p></td>
+<td align="left" valign="top"><p class="table">900, 1800, 1900</p></td>
+<td align="left" valign="top"><p class="table">ITU model for indoor attenuation</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>In <a href="#path-loss-models">[path-loss-models]</a> you can see a list of commonly-used path loss
+models. They are typically quite simple equations which only require
+certain parameters like the distance of transmitter and receiver as well
+as the antenna height, etc. No detailed 3D models of the terrain are
+required.</p></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_rf_power_in_a_wireless_link">RF Power in a Wireless Link</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="imageblock">
+<div class="content">
+<img src="link_budget.png" alt="link_budget.png" width="90%" />
+</div>
+</div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="rf-link-budget">Link Budget</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="paragraph"><p>The link budget consists of the total budget of all elements in the
+telecommunication system between BTS and MS (and vice-versa).</p></div>
+<div class="paragraph"><p>This includes</p></div>
+<ul class="">
+<li>
+<span>
+antenna gains on both sides
+</span>
+</li>
+<li>
+<span>
+coaxial cabling between antenna and receiver/transmitter
+</span>
+</li>
+<li>
+<span>
+losses in duplexers, splitters, connectors, etc
+</span>
+</li>
+<li>
+<span>
+gain of any amplifiers (PA, LNA)
+</span>
+</li>
+<li>
+<span>
+path loss of the radio link between the two antennas
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_simplified_link_budget_equation">Simplified Link Budget Equation</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="paragraph"><p>The simplified link budget equations looks like this:</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>Rx Power (dBm) = Tx Power (dBm) + Gains (dB) − Losses (dB)</code></pre>
+</div></div>
+<div class="paragraph"><p>Gains is the sum of all gains, including</p></div>
+<ul class="">
+<li>
+<span>
+Gain of the transmitter antenna
+</span>
+</li>
+<li>
+<span>
+Gain of the receiver antenna
+</span>
+</li>
+<li>
+<span>
+Gain of any PA (transmitter) or LNA (receiver)
+</span>
+</li>
+</ul>
+<div class="paragraph"><p>Losses is the sum of all losses, including</p></div>
+<ul class="">
+<li>
+<span>
+Loss of any cabling and/or connectors on either side
+</span>
+</li>
+<li>
+<span>
+Loss of any passive components like duplexers/splitters on either side
+</span>
+</li>
+<li>
+<span>
+Path Loss of the radio link
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_link_budget_equation_vs_path_loss">Link Budget Equation vs. Path Loss</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+Using the Link Budget equation and resolving it for the path loss will
+ give you an idea of how much path loss on the radio link you can afford
+ while still having a reliable radio link.
+</span>
+</li>
+<li>
+<span>
+Resolving the path loss into a physical distance based on your path
+ loss model will then give you an idea about the coverage area that
+ you can expect.
+</span>
+<div class="dlist"><dl class="">
+<dt class="hdlist1">
+NOTE
+</dt>
+<dd>
+<p>
+The Rx Power substituted in the Link budget equation is
+determined by the receiver sensitivity. It is customary to add some
+some safety margin to cover for fading.
+</p>
+</dd>
+</dl></div>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_rf_link">RF Link</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="imageblock">
+<div class="content">
+<img src="ap_to_client.png" alt="ap_to_client.png" width="90%" />
+</div>
+</div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_uplink_link_budget">Uplink Link Budget</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="imageblock graphviz">
+<div class="content">
+<img src="path_loss_link_budget__1.png" alt="path_loss_link_budget__1.png" />
+</div>
+</div>
+<div class="paragraph"><p>The transmit power of a MS depends on various factors, such as the MS
+Power Class, the frequency band and the modulation scheme used.</p></div>
+<div class="tableblock">
+<table rules="all"
+width="100%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 2. Typical MS transmit power levels</caption>
+<col width="25%" />
+<col width="25%" />
+<col width="25%" />
+<col width="25%" />
+<thead>
+<tr>
+<th align="left" valign="top">Power Class</th>
+<th align="left" valign="top">Band</th>
+<th align="left" valign="top">Modulation</th>
+<th align="left" valign="top">Power</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">4</p></td>
+<td align="left" valign="top"><p class="table">850 / 900</p></td>
+<td align="left" valign="top"><p class="table">GMSK</p></td>
+<td align="left" valign="top"><p class="table">33 dBm (2 W)</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">1</p></td>
+<td align="left" valign="top"><p class="table">1800 / 1900</p></td>
+<td align="left" valign="top"><p class="table">GMSK</p></td>
+<td align="left" valign="top"><p class="table">30 dBm (1 W)</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">E2</p></td>
+<td align="left" valign="top"><p class="table">850 / 900</p></td>
+<td align="left" valign="top"><p class="table">8PSK</p></td>
+<td align="left" valign="top"><p class="table">27 dBm (0.5 W)</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">E2</p></td>
+<td align="left" valign="top"><p class="table">1800 / 1900</p></td>
+<td align="left" valign="top"><p class="table">8PSK</p></td>
+<td align="left" valign="top"><p class="table">26 dBm (0.4 W)</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>The minimum reference sensitivity level of a normal GSM BTS is specified
+in 3GPP TS 05.05 and required to be at least -104 dBm. Most modern BTSs
+outperform this significantly.</p></div>
+<div class="paragraph"><p>FIXME: Example calculation (spreadsheet screenshot?)</p></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_downlink_link_budget">Downlink Link Budget</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="imageblock graphviz">
+<div class="content">
+<img src="path_loss_link_budget__2.png" alt="path_loss_link_budget__2.png" />
+</div>
+</div>
+<div class="paragraph"><p>The transmit power of the BTS depends on your BTS model and any possible
+external power amplifiers used.</p></div>
+<div class="paragraph"><p>The minimum reference sensitivity level of a GSM MS is specified in 3GPP
+TS 05.05 and can typically be assumed to be about -102 dB.</p></div>
+<div class="paragraph"><p>FIXME: Example calculation (spreadsheet screenshot?)</p></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_optimization_of_the_link_budget">Optimization of the Link Budget</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="paragraph"><p>If the coverage area determined by the above procedure is insufficient,
+you can try to change some of the parameters, such as</p></div>
+<ul class="">
+<li>
+<span>
+increasing transmit power by adding a bigger PA
+</span>
+</li>
+<li>
+<span>
+increasing antenna gain by using a higher gain antenna
+</span>
+</li>
+<li>
+<span>
+reducing cable losses by using better / shorter coaxial cables
+</span>
+</li>
+<li>
+<span>
+increasing the height of your antenna
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_introduction_into_rf_electronics">Introduction into RF Electronics</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="paragraph"><p>Setup and Operation of a GSM network is not only about the configuration
+and system administration on the network elements and protocol stack,
+but also includes the physical radio transmission part.</p></div>
+<div class="paragraph"><p>Basic understanding about RF (Radio Frequency) Electronics is key to
+achieving good performance of the GSM network.</p></div>
+<div class="sect2">
+<h3 id="rf-coaxial-cabling">Coaxial Cabling</h3>
+<div class="paragraph"><p>Coaxial cables come in many different shapes, diameters, physical
+construction, dielectric materials, and last but not least brands and
+types.</p></div>
+<div class="paragraph"><p>There are many parameters that might be relevant to your particular
+installation, starting from mechanical/environmental properties such as
+temperature range, UV resilience, water/weatherproofness, flammability,
+etc.</p></div>
+<div class="paragraph"><p>For the subject of this manual, we will not look at those mechanical
+properties, but look at the electrical properties instead.</p></div>
+<div class="paragraph"><p>The prime electrical parameters of a coaxial cable are:</p></div>
+<ul class="">
+<li>
+<span>
+its attenuation over frequency and length
+</span>
+</li>
+<li>
+<span>
+its maximum current/power handling capability
+</span>
+</li>
+<li>
+<span>
+its propagation velocity (ignored here)
+</span>
+</li>
+<li>
+<span>
+its screening efficiency (ignored here)
+</span>
+</li>
+</ul>
+<div class="sect3">
+<h4 id="_coaxial_cable_attenuation">Coaxial Cable Attenuation</h4>
+<div class="paragraph"><p>The attenuation of a coaxial cable is given in dB per length, commonly
+in <em>dB per 100m</em>. This value changes significantly depending on the
+frequency of the signal transmitted via the cable. Cable manufacturers
+typically either provide tables with discrete frequency values, or
+graphs plotting the attenuation per 100m (x axis) over the frequency (y
+axis).</p></div>
+<div class="paragraph"><p>FIXME: Example.</p></div>
+<div class="paragraph"><p>So in order to estimate the loss of a coaxial cable, you need to</p></div>
+<ol class="arabic">
+<li>
+<span>
+determine the frequency at which you will use the cable, as determined
+ by the GSM frequency band of your BTS. Make sure you use the highest
+ frequency that might occur, which is typically the upper end of the
+ transmit band, see <a href="#gsm-bands">[gsm-bands]</a>
+</span>
+</li>
+<li>
+<span>
+determine the attenuation of your cable per 100m at the given
+ frequency (check the cable data sheet)
+</span>
+</li>
+<li>
+<span>
+scale that value by the actual length of the cable
+</span>
+</li>
+</ol>
+<div class="paragraph"><p>A real cable always has connectors attached to it, please add some
+additional losses for the connectors that are attached. 0.05 dB per
+connector is a general rule of thumb for the frequencies used in GSM.</p></div>
+<div class="paragraph"><p>FIXME: Example computation</p></div>
+<div class="paragraph"><p>As you can see very easily, the losses incurred in coaxial cables
+between your antenna and the BTS can very quickly become significant
+factors in your overall link budget (and thus cell coverage). This is
+particularly relevant for the uplink power budget. Every dB you loose
+in the antenna cable between antenna and the BTS receiver translates
+into reduced uplink coverage.</p></div>
+<div class="paragraph"><p>Using the shortest possible coaxial cabling (e.g. by mounting the BTS
+high up on the antenna tower) and using the highest-quality cabling are
+the best strategies to optimize</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Warning</div>
+</td>
+<td class="content">If you plan to assemble the coaxial connectors yourself, please
+make sure you ensure to have the right skills for this. Properly
+assembling coaxial connectors (whether solder-type or crimp-type)
+requires precision tools and strict process as described by the
+manufacturer. Any mechanical imprecision of connector assembly will
+cause significant extra signal attenuation.</td>
+</tr></table>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_checking_coaxial_cables">Checking coaxial cables</h4>
+<div class="paragraph"><p>If you would like to check the proper operation of a coaxial cable,
+there are several possible methods available:</p></div>
+<ul class="">
+<li>
+<span>
+The more expensive method would be to use a <em>RF Network Analyzer</em> to
+ measure the S11/S12 parameters or the VSWR of the cable.
+</span>
+</li>
+<li>
+<span>
+Another option is to use a TDR (time domain reflectometer) to
+ determine the VSWR. The TDR method has the added advantage that you
+ can localize any damage to the cable, as such damage would cause
+ reflections that can be converted into meters cable length from the
+ port at which you are testing the cable. Mobile, battery-powered TDR
+ for field-use in GSM Site installation are available from various
+ vendors. One commonly used series is the <em>Anritsu Site Master</em>.
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="rf-coaxial-connectors">Coaxial Connectors</h3>
+<div class="paragraph"><p>A coaxial connector is a connector specifically designed for mounting to
+coaxial cable. It facilitates the removable / detachable connection of
+a coaxial cable to a RF device.</p></div>
+<div class="paragraph"><p>There are many different types of coaxial connectors on the market.</p></div>
+<div class="paragraph"><p>The most important types of coaxial connectors in the context of GSM
+BTSs are:</p></div>
+<ul class="">
+<li>
+<span>
+The <em>N type</em> connector
+</span>
+</li>
+<li>
+<span>
+The <em>SMA type</em> connector.
+</span>
+</li>
+<li>
+<span>
+The <em>7/16</em> type connector
+</span>
+</li>
+</ul>
+<div class="paragraph"><p>FIXME: Images</p></div>
+<div class="paragraph"><p>The above connectors are tightened by a screw-on shell. Each connector
+type has a specific designated nominal torque by which the connector
+shall be tightened. In case of uncertainty, please ask your connector
+supplier for the nominal torque.</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">Always ensure the proper mechanical condition of your RF
+connectors. Don&#8217;t use RF connectors that are contaminated by dust or
+dirt, or which show significant oxidization, bent contacts or the like.
+Using such connectors poses significant danger of unwanted signal loss,
+and can in some cases even lead to equipment damage (e.g. in case of RF
+power at PA output being reflected back into the PA).</td>
+</tr></table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="rf-duplexers">Duplexers</h3>
+<div class="paragraph"><p>A GSM BTS (or GSM TRX inside a BTS) typically exposes separate ports for
+Rx (Receive) and Tx (Transmit). This is intentionally the case, as
+this allows the users to add e.g. additional power amplifiers, filters
+or other external components into the signal path. Those components
+typically operate on either the receive or the transmit path.</p></div>
+<div class="paragraph"><p>You could now connect two separate antennas to the two ports (one for
+Rx, one for Tx). This is commonly done in indoor installations with
+small rubber-type antennas directly attached to the BTS connectors.</p></div>
+<div class="paragraph"><p>In outdoor installations, you typically (want to) use a single Antenna
+for Rx and Tx. This single antenna needs to be connected to the BTS
+via a device that is called <em>Duplexer</em>.</p></div>
+<div class="paragraph"><p>The <em>Duplexer</em> is actually a frequency splitter/combiner, which is
+specifically tuned to the uplink and downlink frequencies of the GSM
+band in which you operate the BTS. As such, it has one port that passes
+only uplink frequencies between the antenna and that port, as well as
+another port that passes only downlink frequencies between antenna and
+that port.</p></div>
+<div class="imageblock graphviz">
+<div class="content">
+<img src="path_loss_link_budget__3.png" alt="path_loss_link_budget__3.png" />
+</div>
+<div class="title">Figure 1. Illustration of the Duplexer functionality</div>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Warning</div>
+</td>
+<td class="content"><strong>The ports of a duplexer are not interchangeable</strong>. Always make
+sure that you use the Rx port of the duplexer with the Rx port of the
+BTS, and vice-versa for Tx.</td>
+</tr></table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="rf-pa">RF Power Amplifiers</h3>
+<div class="paragraph"><p>A RF Power Amplifier (PA) is a device that boosts the transmit power of
+your RF signal, the BTS in your case.</p></div>
+<div class="paragraph"><p>RF power amplifiers come in many different characteristics. Some of the
+key characteristics are:</p></div>
+<div class="dlist"><dl class="">
+<dt class="hdlist1">
+Frequency range
+</dt>
+<dd>
+<p>
+ A PA is typically designed for a specific frequency range. Only
+ signals inside that range will be properly amplified
+</p>
+</dd>
+<dt class="hdlist1">
+Gain in dB
+</dt>
+<dd>
+<p>
+ This tells you how many dB the power amplifier will increase your
+ signal. <code>Pout = Pin + Gain</code>
+</p>
+</dd>
+<dt class="hdlist1">
+Maximum Output Power
+</dt>
+<dd>
+<p>
+ This indicates the maximum absolute output power. For example, if the
+ maximum output power is 40 dBm, and the gain is 10dBm, then an input
+ signal of 30dBm will render the maximum output power. An input signal
+ of 20dBm would subsequently generate only 30dBm of output power.
+</p>
+</dd>
+<dt class="hdlist1">
+Efficiency
+</dt>
+<dd>
+<p>
+ The efficiency determines how much electrical power is consumed for
+ the given output power. Often expressed as Power Added Efficiency
+ (PAE).
+</p>
+</dd>
+</dl></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Warning</div>
+</td>
+<td class="content">If you add external power amplifiers to a GSM BTS or any other
+transmitter, this will invalidate the regulatory approval of the BTS.
+It is your responsibility to ensure that the combination of BTS and PA
+still fulfills all regulatory requirements, for example in terms of
+out-of-band emissions, spectrum envelope, phase error, linearity, etc!</td>
+</tr></table>
+</div>
+<div class="imageblock graphviz">
+<div class="content">
+<img src="path_loss_link_budget__4.png" alt="path_loss_link_budget__4.png" />
+</div>
+<div class="title">Figure 2. Addition of a RF Power Amplifier to a GSM BTS Setup</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_antennas">Antennas</h3>
+<div class="paragraph"><p>The Antenna is responsible for converting the electromagnetic waves
+between the coaxial cable and the so-called <em>air interface</em> and
+vice-versa. The properties of an antenna are always symmetric for both
+transmission and reception.</p></div>
+<div class="paragraph"><p>Antennas come in many different types and shapes. Key characteristics
+distinguishing antennas are:</p></div>
+<div class="dlist"><dl class="">
+<dt class="hdlist1">
+Antenna Gain
+</dt>
+<dd>
+<p>
+ Expresses how much more efficient the antenna converts between cable
+ and air interface. Can be expressed in dB compared to a theoretical
+ isotropic radiator (dBi) or compared to a dipole antenna (dBd). Gain
+ usually implies directivity.
+</p>
+</dd>
+<dt class="hdlist1">
+Frequency Band(s)
+</dt>
+<dd>
+<p>
+ Antennas typically have only a relatively narrow band (or multiple
+ narrow bands at which they radiate efficiently. In general, the
+ higher the antenna gain, the lower the usable frequency band of the
+ antenna.
+</p>
+</dd>
+<dt class="hdlist1">
+Directivity
+</dt>
+<dd>
+<p>
+ Antennas radiate the energy in all three dimensions.
+</p>
+</dd>
+<dt class="hdlist1">
+Mechanical Size
+</dt>
+<dd>
+<p>
+ Mechanical Size is an important factor depending on how and where the
+ antenna is mounted. Size also relates to weight and wind-load.
+</p>
+</dd>
+<dt class="hdlist1">
+Wind Load
+</dt>
+<dd>
+<p>
+ Expresses how much mechanical load the antenna will put on its
+ support structure (antenna mast).
+</p>
+</dd>
+<dt class="hdlist1">
+Connector Type
+</dt>
+<dd>
+<p>
+ Your cabling will have to use a compatible connector for the antenna.
+ Outdoor antennas typically use the 7/16 type connector or an N type
+ connector. Indoor antennas either N type or SMA type.
+</p>
+</dd>
+<dt class="hdlist1">
+Environmental Rating
+</dt>
+<dd>
+<p>
+ Indoor antennas cannot be used outdoor, as they do not offer the level
+ of protection against dust and particularly water / humidity /
+ corrosion.
+</p>
+</dd>
+<dt class="hdlist1">
+Down-tilt Capability
+</dt>
+<dd>
+<p>
+ Particularly sector antennas are typically installed with a fixed or
+ (mechanically / electrically) variable down-tilt in order to limit the
+ radius/horizon of the antenna footprint and avoid excess interference
+ with surrounding cells.
+</p>
+</dd>
+<dt class="hdlist1">
+VSWR
+</dt>
+<dd>
+<p>
+ The Voltage Standing Wave Ratio indicates how well the antenna is
+ matched to the coaxial cable, and how much of the to-be-transmitted
+ radio signal is actually converted to radio waves versus reflected
+ back on the RF cable towards the transmitter. An ideal antenna has a
+ VSWR of 1 (sometimes written 1:1). Real antennas are typically in the
+ range of 1.2 to 2.
+</p>
+</dd>
+<dt class="hdlist1">
+Side Lobes
+</dt>
+<dd>
+<p>
+ A directional antenna never radiates only in one direction but always
+ has certain side lobes pointing outside of the main direction of the
+ antenna. The number and strength of side lobes differ from antenna
+ to antenna model.
+</p>
+</dd>
+</dl></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">Whenever installing antennas it is important to understand that
+any metallic or otherwise conductive object in their vicinity will
+inevitably alter the antenna performance. This can affect the radiation
+pattern, but also de-tune the antenna and shift its frequency band
+outside the nominal usable frequency band. It is thus best to mount
+antennas as far as practically possible from conductive elements within
+their radiation pattern</td>
+</tr></table>
+</div>
+<div class="sect3">
+<h4 id="_omni_directional_antennas">Omni-directional Antennas</h4>
+<div class="paragraph"><p>Omni-directional antennas are typically thin long dipole antennas covered
+with fiberglass. They radiate with equal strength in all directions and
+thus result in a more or less circular cell footprint (assuming flat
+terrain). The shape of the radiation pattern is a torus (donut) with
+the antenna located in the center of that torus.</p></div>
+<div class="paragraph"><p>Omni-directional antennas come with a variety of gains, typically from 0
+dBd to 3 dBd, 6 dBd and sometimes 9 dBd. This gain is achieved by
+compressing the radiation torus in the vertical plane.</p></div>
+<div class="paragraph"><p>Sometimes, Omni-directional antennas can be obtained with a fixed
+down-tilt to limit the cell radius.</p></div>
+</div>
+<div class="sect3">
+<h4 id="_sector_antennas">Sector Antennas</h4>
+<div class="paragraph"><p>Sector antennas are used in sectorized cell setups. Sector antennas can
+have significantly higher gain than omni-directional antennas.</p></div>
+<div class="paragraph"><p>Instead of mounting a single BTS with an omni-directional antenna to a
+given antenna pole, multiple BTSs with each one sector antenna are
+mounted to the same pole. This results in an overall larger radius due
+to the higher gain of the sector antennas, and also in an overall
+capacity increase, as each sector has the same capacity as a single
+omni-directional cell. And all that benefit still requires only a
+single physical site with antenna pole, power supply, back-haul cabling,
+etc.</p></div>
+<div class="paragraph"><p>Experimentation and simulation has shown that typically the use of three
+sectors with antennas of an opening angle of 65 degrees results in the
+most optimal combination for GSM networks. If more sectors are being
+deployed, there is a lot of overlap between the sectors, and the amount
+of hand-overs between the BTSs is increased.</p></div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="rf-lna">RF Low Noise Amplifier (LNA)</h3>
+<div class="paragraph"><p>A RF Low Noise Amplifier (LNA) is a device that amplifies the weak
+received signal. In general, LNAs are combined with band filters, to
+ensure that only those frequencies within the receive band are
+amplified, and out-of-band interferers are filtered out. A duplexer
+can already be a sufficient band-filter, depending on its
+characteristics.</p></div>
+<div class="paragraph"><p>The use of a LNA typically only makes sense if you
+. have very long and/or lossy coaxial cables from your antenna to the
+ BTS, and
+. can mount the duplexer + LNA close to the antenna, so that the
+ amplification happens before the long/lossy coaxial line to the BTS</p></div>
+<div class="paragraph"><p>Key characteristics of a LNA are:</p></div>
+<div class="dlist"><dl class="">
+<dt class="hdlist1">
+Frequency range
+</dt>
+<dd>
+<p>
+ A LNA is typically designed for a specific frequency range. Only
+ signals inside that range will be properly amplified
+</p>
+</dd>
+<dt class="hdlist1">
+Gain in dB
+</dt>
+<dd>
+<p>
+ This tells you how many dB the low noise amplifier will increase your
+ signal. <code>Pout = Pin + Gain</code>
+</p>
+</dd>
+<dt class="hdlist1">
+Maximum Input Power
+</dt>
+<dd>
+<p>
+ This indicates the maximum RF power at the PA input before saturation.
+</p>
+</dd>
+<dt class="hdlist1">
+Noise Figure
+</dt>
+<dd>
+<p>
+ This indicates how much noise this LNA will add to the signal. This
+ noise will add to the interference as seen by the receiver.
+</p>
+</dd>
+</dl></div>
+<div class="imageblock graphviz">
+<div class="content">
+<img src="path_loss_link_budget__5.png" alt="path_loss_link_budget__5.png" />
+</div>
+<div class="title">Figure 3. Addition of a RF Low Noise Amplifier to the GSM BTS Setup</div>
+</div>
+<div class="imageblock graphviz">
+<div class="content">
+<img src="path_loss_link_budget__6.png" alt="path_loss_link_budget__6.png" />
+</div>
+<div class="title">Figure 4. Addition of a RF LNA + RF PA to the GSM BTS Setup</div>
+</div>
+<div class="paragraph"><p>As any LNA will add noise to the signal, it is generally discouraged to
+add them to the system. Instead, we recommend you to mount the entire
+BTS closer to the antenna, thereby removing the losses created by
+lengthy coaxial wire. The power supply lines and Ethernet connection to
+the BTS are far less critical when it comes to cable length.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_introduction_into_gsm_radio_planning">Introduction into GSM Radio Planning</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="paragraph"><p>The main focus of the manual you are reading is to document the
+specifics of the Osmocom GSM implementation in terms of configuration,
+system administration and monitoring. That&#8217;s basically all on the
+software part.</p></div>
+<div class="paragraph"><p>However, successful deployment and operation of GSM networks depends to
+a large extent on the proper design on the radio frequency (RF) side,
+including the right cabling, duplexers, antennas, etc.</p></div>
+<div class="paragraph"><p>Planning and implementing GSM deployment is a science (or art) in
+itself, and in most cases it is best to consult with somebody who has
+existing experience in the field.</p></div>
+<div class="paragraph"><p>There are three parts to this:</p></div>
+<div class="dlist"><dl class="">
+<dt class="hdlist1">
+GSM Radio Network Planning
+</dt>
+<dd>
+<p>
+ This includes an analysis of the coverage area, its terrain/geography,
+ the selection of the right sites for your BTSs, the antenna height, a
+ path loss estimate. As a result of that process, it will be clear
+ what amount of transmit power, antenna gain, cable length/type, etc.
+ you should use to obtain the intended coverage.
+</p>
+</dd>
+<dt class="hdlist1">
+GSM Site Installation
+</dt>
+<dd>
+<p>
+ This is the execution of what has been determined in the previous
+ step. The required skills are quite different, as this is about
+ properly assembling RF cables and connections, duplexers, power
+ amplifiers, antennas, etc.
+</p>
+</dd>
+<dt class="hdlist1">
+Coverage testing
+</dt>
+<dd>
+<p>
+ This is typically done by driving or walking in the newly-deployed GSM
+ site, and checking of the coverage is as it was expected.
+</p>
+</dd>
+</dl></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">This chapter can only give you the briefest overview about the
+process used, and cannot replace the experience and skill of somebody
+with GSM RF planning and site deployment.</td>
+</tr></table>
+</div>
+<div class="sect2">
+<h3 id="rf-radio-net-plan">GSM Radio Network Planning</h3>
+<div class="paragraph"><p>In GSM Radio Network Planning, the number and location of sites as well
+as type of required equipment is determined based on the coverage
+requirements.</p></div>
+<div class="paragraph"><p>For the coverage of a single BTS, this is a process that takes into
+consideration:</p></div>
+<ul class="">
+<li>
+<span>
+the terrain that needs to be covered
+</span>
+</li>
+<li>
+<span>
+the type of mobile stations to be supported, and particularly the
+ speed of their movement (residential, pedestrians, trains, highways)
+</span>
+</li>
+<li>
+<span>
+the possible locations for cell sites, where BTSs and Antennas can be
+ placed, as well as the possible antenna mounting height
+</span>
+</li>
+<li>
+<span>
+the equipment choices available, including
+</span>
+<ul class="">
+<li>
+<span>
+type and capabilities of BTS. The key criteria here is
+ the downlink transmit power in dBm, and the uplink receive
+ sensitivity.
+</span>
+</li>
+<li>
+<span>
+antenna models, including gain, radiation pattern, etc.
+</span>
+</li>
+<li>
+<span>
+RF cabling, including the key aspect of attenuation per length
+</span>
+</li>
+<li>
+<span>
+RF duplexers, splitting the transmit and receive path
+</span>
+</li>
+<li>
+<span>
+power amplifiers (PAs), increasing the transmit power
+</span>
+</li>
+<li>
+<span>
+low noise amplifiers (LNAs), amplifying the received signal
+</span>
+</li>
+</ul>
+</li>
+</ul>
+<div class="paragraph"><p>For coverage of an actual cellular network consisting of neighboring
+cells, this process also must take into consideration aspects of
+<em>frequency planning</em>, which is the allocation of frequencies (ARFCNs) to
+the individual cells within the network. As part of that, interference
+generated by frequency re-use of other (distant) cells must be taken
+into consideration. The details of this would go beyond this very
+introductory text. There is plenty of literature on this subject
+available.</p></div>
+</div>
+<div class="sect2">
+<h3 id="rf-db">The Decibel (dB) and Decibel-Milliwatt (dBm)</h3>
+<div class="paragraph"><p>RF engineering heavily depends on the Decibel (dB) as a unit to express
+attenuation (losses) or amplification (gain) impacted on radio signals.</p></div>
+<div class="paragraph"><p>The dB is a logarithmic unit, it is used to express the ratio of two
+values of physical quantity. You can thus not express an absolute value
+in dB, only relative.</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content"><strong>Relative loss</strong> (cable, connector, duplexer, splitter) <strong>or gain</strong>
+(amplifiers) are power <strong>is expressed in dB</strong>.</td>
+</tr></table>
+</div>
+<div class="paragraph"><p>In order to express an absolute value, you need to use a unit like
+<em>dBm</em>, which is referencing a power of 1 mW (milli-Watt).</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content"><strong>Absolute power</strong> like transmitter output power or receiver input
+power <strong>is expressed in dBm</strong>.</td>
+</tr></table>
+</div>
+<div class="tableblock">
+<table rules="all"
+width="100%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 3. Example table of dBm values and their corresponding RF Power</caption>
+<col width="15%" />
+<col width="15%" />
+<col width="70%" />
+<thead>
+<tr>
+<th align="left" valign="top">dBm</th>
+<th align="left" valign="top">RF Power</th>
+<th align="left" valign="top">Comment</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">0</p></td>
+<td align="left" valign="top"><p class="table">1 mW</p></td>
+<td align="left" valign="top"><p class="table"></p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">1</p></td>
+<td align="left" valign="top"><p class="table">1.26 mW</p></td>
+<td align="left" valign="top"><p class="table">transmit power of sysmoBTS 1002 when used with <code>max_power_red 22</code></p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">3</p></td>
+<td align="left" valign="top"><p class="table">2 mW</p></td>
+<td align="left" valign="top"><p class="table"></p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">6</p></td>
+<td align="left" valign="top"><p class="table">4 mW</p></td>
+<td align="left" valign="top"><p class="table"></p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">12</p></td>
+<td align="left" valign="top"><p class="table">16 mW</p></td>
+<td align="left" valign="top"><p class="table"></p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">12</p></td>
+<td align="left" valign="top"><p class="table">16 mW</p></td>
+<td align="left" valign="top"><p class="table"></p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">20</p></td>
+<td align="left" valign="top"><p class="table">100 mW</p></td>
+<td align="left" valign="top"><p class="table"></p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">23</p></td>
+<td align="left" valign="top"><p class="table">199 mW</p></td>
+<td align="left" valign="top"><p class="table">Maximum transmit power of indoor sysmoBTS 1002</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">26</p></td>
+<td align="left" valign="top"><p class="table">398 mW</p></td>
+<td align="left" valign="top"><p class="table"></p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">30</p></td>
+<td align="left" valign="top"><p class="table">1 W</p></td>
+<td align="left" valign="top"><p class="table">Maximum transmit power of a MS in 1800/1900 MHz band</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">33</p></td>
+<td align="left" valign="top"><p class="table">2 W</p></td>
+<td align="left" valign="top"><p class="table">Maximum transmit power of a MS in 850/900 MHz band</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">37</p></td>
+<td align="left" valign="top"><p class="table">5 W</p></td>
+<td align="left" valign="top"><p class="table">Maximum transmit power of 1 TRX in sysmoBTS 2050</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">40</p></td>
+<td align="left" valign="top"><p class="table">10 W</p></td>
+<td align="left" valign="top"><p class="table">Maximum transmit power of sysmoBTS 1100</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="rf-gsm-bands">GSM Frequency Bands</h3>
+<div class="paragraph"><p>GSM can operate in a variety of frequency bands. However,
+internationally only the following four bands have been deployed in
+actual networks:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="100%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 4. Table of GSM Frequency Bands</caption>
+<col width="25%" />
+<col width="25%" />
+<col width="25%" />
+<col width="25%" />
+<thead>
+<tr>
+<th align="left" valign="top">Name</th>
+<th align="left" valign="top">Uplink Band</th>
+<th align="left" valign="top">Downlink Band</th>
+<th align="left" valign="top">ARFCN Range</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">GSM 850</p></td>
+<td align="left" valign="top"><p class="table">824 MHz .. 849 MHz</p></td>
+<td align="left" valign="top"><p class="table">869 MHz .. 894 MHz</p></td>
+<td align="left" valign="top"><p class="table">128 .. 251</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">E-GSM 900</p></td>
+<td align="left" valign="top"><p class="table">880 MHz .. 915 MHz</p></td>
+<td align="left" valign="top"><p class="table">925 MHz .. 960 MHz</p></td>
+<td align="left" valign="top"><p class="table">0 .. 124, 975 .. 1023</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">DCS 1800</p></td>
+<td align="left" valign="top"><p class="table">1710 MHz .. 1785 MHz</p></td>
+<td align="left" valign="top"><p class="table">1805 MHz .. 1880 MHz</p></td>
+<td align="left" valign="top"><p class="table">512 .. 885</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">PCS 1900</p></td>
+<td align="left" valign="top"><p class="table">1850 MHz .. 1910 MHz</p></td>
+<td align="left" valign="top"><p class="table">1930 MHz .. 1990 MHz</p></td>
+<td align="left" valign="top"><p class="table">512 .. 810</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_the_end">The End</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="paragraph"><p>Questions?</p></div>
+</div>
+</div>
+</body>
+</html>
diff --git a/2017/roadmap-osmocon2017/roadmap.html b/2017/roadmap-osmocon2017/roadmap.html
new file mode 100644
index 0000000..c1950f6
--- /dev/null
+++ b/2017/roadmap-osmocon2017/roadmap.html
@@ -0,0 +1,4448 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+<head>
+<title>Osmocom Callular Infrastructure Roadmap</title>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="copyright" content="Copyright &#169; Harald Welte (License: CC-BY-SA)" />
+<meta name="generator" content="AsciiDoc 8.6.9" />
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overriden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+/* slidy.css
+
+ Copyright (c) 2005-2010 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+ W3C liability, trademark, document use and software licensing
+ rules apply, see:
+
+ http://www.w3.org/Consortium/Legal/copyright-documents
+ http://www.w3.org/Consortium/Legal/copyright-software
+*/
+
+/*
+ SJR: 2010-09-29: Modified for AsciiDoc slidy backend.
+ Mostly just commented out stuff that is handled by AsciiDoc's CSS files.
+*/
+
+body
+{
+ margin: 0 0 0 0;
+ padding: 0 0 0 0;
+ width: 100%;
+ height: 100%;
+ color: black;
+ background-color: white;
+/*
+ font-family: "Gill Sans MT", "Gill Sans", GillSans, sans-serif;
+*/
+ font-size: 14pt;
+}
+
+div.toolbar {
+ position: fixed; z-index: 200;
+ top: auto; bottom: 0; left: 0; right: 0;
+ height: 1.2em; text-align: right;
+ padding-left: 1em;
+ padding-right: 1em;
+ font-size: 60%;
+ color: red;
+ background-color: rgb(240,240,240);
+ border-top: solid 1px rgb(180,180,180);
+}
+
+div.toolbar span.copyright {
+ color: black;
+ margin-left: 0.5em;
+}
+
+div.initial_prompt {
+ position: absolute;
+ z-index: 1000;
+ bottom: 1.2em;
+ width: 90%;
+ background-color: rgb(200,200,200);
+ opacity: 0.35;
+ background-color: rgb(200,200,200, 0.35);
+ cursor: pointer;
+}
+
+div.initial_prompt p.help {
+ text-align: center;
+}
+
+div.initial_prompt p.close {
+ text-align: right;
+ font-style: italic;
+}
+
+div.slidy_toc {
+ position: absolute;
+ z-index: 300;
+ width: 60%;
+ max-width: 30em;
+ height: 30em;
+ overflow: auto;
+ top: auto;
+ right: auto;
+ left: 4em;
+ bottom: 4em;
+ padding: 1em;
+ background: rgb(240,240,240);
+ border-style: solid;
+ border-width: 2px;
+ font-size: 60%;
+}
+
+div.slidy_toc .toc_heading {
+ text-align: center;
+ width: 100%;
+ margin: 0;
+ margin-bottom: 1em;
+ border-bottom-style: solid;
+ border-bottom-color: rgb(180,180,180);
+ border-bottom-width: 1px;
+}
+
+div.slide {
+ z-index: 20;
+ margin: 0 0 0 0;
+ padding-top: 0;
+ padding-bottom: 0;
+ padding-left: 20px;
+ padding-right: 20px;
+ border-width: 0;
+ clear: both;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ line-height: 120%;
+ background-color: transparent;
+}
+
+div.background {
+ display: none;
+}
+
+div.handout {
+ margin-left: 20px;
+ margin-right: 20px;
+}
+
+div.slide.titlepage {
+ text-align: center;
+}
+
+div.slide.titlepage.h1 {
+ padding-top: 10%;
+}
+
+div.slide h1 {
+ padding-left: 0;
+ padding-right: 20pt;
+ padding-top: 4pt;
+ padding-bottom: 4pt;
+ margin-top: 0;
+ margin-left: 0;
+ margin-right: 60pt;
+ margin-bottom: 0.5em;
+ display: block;
+ font-size: 160%;
+ line-height: 1.2em;
+ background: transparent;
+}
+
+div.toc {
+ position: absolute;
+ top: auto;
+ bottom: 4em;
+ left: 4em;
+ right: auto;
+ width: 60%;
+ max-width: 30em;
+ height: 30em;
+ border: solid thin black;
+ padding: 1em;
+ background: rgb(240,240,240);
+ color: black;
+ z-index: 300;
+ overflow: auto;
+ display: block;
+ visibility: visible;
+}
+
+div.toc-heading {
+ width: 100%;
+ border-bottom: solid 1px rgb(180,180,180);
+ margin-bottom: 1em;
+ text-align: center;
+}
+
+/*
+pre {
+ font-size: 80%;
+ font-weight: bold;
+ line-height: 120%;
+ padding-top: 0.2em;
+ padding-bottom: 0.2em;
+ padding-left: 1em;
+ padding-right: 1em;
+ border-style: solid;
+ border-left-width: 1em;
+ border-top-width: thin;
+ border-right-width: thin;
+ border-bottom-width: thin;
+ border-color: #95ABD0;
+ color: #00428C;
+ background-color: #E4E5E7;
+}
+*/
+
+/*
+li pre { margin-left: 0; }
+
+blockquote { font-style: italic }
+
+img { background-color: transparent }
+
+p.copyright { font-size: smaller }
+*/
+
+.center { text-align: center }
+.footnote { font-size: smaller; margin-left: 2em; }
+
+/*
+a img { border-width: 0; border-style: none }
+*/
+
+a:visited { color: navy }
+a:link { color: navy }
+a:hover { color: red; text-decoration: underline }
+a:active { color: red; text-decoration: underline }
+
+a {text-decoration: none}
+.navbar a:link {color: white}
+.navbar a:visited {color: yellow}
+.navbar a:active {color: red}
+.navbar a:hover {color: red}
+
+/*
+ul { list-style-type: square; }
+ul ul { list-style-type: disc; }
+ul ul ul { list-style-type: circle; }
+ul ul ul ul { list-style-type: disc; }
+li { margin-left: 0.5em; margin-top: 0.5em; }
+li li { font-size: 85%; font-style: italic }
+li li li { font-size: 85%; font-style: normal }
+*/
+
+div dt
+{
+ margin-left: 0;
+ margin-top: 1em;
+ margin-bottom: 0.5em;
+ font-weight: bold;
+}
+div dd
+{
+ margin-left: 2em;
+ margin-bottom: 0.5em;
+}
+
+
+/*
+p,pre,ul,ol,blockquote,h2,h3,h4,h5,h6,dl,table {
+ margin-left: 1em;
+ margin-right: 1em;
+}
+*/
+
+p.subhead { font-weight: bold; margin-top: 2em; }
+
+.smaller { font-size: smaller }
+.bigger { font-size: 130% }
+
+/*
+td,th { padding: 0.2em }
+*/
+
+ul {
+ margin: 0.5em 1.5em 0.5em 1.5em;
+ padding: 0;
+}
+
+ol {
+ margin: 0.5em 1.5em 0.5em 1.5em;
+ padding: 0;
+}
+
+ul { list-style-type: square; }
+ul ul { list-style-type: disc; }
+ul ul ul { list-style-type: circle; }
+ul ul ul ul { list-style-type: disc; }
+
+/*
+ul li {
+ list-style: square;
+ margin: 0.1em 0em 0.6em 0;
+ padding: 0 0 0 0;
+ line-height: 140%;
+}
+
+ol li {
+ margin: 0.1em 0em 0.6em 1.5em;
+ padding: 0 0 0 0px;
+ line-height: 140%;
+ list-style-type: decimal;
+}
+
+li ul li {
+ font-size: 85%;
+ font-style: italic;
+ list-style-type: disc;
+ background: transparent;
+ padding: 0 0 0 0;
+}
+li li ul li {
+ font-size: 85%;
+ font-style: normal;
+ list-style-type: circle;
+ background: transparent;
+ padding: 0 0 0 0;
+}
+li li li ul li {
+ list-style-type: disc;
+ background: transparent;
+ padding: 0 0 0 0;
+}
+
+li ol li {
+ list-style-type: decimal;
+}
+
+
+li li ol li {
+ list-style-type: decimal;
+}
+*/
+
+/*
+ setting class="outline" on ol or ul makes it behave as an
+ ouline list where blocklevel content in li elements is
+ hidden by default and can be expanded or collapsed with
+ mouse click. Set class="expand" on li to override default
+*/
+
+ol.outline li:hover { cursor: pointer }
+ol.outline li.nofold:hover { cursor: default }
+
+ul.outline li:hover { cursor: pointer }
+ul.outline li.nofold:hover { cursor: default }
+
+ol.outline { list-style:decimal; }
+ol.outline ol { list-style-type:lower-alpha }
+
+ol.outline li.nofold {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/nofold-dim.gif) no-repeat 0px 0.5em;
+}
+ol.outline li.unfolded {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/fold-dim.gif) no-repeat 0px 0.5em;
+}
+ol.outline li.folded {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/unfold-dim.gif) no-repeat 0px 0.5em;
+}
+ol.outline li.unfolded:hover {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/fold.gif) no-repeat 0px 0.5em;
+}
+ol.outline li.folded:hover {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/unfold.gif) no-repeat 0px 0.5em;
+}
+
+ul.outline li.nofold {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/nofold-dim.gif) no-repeat 0px 0.5em;
+}
+ul.outline li.unfolded {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/fold-dim.gif) no-repeat 0px 0.5em;
+}
+ul.outline li.folded {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/unfold-dim.gif) no-repeat 0px 0.5em;
+}
+ul.outline li.unfolded:hover {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/fold.gif) no-repeat 0px 0.5em;
+}
+ul.outline li.folded:hover {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/unfold.gif) no-repeat 0px 0.5em;
+}
+
+/* for slides with class "title" in table of contents */
+a.titleslide { font-weight: bold; font-style: italic }
+
+/*
+ hide images for work around for save as bug
+ where browsers fail to save images used by CSS
+*/
+img.hidden { display: none; visibility: hidden }
+div.initial_prompt { display: none; visibility: hidden }
+
+ div.slide {
+ visibility: visible;
+ position: inherit;
+ }
+ div.handout {
+ border-top-style: solid;
+ border-top-width: thin;
+ border-top-color: black;
+ }
+
+@media screen {
+ .hidden { display: none; visibility: visible }
+
+ div.slide.hidden { display: block; visibility: visible }
+ div.handout.hidden { display: block; visibility: visible }
+ div.background { display: none; visibility: hidden }
+ body.single_slide div.initial_prompt { display: block; visibility: visible }
+ body.single_slide div.background { display: block; visibility: visible }
+ body.single_slide div.background.hidden { display: none; visibility: hidden }
+ body.single_slide .invisible { visibility: hidden }
+ body.single_slide .hidden { display: none; visibility: hidden }
+ body.single_slide div.slide { position: absolute }
+ body.single_slide div.handout { display: none; visibility: hidden }
+}
+
+@media print {
+ .hidden { display: block; visibility: visible }
+
+/*
+ div.slide pre { font-size: 60%; padding-left: 0.5em; }
+*/
+ div.toolbar { display: none; visibility: hidden; }
+ div.slidy_toc { display: none; visibility: hidden; }
+ div.background { display: none; visibility: hidden; }
+ div.slide { page-break-before: always }
+ /* :first-child isn't reliable for print media */
+ div.slide.first-slide { page-break-before: avoid }
+}
+
+
+/* SJR: AsciiDoc slidy backend tweaks */
+
+ol, ul {
+ margin: 0.8em 1.5em 0.8em 1.8em;
+}
+li > ul, li > ol {
+ margin-top: 0.5em;
+}
+
+.outline > li.folded,
+.outline > li.unfolded {
+ color: #527bbd;
+}
+ul > li{ color: #aaa; }
+ul > li > *, ol > li > * { color: black; }
+
+li {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+/* slidy.js
+
+ Copyright (c) 2005-2010 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+ W3C liability, trademark, document use and software licensing
+ rules apply, see:
+
+ http://www.w3.org/Consortium/Legal/copyright-documents
+ http://www.w3.org/Consortium/Legal/copyright-software
+*/
+
+// the slidy object implementation
+var w3c_slidy = {
+ // classify which kind of browser we're running under
+ ns_pos: (typeof window.pageYOffset!='undefined'),
+ khtml: ((navigator.userAgent).indexOf("KHTML") >= 0 ? true : false),
+ opera: ((navigator.userAgent).indexOf("Opera") >= 0 ? true : false),
+ ipad: ((navigator.userAgent).indexOf("iPad") >= 0 ? true : false),
+ iphone: ((navigator.userAgent).indexOf("iPhone") >= 0 ? true : false),
+ ie: (typeof document.all != "undefined" && !this.opera),
+ ie6: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 6") != -1),
+ ie7: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 7") != -1),
+ ie8: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 8") != -1),
+ ie9: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 9") != -1),
+ keyboardless: (this.ipad || this.iphone),
+
+ // are we running as XHTML? (doesn't work on Opera)
+ is_xhtml: /xml/.test(document.contentType),
+
+ slide_number: 0, // integer slide count: 0, 1, 2, ...
+ slide_number_element: null, // element containing slide number
+ slides: [], // set to array of slide div's
+ notes: [], // set to array of handout div's
+ backgrounds: [], // set to array of background div's
+ toolbar: null, // element containing toolbar
+ title: null, // document title
+ last_shown: null, // last incrementally shown item
+ eos: null, // span element for end of slide indicator
+ toc: null, // table of contents
+ outline: null, // outline element with the focus
+ selected_text_len: 0, // length of drag selection on document
+ view_all: 0, // 1 to view all slides + handouts
+ want_toolbar: true, // user preference to show/hide toolbar
+ mouse_click_enabled: true, // enables left click for next slide
+ scroll_hack: 0, // IE work around for position: fixed
+ disable_slide_click: false, // used by clicked anchors
+
+ lang: "en", // updated to language specified by html file
+
+ help_anchor: null, // used for keyboard focus hack in showToolbar()
+ help_page: "http://www.w3.org/Talks/Tools/Slidy2/help/help.html",
+ help_text: "Navigate with mouse click, space bar, Cursor Left/Right, " +
+ "or Pg Up and Pg Dn. Use S and B to change font size.",
+
+ size_index: 0,
+ size_adjustment: 0,
+ sizes: new Array("10pt", "12pt", "14pt", "16pt", "18pt", "20pt",
+ "22pt", "24pt", "26pt", "28pt", "30pt", "32pt"),
+
+ // needed for efficient resizing
+ last_width: 0,
+ last_height: 0,
+
+
+ // Needed for cross browser support for relative width/height on
+ // object elements. The work around is to save width/height attributes
+ // and then to recompute absolute width/height dimensions on resizing
+ objects: [],
+
+ // attach initialiation event handlers
+ set_up: function () {
+ var init = function() { w3c_slidy.init(); };
+ if (typeof window.addEventListener != "undefined")
+ window.addEventListener("load", init, false);
+ else
+ window.attachEvent("onload", init);
+ },
+
+ hide_slides: function () {
+ if (document.body && !w3c_slidy.initialized)
+ document.body.style.visibility = "hidden";
+ else
+ setTimeout(w3c_slidy.hide_slides, 50);
+ },
+
+ // hack to persuade IE to compute correct document height
+ // as needed for simulating fixed positioning of toolbar
+ ie_hack: function () {
+ window.resizeBy(0,-1);
+ window.resizeBy(0, 1);
+ },
+
+ init: function () {
+ //alert("slidy starting test 10");
+ document.body.style.visibility = "visible";
+ w3c_slidy_i18n.init();
+ this.add_toolbar();
+ this.wrap_implicit_slides();
+ this.collect_slides();
+ this.collect_notes();
+ this.collect_backgrounds();
+ this.objects = document.body.getElementsByTagName("object");
+ this.patch_anchors();
+ this.slide_number = this.find_slide_number(location.href);
+ window.offscreenbuffering = true;
+ this.size_adjustment = this.find_size_adjust();
+ this.time_left = this.find_duration();
+ this.hide_image_toolbar(); // suppress IE image toolbar popup
+ this.init_outliner(); // activate fold/unfold support
+ this.title = document.title;
+
+ // work around for opera bug
+ this.is_xhtml = (document.body.tagName == "BODY" ? false : true);
+
+ if (this.slides.length > 0)
+ {
+ var slide = this.slides[this.slide_number];
+
+ if (this.slide_number > 0)
+ {
+ this.set_visibility_all_incremental("visible");
+ this.last_shown = this.previous_incremental_item(null);
+ this.set_eos_status(true);
+ }
+ else
+ {
+ this.last_shown = null;
+ this.set_visibility_all_incremental("hidden");
+ this.set_eos_status(!this.next_incremental_item(this.last_shown));
+ }
+
+ this.set_location();
+ this.add_class(this.slides[0], "first-slide");
+ w3c_slidy.show_slide(slide);
+ }
+
+ this.toc = this.table_of_contents();
+
+ this.add_initial_prompt();
+
+ // bind event handlers without interfering with custom page scripts
+ // Tap events behave too weirdly to support clicks reliably on
+ // iPhone and iPad, so exclude these from click handler
+
+ if (!this.keyboardless)
+ this.add_listener(document.body, "click", this.mouse_button_click);
+
+ this.add_listener(document, "keydown", this.key_down);
+ this.add_listener(document, "keypress", this.key_press);
+ this.add_listener(window, "resize", this.resized);
+ this.add_listener(window, "scroll", this.scrolled);
+ this.add_listener(window, "unload", this.unloaded);
+
+ if (!document.body.onclick)
+ document.body.onclick = function () { };
+
+ this.single_slide_view();
+
+ //this.set_location();
+
+ this.resized();
+
+ if (this.ie7)
+ setTimeout(w3c_slidy.ie_hack, 100);
+
+ this.show_toolbar();
+
+ // for back button detection
+ setInterval(function () { w3c_slidy.check_location(); }, 200);
+ w3c_slidy.initialized = true;
+ },
+
+ // create div element with links to each slide
+ table_of_contents: function () {
+ var toc = this.create_element("div");
+ this.add_class(toc, "slidy_toc hidden");
+ //toc.setAttribute("tabindex", "0");
+
+ var heading = this.create_element("div");
+ this.add_class(heading, "toc-heading");
+ heading.innerHTML = "Table of Contents".localize();
+
+ toc.appendChild(heading);
+ var previous = null;
+
+ for (var i = 0; i < this.slides.length; ++i)
+ {
+ var title = this.has_class(this.slides[i], "title");
+ var num = document.createTextNode((i + 1) + ". ");
+
+ toc.appendChild(num);
+
+ var a = this.create_element("a");
+ a.setAttribute("href", "#(" + (i+1) + ")");
+
+ if (title)
+ this.add_class(a, "titleslide");
+
+ var name = document.createTextNode(this.slide_name(i));
+ a.appendChild(name);
+ a.onclick = w3c_slidy.toc_click;
+ a.onkeydown = w3c_slidy.toc_keydown;
+ a.previous = previous;
+
+ if (previous)
+ previous.next = a;
+
+ toc.appendChild(a);
+
+ if (i == 0)
+ toc.first = a;
+
+ if (i < this.slides.length - 1)
+ {
+ var br = this.create_element("br");
+ toc.appendChild(br);
+ }
+
+ previous = a;
+ }
+
+ toc.focus = function () {
+ if (this.first)
+ this.first.focus();
+ }
+
+ toc.onmouseup = w3c_slidy.mouse_button_up;
+
+ toc.onclick = function (e) {
+ e||(e=window.event);
+
+ if (w3c_slidy.selected_text_len <= 0)
+ w3c_slidy.hide_table_of_contents();
+
+ w3c_slidy.stop_propagation(e);
+
+ if (e.cancel != undefined)
+ e.cancel = true;
+
+ if (e.returnValue != undefined)
+ e.returnValue = false;
+
+ return false;
+ };
+
+ document.body.insertBefore(toc, document.body.firstChild);
+ return toc;
+ },
+
+ is_shown_toc: function () {
+ return !w3c_slidy.has_class(w3c_slidy.toc, "hidden");
+ },
+
+ show_table_of_contents: function () {
+ w3c_slidy.remove_class(w3c_slidy.toc, "hidden");
+ var toc = w3c_slidy.toc;
+ toc.focus();
+
+ if (w3c_slidy.ie7 && w3c_slidy.slide_number == 0)
+ setTimeout(w3c_slidy.ie_hack, 100);
+ },
+
+ hide_table_of_contents: function () {
+ w3c_slidy.add_class(w3c_slidy.toc, "hidden");
+
+ if (!w3c_slidy.opera)
+ w3c_slidy.help_anchor.focus();
+ },
+
+ toggle_table_of_contents: function () {
+ if (w3c_slidy.is_shown_toc())
+ w3c_slidy.hide_table_of_contents();
+ else
+ w3c_slidy.show_table_of_contents();
+ },
+
+ // called on clicking toc entry
+ toc_click: function (e) {
+ if (!e)
+ e = window.event;
+
+ var target = w3c_slidy.get_target(e);
+
+ if (target && target.nodeType == 1)
+ {
+ var uri = target.getAttribute("href");
+
+ if (uri)
+ {
+ //alert("going to " + uri);
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.slide_number = w3c_slidy.find_slide_number(uri);
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_location();
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+ w3c_slidy.show_slide(slide);
+ //target.focus();
+
+ try
+ {
+ if (!w3c_slidy.opera)
+ w3c_slidy.help_anchor.focus();
+ }
+ catch (e)
+ {
+ }
+ }
+ }
+
+ w3c_slidy.hide_table_of_contents(e);
+ if (w3c_slidy.ie7) w3c_slidy.ie_hack();
+ w3c_slidy.stop_propagation(e);
+ return w3c_slidy.cancel(e);
+ },
+
+ // called onkeydown for toc entry
+ toc_keydown: function (event) {
+ var key;
+
+ if (!event)
+ var event = window.event;
+
+ // kludge around NS/IE differences
+ if (window.event)
+ key = window.event.keyCode;
+ else if (event.which)
+ key = event.which;
+ else
+ return true; // Yikes! unknown browser
+
+ // ignore event if key value is zero
+ // as for alt on Opera and Konqueror
+ if (!key)
+ return true;
+
+ // check for concurrent control/command/alt key
+ // but are these only present on mouse events?
+
+ if (event.ctrlKey || event.altKey)
+ return true;
+
+ if (key == 13)
+ {
+ var uri = this.getAttribute("href");
+
+ if (uri)
+ {
+ //alert("going to " + uri);
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.slide_number = w3c_slidy.find_slide_number(uri);
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_location();
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+ w3c_slidy.show_slide(slide);
+ //target.focus();
+
+ try
+ {
+ if (!w3c_slidy.opera)
+ w3c_slidy.help_anchor.focus();
+ }
+ catch (e)
+ {
+ }
+ }
+
+ w3c_slidy.hide_table_of_contents();
+
+ if (self.ie7)
+ w3c_slidy.ie_hack();
+
+ return w3c_slidy.cancel(event);
+ }
+
+ if (key == 40 && this.next)
+ {
+ this.next.focus();
+ return w3c_slidy.cancel(event);
+ }
+
+ if (key == 38 && this.previous)
+ {
+ this.previous.focus();
+ return w3c_slidy.cancel(event);
+ }
+
+ return true;
+ },
+
+
+ // ### OBSOLETE ###
+ before_print: function () {
+ this.show_all_slides();
+ this.hide_toolbar();
+ alert("before print");
+ },
+
+ // ### OBSOLETE ###
+ after_print: function () {
+ if (!this.view_all)
+ {
+ this.single_slide_view();
+ this.show_toolbar();
+ }
+ alert("after print");
+ },
+
+ // ### OBSOLETE ###
+ print_slides: function () {
+ this.before_print();
+ window.print();
+ this.after_print();
+ },
+
+ // ### OBSOLETE ?? ###
+ toggle_view: function () {
+ if (this.view_all)
+ {
+ this.single_slide_view();
+ this.show_toolbar();
+ this.view_all = 0;
+ }
+ else
+ {
+ this.show_all_slides();
+ this.hide_toolbar();
+ this.view_all = 1;
+ }
+ },
+
+ // prepare for printing ### OBSOLETE ###
+ show_all_slides: function () {
+ this.remove_class(document.body, "single_slide");
+ this.set_visibility_all_incremental("visible");
+ },
+
+ // restore after printing ### OBSOLETE ###
+ single_slide_view: function () {
+ this.add_class(document.body, "single_slide");
+ this.set_visibility_all_incremental("visible");
+ this.last_shown = this.previous_incremental_item(null);
+ },
+
+ // suppress IE's image toolbar pop up
+ hide_image_toolbar: function () {
+ if (!this.ns_pos)
+ {
+ var images = document.getElementsByTagName("IMG");
+
+ for (var i = 0; i < images.length; ++i)
+ images[i].setAttribute("galleryimg", "no");
+ }
+ },
+
+ unloaded: function (e) {
+ //alert("unloaded");
+ },
+
+ // Safari and Konqueror don't yet support getComputedStyle()
+ // and they always reload page when location.href is updated
+ is_KHTML: function () {
+ var agent = navigator.userAgent;
+ return (agent.indexOf("KHTML") >= 0 ? true : false);
+ },
+
+ // find slide name from first h1 element
+ // default to document title + slide number
+ slide_name: function (index) {
+ var name = null;
+ var slide = this.slides[index];
+
+ var heading = this.find_heading(slide);
+
+ if (heading)
+ name = this.extract_text(heading);
+
+ if (!name)
+ name = this.title + "(" + (index + 1) + ")";
+
+ name.replace(/\&/g, "&amp;");
+ name.replace(/\</g, "&lt;");
+ name.replace(/\>/g, "&gt;");
+
+ return name;
+ },
+
+ // find first h1 element in DOM tree
+ find_heading: function (node) {
+ if (!node || node.nodeType != 1)
+ return null;
+
+ if (node.nodeName == "H1" || node.nodeName == "h1")
+ return node;
+
+ var child = node.firstChild;
+
+ while (child)
+ {
+ node = this.find_heading(child);
+
+ if (node)
+ return node;
+
+ child = child.nextSibling;
+ }
+
+ return null;
+ },
+
+ // recursively extract text from DOM tree
+ extract_text: function (node) {
+ if (!node)
+ return "";
+
+ // text nodes
+ if (node.nodeType == 3)
+ return node.nodeValue;
+
+ // elements
+ if (node.nodeType == 1)
+ {
+ node = node.firstChild;
+ var text = "";
+
+ while (node)
+ {
+ text = text + this.extract_text(node);
+ node = node.nextSibling;
+ }
+
+ return text;
+ }
+
+ return "";
+ },
+
+ // find copyright text from meta element
+ find_copyright: function () {
+ var name, content;
+ var meta = document.getElementsByTagName("meta");
+
+ for (var i = 0; i < meta.length; ++i)
+ {
+ name = meta[i].getAttribute("name");
+ content = meta[i].getAttribute("content");
+
+ if (name == "copyright")
+ return content;
+ }
+
+ return null;
+ },
+
+ find_size_adjust: function () {
+ var name, content, offset;
+ var meta = document.getElementsByTagName("meta");
+
+ for (var i = 0; i < meta.length; ++i)
+ {
+ name = meta[i].getAttribute("name");
+ content = meta[i].getAttribute("content");
+
+ if (name == "font-size-adjustment")
+ return 1 * content;
+ }
+
+ return 1;
+ },
+
+ // <meta name="duration" content="20" /> for 20 minutes
+ find_duration: function () {
+ var name, content, offset;
+ var meta = document.getElementsByTagName("meta");
+
+ for (var i = 0; i < meta.length; ++i)
+ {
+ name = meta[i].getAttribute("name");
+ content = meta[i].getAttribute("content");
+
+ if (name == "duration")
+ return 60000 * content;
+ }
+
+ return null;
+ },
+
+ replace_by_non_breaking_space: function (str) {
+ for (var i = 0; i < str.length; ++i)
+ str[i] = 160;
+ },
+
+ // ### CHECK ME ### is use of "li" okay for text/html?
+ // for XHTML do we also need to specify namespace?
+ init_outliner: function () {
+ var items = document.getElementsByTagName("li");
+
+ for (var i = 0; i < items.length; ++i)
+ {
+ var target = items[i];
+
+ if (!this.has_class(target.parentNode, "outline"))
+ continue;
+
+ target.onclick = this.outline_click;
+/* ### more work needed for IE6
+ if (!this.ns_pos)
+ {
+ target.onmouseover = this.hover_outline;
+ target.onmouseout = this.unhover_outline;
+ }
+*/
+ if (this.foldable(target))
+ {
+ target.foldable = true;
+ target.onfocus = function () {w3c_slidy.outline = this;};
+ target.onblur = function () {w3c_slidy.outline = null;};
+
+ if (!target.getAttribute("tabindex"))
+ target.setAttribute("tabindex", "0");
+
+ if (this.has_class(target, "expand"))
+ this.unfold(target);
+ else
+ this.fold(target);
+ }
+ else
+ {
+ this.add_class(target, "nofold");
+ target.visible = true;
+ target.foldable = false;
+ }
+ }
+ },
+
+ foldable: function (item) {
+ if (!item || item.nodeType != 1)
+ return false;
+
+ var node = item.firstChild;
+
+ while (node)
+ {
+ if (node.nodeType == 1 && this.is_block(node))
+ return true;
+
+ node = node.nextSibling;
+ }
+
+ return false;
+ },
+
+ // ### CHECK ME ### switch to add/remove "hidden" class
+ fold: function (item) {
+ if (item)
+ {
+ this.remove_class(item, "unfolded");
+ this.add_class(item, "folded");
+ }
+
+ var node = item ? item.firstChild : null;
+
+ while (node)
+ {
+ if (node.nodeType == 1 && this.is_block(node)) // element
+ {
+ w3c_slidy.add_class(node, "hidden");
+ }
+
+ node = node.nextSibling;
+ }
+
+ item.visible = false;
+ },
+
+ // ### CHECK ME ### switch to add/remove "hidden" class
+ unfold: function (item) {
+ if (item)
+ {
+ this.add_class(item, "unfolded");
+ this.remove_class(item, "folded");
+ }
+
+ var node = item ? item.firstChild : null;
+
+ while (node)
+ {
+ if (node.nodeType == 1 && this.is_block(node)) // element
+ {
+ w3c_slidy.remove_class(node, "hidden");
+ }
+
+ node = node.nextSibling;
+ }
+
+ item.visible = true;
+ },
+
+ outline_click: function (e) {
+ if (!e)
+ e = window.event;
+
+ var rightclick = false;
+ var target = w3c_slidy.get_target(e);
+
+ while (target && target.visible == undefined)
+ target = target.parentNode;
+
+ if (!target)
+ return true;
+
+ if (e.which)
+ rightclick = (e.which == 3);
+ else if (e.button)
+ rightclick = (e.button == 2);
+
+ if (!rightclick && target.visible != undefined)
+ {
+ if (target.foldable)
+ {
+ if (target.visible)
+ w3c_slidy.fold(target);
+ else
+ w3c_slidy.unfold(target);
+ }
+
+ w3c_slidy.stop_propagation(e);
+ e.cancel = true;
+ e.returnValue = false;
+ }
+
+ return false;
+ },
+
+ add_initial_prompt: function () {
+ var prompt = this.create_element("div");
+ prompt.setAttribute("class", "initial_prompt");
+
+ var p1 = this.create_element("p");
+ prompt.appendChild(p1);
+ p1.setAttribute("class", "help");
+
+ if (this.keyboardless)
+ p1.innerHTML = "Tap footer to move to next slide";
+ else
+ p1.innerHTML = "Space or Right Arrow to move to next " +
+ "slide, click help below for more details";
+
+ this.add_listener(prompt, "click", function (e) {
+ document.body.removeChild(prompt);
+ w3c_slidy.stop_propagation(e);
+
+ if (e.cancel != undefined)
+ e.cancel = true;
+
+ if (e.returnValue != undefined)
+ e.returnValue = false;
+
+ return false;
+ });
+
+ document.body.appendChild(prompt);
+ this.initial_prompt = prompt;
+ setTimeout(function() {document.body.removeChild(prompt);}, 5000);
+ },
+
+ add_toolbar: function () {
+ var counter, page;
+
+ this.toolbar = this.create_element("div");
+ this.toolbar.setAttribute("class", "toolbar");
+
+ // a reasonably behaved browser
+ if (this.ns_pos || !this.ie6)
+ {
+ var right = this.create_element("div");
+ right.setAttribute("style", "float: right; text-align: right");
+
+ counter = this.create_element("span")
+ counter.innerHTML = "slide".localize() + " n/m";
+ right.appendChild(counter);
+ this.toolbar.appendChild(right);
+
+ var left = this.create_element("div");
+ left.setAttribute("style", "text-align: left");
+
+ // global end of slide indicator
+ this.eos = this.create_element("span");
+ this.eos.innerHTML = "* ";
+ left.appendChild(this.eos);
+
+ var help = this.create_element("a");
+ help.setAttribute("href", this.help_page);
+ help.setAttribute("title", this.help_text.localize());
+ help.innerHTML = "help?".localize();
+ left.appendChild(help);
+ this.help_anchor = help; // save for focus hack
+
+ var gap1 = document.createTextNode(" ");
+ left.appendChild(gap1);
+
+ var contents = this.create_element("a");
+ contents.setAttribute("href", "javascript:w3c_slidy.toggle_table_of_contents()");
+ contents.setAttribute("title", "table of contents".localize());
+ contents.innerHTML = "contents?".localize();
+ left.appendChild(contents);
+
+ var gap2 = document.createTextNode(" ");
+ left.appendChild(gap2);
+
+ var copyright = this.find_copyright();
+
+ if (copyright)
+ {
+ var span = this.create_element("span");
+ span.className = "copyright";
+ span.innerHTML = copyright;
+ left.appendChild(span);
+ }
+
+ this.toolbar.setAttribute("tabindex", "0");
+ this.toolbar.appendChild(left);
+ }
+ else // IE6 so need to work around its poor CSS support
+ {
+ this.toolbar.style.position = (this.ie7 ? "fixed" : "absolute");
+ this.toolbar.style.zIndex = "200";
+ this.toolbar.style.width = "99.9%";
+ this.toolbar.style.height = "1.2em";
+ this.toolbar.style.top = "auto";
+ this.toolbar.style.bottom = "0";
+ this.toolbar.style.left = "0";
+ this.toolbar.style.right = "0";
+ this.toolbar.style.textAlign = "left";
+ this.toolbar.style.fontSize = "60%";
+ this.toolbar.style.color = "red";
+ this.toolbar.borderWidth = 0;
+ this.toolbar.className = "toolbar";
+ this.toolbar.style.background = "rgb(240,240,240)";
+
+ // would like to have help text left aligned
+ // and page counter right aligned, floating
+ // div's don't work, so instead use nested
+ // absolutely positioned div's.
+
+ var sp = this.create_element("span");
+ sp.innerHTML = "&nbsp;&nbsp;*&nbsp;";
+ this.toolbar.appendChild(sp);
+ this.eos = sp; // end of slide indicator
+
+ var help = this.create_element("a");
+ help.setAttribute("href", this.help_page);
+ help.setAttribute("title", this.help_text.localize());
+ help.innerHTML = "help?".localize();
+ this.toolbar.appendChild(help);
+ this.help_anchor = help; // save for focus hack
+
+ var gap1 = document.createTextNode(" ");
+ this.toolbar.appendChild(gap1);
+
+ var contents = this.create_element("a");
+ contents.setAttribute("href", "javascript:toggleTableOfContents()");
+ contents.setAttribute("title", "table of contents".localize());
+ contents.innerHTML = "contents?".localize();
+ this.toolbar.appendChild(contents);
+
+ var gap2 = document.createTextNode(" ");
+ this.toolbar.appendChild(gap2);
+
+ var copyright = this.find_copyright();
+
+ if (copyright)
+ {
+ var span = this.create_element("span");
+ span.innerHTML = copyright;
+ span.style.color = "black";
+ span.style.marginLeft = "0.5em";
+ this.toolbar.appendChild(span);
+ }
+
+ counter = this.create_element("div")
+ counter.style.position = "absolute";
+ counter.style.width = "auto"; //"20%";
+ counter.style.height = "1.2em";
+ counter.style.top = "auto";
+ counter.style.bottom = 0;
+ counter.style.right = "0";
+ counter.style.textAlign = "right";
+ counter.style.color = "red";
+ counter.style.background = "rgb(240,240,240)";
+
+ counter.innerHTML = "slide".localize() + " n/m";
+ this.toolbar.appendChild(counter);
+ }
+
+ // ensure that click isn't passed through to the page
+ this.toolbar.onclick =
+ function (e) {
+ if (!e)
+ e = window.event;
+
+ var target = e.target;
+
+ if (!target && e.srcElement)
+ target = e.srcElement;
+
+ // work around Safari bug
+ if (target && target.nodeType == 3)
+ target = target.parentNode;
+
+ w3c_slidy.stop_propagation(e);
+
+ if (target && target.nodeName.toLowerCase() != "a")
+ w3c_slidy.mouse_button_click(e);
+ };
+
+ this.slide_number_element = counter;
+ this.set_eos_status(false);
+ document.body.appendChild(this.toolbar);
+ },
+
+ // wysiwyg editors make it hard to use div elements
+ // e.g. amaya loses the div when you copy and paste
+ // this function wraps div elements around implicit
+ // slides which start with an h1 element and continue
+ // up to the next heading or div element
+ wrap_implicit_slides: function () {
+ var i, heading, node, next, div;
+ var headings = document.getElementsByTagName("h1");
+
+ if (!headings)
+ return;
+
+ for (i = 0; i < headings.length; ++i)
+ {
+ heading = headings[i];
+
+ if (heading.parentNode != document.body)
+ continue;
+
+ node = heading.nextSibling;
+
+ div = document.createElement("div");
+ this.add_class(div, "slide");
+ document.body.replaceChild(div, heading);
+ div.appendChild(heading);
+
+ while (node)
+ {
+ if (node.nodeType == 1 && // an element
+ (node.nodeName == "H1" ||
+ node.nodeName == "h1" ||
+ node.nodeName == "DIV" ||
+ node.nodeName == "div"))
+ break;
+
+ next = node.nextSibling;
+ node = document.body.removeChild(node);
+ div.appendChild(node);
+ node = next;
+ }
+ }
+ },
+
+// return new array of all slides
+ collect_slides: function () {
+ var slides = new Array();
+ var divs = document.body.getElementsByTagName("div");
+
+ for (var i = 0; i < divs.length; ++i)
+ {
+ div = divs.item(i);
+
+ if (this.has_class(div, "slide"))
+ {
+ // add slide to collection
+ slides[slides.length] = div;
+
+ // hide each slide as it is found
+ this.add_class(div, "hidden");
+
+ // add dummy <br/> at end for scrolling hack
+ var node1 = document.createElement("br");
+ div.appendChild(node1);
+ var node2 = document.createElement("br");
+ div.appendChild(node2);
+ }
+ else if (this.has_class(div, "background"))
+ { // work around for Firefox SVG reload bug
+ // which otherwise replaces 1st SVG graphic with 2nd
+ div.style.display = "block";
+ }
+ }
+
+ this.slides = slides;
+ },
+
+ // return new array of all <div class="handout">
+ collect_notes: function () {
+ var notes = new Array();
+ var divs = document.body.getElementsByTagName("div");
+
+ for (var i = 0; i < divs.length; ++i)
+ {
+ div = divs.item(i);
+
+ if (this.has_class(div, "handout"))
+ {
+ // add note to collection
+ notes[notes.length] = div;
+
+ // and hide it
+ this.add_class(div, "hidden");
+ }
+ }
+
+ this.notes = notes;
+ },
+
+ // return new array of all <div class="background">
+ // including named backgrounds e.g. class="background titlepage"
+ collect_backgrounds: function () {
+ var backgrounds = new Array();
+ var divs = document.body.getElementsByTagName("div");
+
+ for (var i = 0; i < divs.length; ++i)
+ {
+ div = divs.item(i);
+
+ if (this.has_class(div, "background"))
+ {
+ // add background to collection
+ backgrounds[backgrounds.length] = div;
+
+ // and hide it
+ this.add_class(div, "hidden");
+ }
+ }
+
+ this.backgrounds = backgrounds;
+ },
+
+ // set click handlers on all anchors
+ patch_anchors: function () {
+ var self = w3c_slidy;
+ var handler = function (event) {
+ // compare this.href with location.href
+ // for link to another slide in this doc
+
+ if (self.page_address(this.href) == self.page_address(location.href))
+ {
+ // yes, so find new slide number
+ var newslidenum = self.find_slide_number(this.href);
+
+ if (newslidenum != self.slide_number)
+ {
+ var slide = self.slides[self.slide_number];
+ self.hide_slide(slide);
+ self.slide_number = newslidenum;
+ slide = self.slides[self.slide_number];
+ self.show_slide(slide);
+ self.set_location();
+ }
+ }
+ else if (this.target == null)
+ location.href = this.href;
+
+ this.blur();
+ self.disable_slide_click = true;
+ };
+
+ var anchors = document.body.getElementsByTagName("a");
+
+ for (var i = 0; i < anchors.length; ++i)
+ {
+ if (window.addEventListener)
+ anchors[i].addEventListener("click", handler, false);
+ else
+ anchors[i].attachEvent("onclick", handler);
+ }
+ },
+
+ // ### CHECK ME ### see which functions are invoked via setTimeout
+ // either directly or indirectly for use of w3c_slidy vs this
+ show_slide_number: function () {
+ var timer = w3c_slidy.get_timer();
+ w3c_slidy.slide_number_element.innerHTML = timer + "slide".localize() + " " +
+ (w3c_slidy.slide_number + 1) + "/" + w3c_slidy.slides.length;
+ },
+
+ // every 200mS check if the location has been changed as a
+ // result of the user activating the Back button/menu item
+ // doesn't work for Opera < 9.5
+ check_location: function () {
+ var hash = location.hash;
+
+ if (w3c_slidy.slide_number > 0 && (hash == "" || hash == "#"))
+ w3c_slidy.goto_slide(0);
+ else if (hash.length > 2 && hash != "#("+(w3c_slidy.slide_number+1)+")")
+ {
+ var num = parseInt(location.hash.substr(2));
+
+ if (!isNaN(num))
+ w3c_slidy.goto_slide(num-1);
+ }
+
+ if (w3c_slidy.time_left && w3c_slidy.slide_number > 0)
+ {
+ w3c_slidy.show_slide_number();
+
+ if (w3c_slidy.time_left > 0)
+ w3c_slidy.time_left -= 200;
+ }
+ },
+
+ get_timer: function () {
+ var timer = "";
+ if (w3c_slidy.time_left)
+ {
+ var mins, secs;
+ secs = Math.floor(w3c_slidy.time_left/1000);
+ mins = Math.floor(secs / 60);
+ secs = secs % 60;
+ timer = (mins ? mins+"m" : "") + secs + "s ";
+ }
+
+ return timer;
+ },
+
+ // this doesn't push location onto history stack for IE
+ // for which a hidden iframe hack is needed: load page into
+ // the iframe with script that set's parent's location.hash
+ // but that won't work for standalone use unless we can
+ // create the page dynamically via a javascript: URL
+ set_location: function () {
+ var uri = w3c_slidy.page_address(location.href);
+ var hash = "#(" + (w3c_slidy.slide_number+1) + ")";
+
+ if (w3c_slidy.slide_number >= 0)
+ uri = uri + hash;
+
+ if (w3c_slidy.ie && !w3c_slidy.ie8)
+ w3c_slidy.push_hash(hash);
+
+ if (uri != location.href) // && !khtml
+ location.href = uri;
+
+ if (this.khtml)
+ hash = "(" + (w3c_slidy.slide_number+1) + ")";
+
+ if (!this.ie && location.hash != hash && location.hash != "")
+ location.hash = hash;
+
+ document.title = w3c_slidy.title + " (" + (w3c_slidy.slide_number+1) + ")";
+ w3c_slidy.show_slide_number();
+ },
+
+ page_address: function (uri) {
+ var i = uri.indexOf("#");
+
+ if (i < 0)
+ i = uri.indexOf("%23");
+
+ // check if anchor is entire page
+
+ if (i < 0)
+ return uri; // yes
+
+ return uri.substr(0, i);
+ },
+
+ // only used for IE6 and IE7
+ on_frame_loaded: function (hash) {
+ location.hash = hash;
+ var uri = w3c_slidy.page_address(location.href);
+ location.href = uri + hash;
+ },
+
+ // history hack with thanks to Bertrand Le Roy
+ push_hash: function (hash) {
+ if (hash == "") hash = "#(1)";
+ window.location.hash = hash;
+
+ var doc = document.getElementById("historyFrame").contentWindow.document;
+ doc.open("javascript:'<html></html>'");
+ // PWL modified this string literal to break the close script tag
+ // which otherwise gets parsed when incorporated
+ doc.write("<html><head><script type=\"text/javascript\">window.parent.w3c_slidy.on_frame_loaded('"+
+ (hash) + "');</" + "script></head><body>hello mum</body></html>");
+ doc.close();
+ },
+
+ // find current slide based upon location
+ // first find target anchor and then look
+ // for associated div element enclosing it
+ // finally map that to slide number
+ find_slide_number: function (uri) {
+ // first get anchor from page location
+
+ var i = uri.indexOf("#");
+
+ // check if anchor is entire page
+ if (i < 0)
+ return 0; // yes
+
+ var anchor = unescape(uri.substr(i+1));
+
+ // now use anchor as XML ID to find target
+ var target = document.getElementById(anchor);
+
+ if (!target)
+ {
+ // does anchor look like "(2)" for slide 2 ??
+ // where first slide is (1)
+ var re = /\((\d)+\)/;
+
+ if (anchor.match(re))
+ {
+ var num = parseInt(anchor.substring(1, anchor.length-1));
+
+ if (num > this.slides.length)
+ num = 1;
+
+ if (--num < 0)
+ num = 0;
+
+ return num;
+ }
+
+ // accept [2] for backwards compatibility
+ re = /\[(\d)+\]/;
+
+ if (anchor.match(re))
+ {
+ var num = parseInt(anchor.substring(1, anchor.length-1));
+
+ if (num > this.slides.length)
+ num = 1;
+
+ if (--num < 0)
+ num = 0;
+
+ return num;
+ }
+
+ // oh dear unknown anchor
+ return 0;
+ }
+
+ // search for enclosing slide
+
+ while (true)
+ {
+ // browser coerces html elements to uppercase!
+ if (target.nodeName.toLowerCase() == "div" &&
+ this.has_class(target, "slide"))
+ {
+ // found the slide element
+ break;
+ }
+
+ // otherwise try parent element if any
+
+ target = target.parentNode;
+
+ if (!target)
+ {
+ return 0; // no luck!
+ }
+ };
+
+ for (i = 0; i < slides.length; ++i)
+ {
+ if (slides[i] == target)
+ return i; // success
+ }
+
+ // oh dear still no luck
+ return 0;
+ },
+
+ previous_slide: function (incremental) {
+ if (!w3c_slidy.view_all)
+ {
+ var slide;
+
+ if ((incremental || w3c_slidy.slide_number == 0) && w3c_slidy.last_shown != null)
+ {
+ w3c_slidy.last_shown = w3c_slidy.hide_previous_item(w3c_slidy.last_shown);
+ w3c_slidy.set_eos_status(false);
+ }
+ else if (w3c_slidy.slide_number > 0)
+ {
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+
+ w3c_slidy.slide_number = w3c_slidy.slide_number - 1;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.set_visibility_all_incremental("visible");
+ w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);
+ w3c_slidy.set_eos_status(true);
+ w3c_slidy.show_slide(slide);
+ }
+
+ w3c_slidy.set_location();
+
+ if (!w3c_slidy.ns_pos)
+ w3c_slidy.refresh_toolbar(200);
+ }
+ },
+
+ next_slide: function (incremental) {
+ if (!w3c_slidy.view_all)
+ {
+ var slide, last = w3c_slidy.last_shown;
+
+ if (incremental || w3c_slidy.slide_number == w3c_slidy.slides.length - 1)
+ w3c_slidy.last_shown = w3c_slidy.reveal_next_item(w3c_slidy.last_shown);
+
+ if ((!incremental || w3c_slidy.last_shown == null) &&
+ w3c_slidy.slide_number < w3c_slidy.slides.length - 1)
+ {
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+
+ w3c_slidy.slide_number = w3c_slidy.slide_number + 1;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.show_slide(slide);
+ }
+ else if (!w3c_slidy.last_shown)
+ {
+ if (last && incremental)
+ w3c_slidy.last_shown = last;
+ }
+
+ w3c_slidy.set_location();
+
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+
+ if (!w3c_slidy.ns_pos)
+ w3c_slidy.refresh_toolbar(200);
+ }
+ },
+
+ // to first slide with nothing revealed
+ // i.e. state at start of presentation
+ first_slide: function () {
+ if (!w3c_slidy.view_all)
+ {
+ var slide;
+
+ if (w3c_slidy.slide_number != 0)
+ {
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+
+ w3c_slidy.slide_number = 0;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.show_slide(slide);
+ }
+
+ w3c_slidy.set_eos_status(
+ !w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+ w3c_slidy.set_location();
+ }
+ },
+
+ // goto last slide with everything revealed
+ // i.e. state at end of presentation
+ last_slide: function () {
+ if (!w3c_slidy.view_all)
+ {
+ var slide;
+
+ w3c_slidy.last_shown = null; //revealNextItem(lastShown);
+
+ if (w3c_slidy.last_shown == null &&
+ w3c_slidy.slide_number < w3c_slidy.slides.length - 1)
+ {
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.slide_number = w3c_slidy.slides.length - 1;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.set_visibility_all_incremental("visible");
+ w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);
+
+ w3c_slidy.show_slide(slide);
+ }
+ else
+ {
+ w3c_slidy.set_visibility_all_incremental("visible");
+ w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);
+ }
+
+ w3c_slidy.set_eos_status(true);
+ w3c_slidy.set_location();
+ }
+ },
+
+
+ // ### check this and consider add/remove class
+ set_eos_status: function (state) {
+ if (this.eos)
+ this.eos.style.color = (state ? "rgb(240,240,240)" : "red");
+ },
+
+ // first slide is 0
+ goto_slide: function (num) {
+ //alert("going to slide " + (num+1));
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.slide_number = num;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+ document.title = w3c_slidy.title + " (" + (w3c_slidy.slide_number+1) + ")";
+ w3c_slidy.show_slide(slide);
+ w3c_slidy.show_slide_number();
+ },
+
+
+ show_slide: function (slide) {
+ this.sync_background(slide);
+ window.scrollTo(0,0);
+ this.remove_class(slide, "hidden");
+ },
+
+ hide_slide: function (slide) {
+ this.add_class(slide, "hidden");
+ },
+
+ // show just the backgrounds pertinent to this slide
+ // when slide background-color is transparent
+ // this should now work with rgba color values
+ sync_background: function (slide) {
+ var background;
+ var bgColor;
+
+ if (slide.currentStyle)
+ bgColor = slide.currentStyle["backgroundColor"];
+ else if (document.defaultView)
+ {
+ var styles = document.defaultView.getComputedStyle(slide,null);
+
+ if (styles)
+ bgColor = styles.getPropertyValue("background-color");
+ else // broken implementation probably due Safari or Konqueror
+ {
+ //alert("defective implementation of getComputedStyle()");
+ bgColor = "transparent";
+ }
+ }
+ else
+ bgColor == "transparent";
+
+ if (bgColor == "transparent" ||
+ bgColor.indexOf("rgba") >= 0 ||
+ bgColor.indexOf("opacity") >= 0)
+ {
+ var slideClass = this.get_class_list(slide);
+
+ for (var i = 0; i < this.backgrounds.length; i++)
+ {
+ background = this.backgrounds[i];
+
+ var bgClass = this.get_class_list(background);
+
+ if (this.matching_background(slideClass, bgClass))
+ this.remove_class(background, "hidden");
+ else
+ this.add_class(background, "hidden");
+ }
+ }
+ else // forcibly hide all backgrounds
+ this.hide_backgrounds();
+ },
+
+ hide_backgrounds: function () {
+ for (var i = 0; i < this.backgrounds.length; i++)
+ {
+ background = this.backgrounds[i];
+ this.add_class(background, "hidden");
+ }
+ },
+
+ // compare classes for slide and background
+ matching_background: function (slideClass, bgClass) {
+ var i, count, pattern, result;
+
+ // define pattern as regular expression
+ pattern = /\w+/g;
+
+ // check background class names
+ result = bgClass.match(pattern);
+
+ for (i = count = 0; i < result.length; i++)
+ {
+ if (result[i] == "hidden")
+ continue;
+
+ if (result[i] == "background")
+ continue;
+
+ ++count;
+ }
+
+ if (count == 0) // default match
+ return true;
+
+ // check for matches and place result in array
+ result = slideClass.match(pattern);
+
+ // now check if desired name is present for background
+ for (i = count = 0; i < result.length; i++)
+ {
+ if (result[i] == "hidden")
+ continue;
+
+ if (this.has_token(bgClass, result[i]))
+ return true;
+ }
+
+ return false;
+ },
+
+ resized: function () {
+ var width = 0;
+
+ if ( typeof( window.innerWidth ) == 'number' )
+ width = window.innerWidth; // Non IE browser
+ else if (document.documentElement && document.documentElement.clientWidth)
+ width = document.documentElement.clientWidth; // IE6
+ else if (document.body && document.body.clientWidth)
+ width = document.body.clientWidth; // IE4
+
+ var height = 0;
+
+ if ( typeof( window.innerHeight ) == 'number' )
+ height = window.innerHeight; // Non IE browser
+ else if (document.documentElement && document.documentElement.clientHeight)
+ height = document.documentElement.clientHeight; // IE6
+ else if (document.body && document.body.clientHeight)
+ height = document.body.clientHeight; // IE4
+
+ if (height && (width/height > 1.05*1024/768))
+ {
+ width = height * 1024.0/768;
+ }
+
+ // IE fires onresize even when only font size is changed!
+ // so we do a check to avoid blocking < and > actions
+ if (width != w3c_slidy.last_width || height != w3c_slidy.last_height)
+ {
+ if (width >= 1100)
+ w3c_slidy.size_index = 5; // 4
+ else if (width >= 1000)
+ w3c_slidy.size_index = 4; // 3
+ else if (width >= 800)
+ w3c_slidy.size_index = 3; // 2
+ else if (width >= 600)
+ w3c_slidy.size_index = 2; // 1
+ else if (width)
+ w3c_slidy.size_index = 0;
+
+ // add in font size adjustment from meta element e.g.
+ // <meta name="font-size-adjustment" content="-2" />
+ // useful when slides have too much content ;-)
+
+ if (0 <= w3c_slidy.size_index + w3c_slidy.size_adjustment &&
+ w3c_slidy.size_index + w3c_slidy.size_adjustment < w3c_slidy.sizes.length)
+ w3c_slidy.size_index = w3c_slidy.size_index + w3c_slidy.size_adjustment;
+
+ // enables cross browser use of relative width/height
+ // on object elements for use with SVG and Flash media
+ w3c_slidy.adjust_object_dimensions(width, height);
+
+ if (document.body.style.fontSize != w3c_slidy.sizes[w3c_slidy.size_index])
+ {
+ document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];
+ }
+
+ w3c_slidy.last_width = width;
+ w3c_slidy.last_height = height;
+
+ // force reflow to work around Mozilla bug
+ if (w3c_slidy.ns_pos)
+ {
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.show_slide(slide);
+ }
+
+ // force correct positioning of toolbar
+ w3c_slidy.refresh_toolbar(200);
+ }
+ },
+
+ scrolled: function () {
+ if (w3c_slidy.toolbar && !w3c_slidy.ns_pos && !w3c_slidy.ie7)
+ {
+ w3c_slidy.hack_offset = w3c_slidy.scroll_x_offset();
+ // hide toolbar
+ w3c_slidy.toolbar.style.display = "none";
+
+ // make it reappear later
+ if (w3c_slidy.scrollhack == 0 && !w3c_slidy.view_all)
+ {
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, 1000);
+ w3c_slidy.scrollhack = 1;
+ }
+ }
+ },
+
+ hide_toolbar: function () {
+ w3c_slidy.add_class(w3c_slidy.toolbar, "hidden");
+ window.focus();
+ },
+
+ // used to ensure IE refreshes toolbar in correct position
+ refresh_toolbar: function (interval) {
+ if (!w3c_slidy.ns_pos && !w3c_slidy.ie7)
+ {
+ w3c_slidy.hide_toolbar();
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, interval);
+ }
+ },
+
+ // restores toolbar after short delay
+ show_toolbar: function () {
+ if (w3c_slidy.want_toolbar)
+ {
+ w3c_slidy.toolbar.style.display = "block";
+
+ if (!w3c_slidy.ns_pos)
+ {
+ // adjust position to allow for scrolling
+ var xoffset = w3c_slidy.scroll_x_offset();
+ w3c_slidy.toolbar.style.left = xoffset;
+ w3c_slidy.toolbar.style.right = xoffset;
+
+ // determine vertical scroll offset
+ //var yoffset = scrollYOffset();
+
+ // bottom is doc height - window height - scroll offset
+ //var bottom = documentHeight() - lastHeight - yoffset
+
+ //if (yoffset > 0 || documentHeight() > lastHeight)
+ // bottom += 16; // allow for height of scrollbar
+
+ w3c_slidy.toolbar.style.bottom = 0; //bottom;
+ }
+
+ w3c_slidy.remove_class(w3c_slidy.toolbar, "hidden");
+ }
+
+ w3c_slidy.scrollhack = 0;
+
+
+ // set the keyboard focus to the help link on the
+ // toolbar to ensure that document has the focus
+ // IE doesn't always work with window.focus()
+ // and this hack has benefit of Enter for help
+
+ try
+ {
+ if (!w3c_slidy.opera)
+ w3c_slidy.help_anchor.focus();
+ }
+ catch (e)
+ {
+ }
+ },
+
+// invoked via F key
+ toggle_toolbar: function () {
+ if (!w3c_slidy.view_all)
+ {
+ if (w3c_slidy.has_class(w3c_slidy.toolbar, "hidden"))
+ {
+ w3c_slidy.remove_class(w3c_slidy.toolbar, "hidden")
+ w3c_slidy.want_toolbar = 1;
+ }
+ else
+ {
+ w3c_slidy.add_class(w3c_slidy.toolbar, "hidden")
+ w3c_slidy.want_toolbar = 0;
+ }
+ }
+ },
+
+ scroll_x_offset: function () {
+ if (window.pageXOffset)
+ return self.pageXOffset;
+
+ if (document.documentElement &&
+ document.documentElement.scrollLeft)
+ return document.documentElement.scrollLeft;
+
+ if (document.body)
+ return document.body.scrollLeft;
+
+ return 0;
+ },
+
+ scroll_y_offset: function () {
+ if (window.pageYOffset)
+ return self.pageYOffset;
+
+ if (document.documentElement &&
+ document.documentElement.scrollTop)
+ return document.documentElement.scrollTop;
+
+ if (document.body)
+ return document.body.scrollTop;
+
+ return 0;
+ },
+
+ // looking for a way to determine height of slide content
+ // the slide itself is set to the height of the window
+ optimize_font_size: function () {
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+
+ //var dh = documentHeight(); //getDocHeight(document);
+ var dh = slide.scrollHeight;
+ var wh = getWindowHeight();
+ var u = 100 * dh / wh;
+
+ alert("window utilization = " + u + "% (doc "
+ + dh + " win " + wh + ")");
+ },
+
+ // from document object
+ get_doc_height: function (doc) {
+ if (!doc)
+ doc = document;
+
+ if (doc && doc.body && doc.body.offsetHeight)
+ return doc.body.offsetHeight; // ns/gecko syntax
+
+ if (doc && doc.body && doc.body.scrollHeight)
+ return doc.body.scrollHeight;
+
+ alert("couldn't determine document height");
+ },
+
+ get_window_height: function () {
+ if ( typeof( window.innerHeight ) == 'number' )
+ return window.innerHeight; // Non IE browser
+
+ if (document.documentElement && document.documentElement.clientHeight)
+ return document.documentElement.clientHeight; // IE6
+
+ if (document.body && document.body.clientHeight)
+ return document.body.clientHeight; // IE4
+ },
+
+ document_height: function () {
+ var sh, oh;
+
+ sh = document.body.scrollHeight;
+ oh = document.body.offsetHeight;
+
+ if (sh && oh)
+ {
+ return (sh > oh ? sh : oh);
+ }
+
+ // no idea!
+ return 0;
+ },
+
+ smaller: function () {
+ if (w3c_slidy.size_index > 0)
+ {
+ --w3c_slidy.size_index;
+ }
+
+ w3c_slidy.toolbar.style.display = "none";
+ document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.show_slide(slide);
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, 50);
+ },
+
+ bigger: function () {
+ if (w3c_slidy.size_index < w3c_slidy.sizes.length - 1)
+ {
+ ++w3c_slidy.size_index;
+ }
+
+ w3c_slidy.toolbar.style.display = "none";
+ document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.show_slide(slide);
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, 50);
+ },
+
+ // enables cross browser use of relative width/height
+ // on object elements for use with SVG and Flash media
+ // with thanks to Ivan Herman for the suggestion
+ adjust_object_dimensions: function (width, height) {
+ for( var i = 0; i < w3c_slidy.objects.length; i++ )
+ {
+ var obj = this.objects[i];
+ var mimeType = obj.getAttribute("type");
+
+ if (mimeType == "image/svg+xml" || mimeType == "application/x-shockwave-flash")
+ {
+ if ( !obj.initialWidth )
+ obj.initialWidth = obj.getAttribute("width");
+
+ if ( !obj.initialHeight )
+ obj.initialHeight = obj.getAttribute("height");
+
+ if ( obj.initialWidth && obj.initialWidth.charAt(obj.initialWidth.length-1) == "%" )
+ {
+ var w = parseInt(obj.initialWidth.slice(0, obj.initialWidth.length-1));
+ var newW = width * (w/100.0);
+ obj.setAttribute("width",newW);
+ }
+
+ if ( obj.initialHeight &&
+ obj.initialHeight.charAt(obj.initialHeight.length-1) == "%" )
+ {
+ var h = parseInt(obj.initialHeight.slice(0, obj.initialHeight.length-1));
+ var newH = height * (h/100.0);
+ obj.setAttribute("height", newH);
+ }
+ }
+ }
+ },
+
+ // needed for Opera to inhibit default behavior
+ // since Opera delivers keyPress even if keyDown
+ // was cancelled
+ key_press: function (event) {
+ if (!event)
+ event = window.event;
+
+ if (!w3c_slidy.key_wanted)
+ return w3c_slidy.cancel(event);
+
+ return true;
+ },
+
+ // See e.g. http://www.quirksmode.org/js/events/keys.html for keycodes
+ key_down: function (event) {
+ var key;
+
+ w3c_slidy.key_wanted = true;
+
+ if (!event)
+ event = window.event;
+
+ // kludge around NS/IE differences
+ if (window.event)
+ key = window.event.keyCode;
+ else if (event.which)
+ key = event.which;
+ else
+ return true; // Yikes! unknown browser
+
+ // ignore event if key value is zero
+ // as for alt on Opera and Konqueror
+ if (!key)
+ return true;
+
+ // check for concurrent control/command/alt key
+ // but are these only present on mouse events?
+
+ if (event.ctrlKey || event.altKey || event.metaKey)
+ return true;
+
+ // dismiss table of contents if visible
+ if (w3c_slidy.is_shown_toc() && key != 9 && key != 16 && key != 38 && key != 40)
+ {
+ w3c_slidy.hide_table_of_contents();
+
+ if (key == 27 || key == 84 || key == 67)
+ return w3c_slidy.cancel(event);
+ }
+
+ if (key == 34) // Page Down
+ {
+ if (w3c_slidy.view_all)
+ return true;
+
+ w3c_slidy.next_slide(false);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 33) // Page Up
+ {
+ if (w3c_slidy.view_all)
+ return true;
+
+ w3c_slidy.previous_slide(false);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 32) // space bar
+ {
+ w3c_slidy.next_slide(true);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 37) // Left arrow
+ {
+ w3c_slidy.previous_slide(!event.shiftKey);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 36) // Home
+ {
+ w3c_slidy.first_slide();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 35) // End
+ {
+ w3c_slidy.last_slide();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 39) // Right arrow
+ {
+ w3c_slidy.next_slide(!event.shiftKey);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 13) // Enter
+ {
+ if (w3c_slidy.outline)
+ {
+ if (w3c_slidy.outline.visible)
+ w3c_slidy.fold(w3c_slidy.outline);
+ else
+ w3c_slidy.unfold(w3c_slidy.outline);
+
+ return w3c_slidy.cancel(event);
+ }
+ }
+ else if (key == 188) // < for smaller fonts
+ {
+ w3c_slidy.smaller();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 190) // > for larger fonts
+ {
+ w3c_slidy.bigger();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 189 || key == 109) // - for smaller fonts
+ {
+ w3c_slidy.smaller();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 187 || key == 191 || key == 107) // = + for larger fonts
+ {
+ w3c_slidy.bigger();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 83) // S for smaller fonts
+ {
+ w3c_slidy.smaller();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 66) // B for larger fonts
+ {
+ w3c_slidy.bigger();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 90) // Z for last slide
+ {
+ w3c_slidy.last_slide();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 70) // F for toggle toolbar
+ {
+ w3c_slidy.toggle_toolbar();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 65) // A for toggle view single/all slides
+ {
+ w3c_slidy.toggle_view();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 75) // toggle action of left click for next page
+ {
+ w3c_slidy.mouse_click_enabled = !w3c_slidy.mouse_click_enabled;
+ var alert_msg = (w3c_slidy.mouse_click_enabled ?
+ "enabled" : "disabled") + " mouse click advance";
+
+ alert(alert_msg.localize());
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 84 || key == 67) // T or C for table of contents
+ {
+ if (w3c_slidy.toc)
+ w3c_slidy.toggle_table_of_contents();
+
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 72) // H for help
+ {
+ window.location = w3c_slidy.help_page;
+ return w3c_slidy.cancel(event);
+ }
+ //else alert("key code is "+ key);
+
+ return true;
+ },
+
+ // safe for both text/html and application/xhtml+xml
+ create_element: function (name) {
+ if (this.xhtml && (typeof document.createElementNS != 'undefined'))
+ return document.createElementNS("http://www.w3.org/1999/xhtml", name)
+
+ return document.createElement(name);
+ },
+
+ get_element_style: function (elem, IEStyleProp, CSSStyleProp) {
+ if (elem.currentStyle)
+ {
+ return elem.currentStyle[IEStyleProp];
+ }
+ else if (window.getComputedStyle)
+ {
+ var compStyle = window.getComputedStyle(elem, "");
+ return compStyle.getPropertyValue(CSSStyleProp);
+ }
+ return "";
+ },
+
+ // the string str is a whitespace separated list of tokens
+ // test if str contains a particular token, e.g. "slide"
+ has_token: function (str, token) {
+ if (str)
+ {
+ // define pattern as regular expression
+ var pattern = /\w+/g;
+
+ // check for matches
+ // place result in array
+ var result = str.match(pattern);
+
+ // now check if desired token is present
+ for (var i = 0; i < result.length; i++)
+ {
+ if (result[i] == token)
+ return true;
+ }
+ }
+
+ return false;
+ },
+
+ get_class_list: function (element) {
+ if (typeof element.className != 'undefined')
+ return element.className;
+
+ return element.getAttribute("class");
+ },
+
+ has_class: function (element, name) {
+ if (element.nodeType != 1)
+ return false;
+
+ var regexp = new RegExp("(^| )" + name + "\W*");
+
+ if (typeof element.className != 'undefined')
+ return regexp.test(element.className);
+
+ return regexp.test(element.getAttribute("class"));
+ },
+
+ remove_class: function (element, name) {
+ var regexp = new RegExp("(^| )" + name + "\W*");
+ var clsval = "";
+
+ if (typeof element.className != 'undefined')
+ {
+ clsval = element.className;
+
+ if (clsval)
+ {
+ clsval = clsval.replace(regexp, "");
+ element.className = clsval;
+ }
+ }
+ else
+ {
+ clsval = element.getAttribute("class");
+
+ if (clsval)
+ {
+ clsval = clsval.replace(regexp, "");
+ element.setAttribute("class", clsval);
+ }
+ }
+ },
+
+ add_class: function (element, name) {
+ if (!this.has_class(element, name))
+ {
+ if (typeof element.className != 'undefined')
+ element.className += " " + name;
+ else
+ {
+ var clsval = element.getAttribute("class");
+ clsval = clsval ? clsval + " " + name : name;
+ element.setAttribute("class", clsval);
+ }
+ }
+ },
+
+ // HTML elements that can be used with class="incremental"
+ // note that you can also put the class on containers like
+ // up, ol, dl, and div to make their contents appear
+ // incrementally. Upper case is used since this is what
+ // browsers report for HTML node names (text/html).
+ incremental_elements: null,
+ okay_for_incremental: function (name) {
+ if (!this.incremental_elements)
+ {
+ var inclist = new Array();
+ inclist["p"] = true;
+ inclist["pre"] = true;
+ inclist["li"] = true;
+ inclist["blockquote"] = true;
+ inclist["dt"] = true;
+ inclist["dd"] = true;
+ inclist["h2"] = true;
+ inclist["h3"] = true;
+ inclist["h4"] = true;
+ inclist["h5"] = true;
+ inclist["h6"] = true;
+ inclist["span"] = true;
+ inclist["address"] = true;
+ inclist["table"] = true;
+ inclist["tr"] = true;
+ inclist["th"] = true;
+ inclist["td"] = true;
+ inclist["img"] = true;
+ inclist["object"] = true;
+ this.incremental_elements = inclist;
+ }
+ return this.incremental_elements[name.toLowerCase()];
+ },
+
+ next_incremental_item: function (node) {
+ var br = this.is_xhtml ? "br" : "BR";
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+
+ for (;;)
+ {
+ node = w3c_slidy.next_node(slide, node);
+
+ if (node == null || node.parentNode == null)
+ break;
+
+ if (node.nodeType == 1) // ELEMENT
+ {
+ if (node.nodeName == br)
+ continue;
+
+ if (w3c_slidy.has_class(node, "incremental")
+ && w3c_slidy.okay_for_incremental(node.nodeName))
+ return node;
+
+ if (w3c_slidy.has_class(node.parentNode, "incremental")
+ && !w3c_slidy.has_class(node, "non-incremental"))
+ return node;
+ }
+ }
+
+ return node;
+ },
+
+ previous_incremental_item: function (node) {
+ var br = this.is_xhtml ? "br" : "BR";
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+
+ for (;;)
+ {
+ node = w3c_slidy.previous_node(slide, node);
+
+ if (node == null || node.parentNode == null)
+ break;
+
+ if (node.nodeType == 1)
+ {
+ if (node.nodeName == br)
+ continue;
+
+ if (w3c_slidy.has_class(node, "incremental")
+ && w3c_slidy.okay_for_incremental(node.nodeName))
+ return node;
+
+ if (w3c_slidy.has_class(node.parentNode, "incremental")
+ && !w3c_slidy.has_class(node, "non-incremental"))
+ return node;
+ }
+ }
+
+ return node;
+ },
+
+ // set visibility for all elements on current slide with
+ // a parent element with attribute class="incremental"
+ set_visibility_all_incremental: function (value) {
+ var node = this.next_incremental_item(null);
+
+ if (value == "hidden")
+ {
+ while (node)
+ {
+ w3c_slidy.add_class(node, "invisible");
+ node = w3c_slidy.next_incremental_item(node);
+ }
+ }
+ else // value == "visible"
+ {
+ while (node)
+ {
+ w3c_slidy.remove_class(node, "invisible");
+ node = w3c_slidy.next_incremental_item(node);
+ }
+ }
+ },
+
+ // reveal the next hidden item on the slide
+ // node is null or the node that was last revealed
+ reveal_next_item: function (node) {
+ node = w3c_slidy.next_incremental_item(node);
+
+ if (node && node.nodeType == 1) // an element
+ w3c_slidy.remove_class(node, "invisible");
+
+ return node;
+ },
+
+ // exact inverse of revealNextItem(node)
+ hide_previous_item: function (node) {
+ if (node && node.nodeType == 1) // an element
+ w3c_slidy.add_class(node, "invisible");
+
+ return this.previous_incremental_item(node);
+ },
+
+ // left to right traversal of root's content
+ next_node: function (root, node) {
+ if (node == null)
+ return root.firstChild;
+
+ if (node.firstChild)
+ return node.firstChild;
+
+ if (node.nextSibling)
+ return node.nextSibling;
+
+ for (;;)
+ {
+ node = node.parentNode;
+
+ if (!node || node == root)
+ break;
+
+ if (node && node.nextSibling)
+ return node.nextSibling;
+ }
+
+ return null;
+ },
+
+ // right to left traversal of root's content
+ previous_node: function (root, node) {
+ if (node == null)
+ {
+ node = root.lastChild;
+
+ if (node)
+ {
+ while (node.lastChild)
+ node = node.lastChild;
+ }
+
+ return node;
+ }
+
+ if (node.previousSibling)
+ {
+ node = node.previousSibling;
+
+ while (node.lastChild)
+ node = node.lastChild;
+
+ return node;
+ }
+
+ if (node.parentNode != root)
+ return node.parentNode;
+
+ return null;
+ },
+
+ previous_sibling_element: function (el) {
+ el = el.previousSibling;
+
+ while (el && el.nodeType != 1)
+ el = el.previousSibling;
+
+ return el;
+ },
+
+ next_sibling_element: function (el) {
+ el = el.nextSibling;
+
+ while (el && el.nodeType != 1)
+ el = el.nextSibling;
+
+ return el;
+ },
+
+ first_child_element: function (el) {
+ var node;
+
+ for (node = el.firstChild; node; node = node.nextSibling)
+ {
+ if (node.nodeType == 1)
+ break;
+ }
+
+ return node;
+ },
+
+ first_tag: function (element, tag) {
+ var node;
+
+ if (!this.is_xhtml)
+ tag = tag.toUpperCase();
+
+ for (node = element.firstChild; node; node = node.nextSibling)
+ {
+ if (node.nodeType == 1 && node.nodeName == tag)
+ break;
+ }
+
+ return node;
+ },
+
+ hide_selection: function () {
+ if (window.getSelection) // Firefox, Chromium, Safari, Opera
+ {
+ var selection = window.getSelection();
+
+ if (selection.rangeCount > 0)
+ {
+ var range = selection.getRangeAt(0);
+ range.collapse (false);
+ }
+ }
+ else // Internet Explorer
+ {
+ var textRange = document.selection.createRange ();
+ textRange.collapse (false);
+ }
+ },
+
+ get_selected_text: function () {
+ try
+ {
+ if (window.getSelection)
+ return window.getSelection().toString();
+
+ if (document.getSelection)
+ return document.getSelection().toString();
+
+ if (document.selection)
+ return document.selection.createRange().text;
+ }
+ catch (e)
+ {
+ }
+
+ return "";
+ },
+
+ // make note of length of selected text
+ // as this evaluates to zero in click event
+ mouse_button_up: function (e) {
+ w3c_slidy.selected_text_len = w3c_slidy.get_selected_text().length;
+ },
+
+ // right mouse button click is reserved for context menus
+ // it is more reliable to detect rightclick than leftclick
+ mouse_button_click: function (e) {
+ var rightclick = false;
+ var leftclick = false;
+ var middleclick = false;
+ var target;
+
+ if (!e)
+ var e = window.event;
+
+ if (e.target)
+ target = e.target;
+ else if (e.srcElement)
+ target = e.srcElement;
+
+ // work around Safari bug
+ if (target.nodeType == 3)
+ target = target.parentNode;
+
+ if (e.which) // all browsers except IE
+ {
+ leftclick = (e.which == 1);
+ middleclick = (e.which == 2);
+ rightclick = (e.which == 3);
+ }
+ else if (e.button)
+ {
+ // Konqueror gives 1 for left, 4 for middle
+ // IE6 gives 0 for left and not 1 as I expected
+
+ if (e.button == 4)
+ middleclick = true;
+
+ // all browsers agree on 2 for right button
+ rightclick = (e.button == 2);
+ }
+ else leftclick = true;
+/*
+ alert("you clicked over a " + target.nodeName + " element\n" +
+ "w3c_slidy.mouse_click_enabled = " + w3c_slidy.mouse_click_enabled + "\n" +
+ "leftclick = " + leftclick + "\n" +
+ "selected text length = " + w3c_slidy.selected_text_len);
+ //alert("selected text length = " + w3c_slidy.selected_text_len);
+*/
+ if (w3c_slidy.selected_text_len > 0)
+ {
+ w3c_slidy.stop_propagation(e);
+ e.cancel = true;
+ e.returnValue = false;
+ return false;
+ }
+
+ // dismiss table of contents
+ w3c_slidy.hide_table_of_contents();
+
+ // check if target is something that probably want's clicks
+ // e.g. a, embed, object, input, textarea, select, option
+ var tag = target.nodeName.toLowerCase();
+
+ if (w3c_slidy.mouse_click_enabled && leftclick &&
+ tag != "a" &&
+ tag != "embed" &&
+ tag != "object" &&
+ tag != "video" &&
+ tag != "input" &&
+ tag != "textarea" &&
+ tag != "select" &&
+ tag != "option" &&
+ !target.onclick)
+ {
+ w3c_slidy.next_slide(true);
+ w3c_slidy.stop_propagation(e);
+ e.cancel = true;
+ e.returnValue = false;
+ return false;
+ }
+ },
+
+ get_key: function (e)
+ {
+ var key;
+
+ // kludge around NS/IE differences
+ if (typeof window.event != "undefined")
+ key = window.event.keyCode;
+ else if (e.which)
+ key = e.which;
+
+ return key;
+ },
+
+ get_target: function (e) {
+ var target;
+
+ if (!e)
+ e = window.event;
+
+ if (e.target)
+ target = e.target;
+ else if (e.srcElement)
+ target = e.srcElement;
+
+ if (target.nodeType != 1)
+ target = target.parentNode;
+
+ return target;
+ },
+
+ // does display property provide correct defaults?
+ is_block: function (elem) {
+ var tag = elem.nodeName.toLowerCase();
+
+ return tag == "ol" || tag == "ul" || tag == "p" ||
+ tag == "li" || tag == "table" || tag == "pre" ||
+ tag == "h1" || tag == "h2" || tag == "h3" ||
+ tag == "h4" || tag == "h5" || tag == "h6" ||
+ tag == "blockquote" || tag == "address";
+ },
+
+ add_listener: function (element, event, handler) {
+ if (window.addEventListener)
+ element.addEventListener(event, handler, false);
+ else
+ element.attachEvent("on"+event, handler);
+ },
+
+ // used to prevent event propagation from field controls
+ stop_propagation: function (event) {
+ event = event ? event : window.event;
+ event.cancelBubble = true; // for IE
+
+ if (event.stopPropagation)
+ event.stopPropagation();
+
+ return true;
+ },
+
+ cancel: function (event) {
+ if (event)
+ {
+ event.cancel = true;
+ event.returnValue = false;
+
+ if (event.preventDefault)
+ event.preventDefault();
+ }
+
+ w3c_slidy.key_wanted = false;
+ return false;
+ }
+};
+
+// for each language define an associative array
+// and also the help text which is longer
+
+var w3c_slidy_i18n = {
+ strings_es: {
+ "slide":"pág.",
+ "help?":"Ayuda",
+ "contents?":"Índice",
+ "table of contents":"tabla de contenidos",
+ "Table of Contents":"Tabla de Contenidos",
+ "restart presentation":"Reiniciar presentación",
+ "restart?":"Inicio"
+ },
+ help_es:
+ "Utilice el ratón, barra espaciadora, teclas Izda/Dcha, " +
+ "o Re pág y Av pág. Use S y B para cambiar el tamaño de fuente.",
+
+ strings_ca: {
+ "slide":"pàg..",
+ "help?":"Ajuda",
+ "contents?":"Índex",
+ "table of contents":"taula de continguts",
+ "Table of Contents":"Taula de Continguts",
+ "restart presentation":"Reiniciar presentació",
+ "restart?":"Inici"
+ },
+ help_ca:
+ "Utilitzi el ratolí, barra espaiadora, tecles Esq./Dta. " +
+ "o Re pàg y Av pàg. Usi S i B per canviar grandària de font.",
+
+ strings_cs: {
+ "slide":"snímek",
+ "help?":"nápověda",
+ "contents?":"obsah",
+ "table of contents":"obsah prezentace",
+ "Table of Contents":"Obsah prezentace",
+ "restart presentation":"znovu spustit prezentaci",
+ "restart?":"restart"
+ },
+ help_cs:
+ "Prezentaci můžete procházet pomocí kliknutí myši, mezerníku, " +
+ "šipek vlevo a vpravo nebo kláves PageUp a PageDown. Písmo se " +
+ "dá zvětšit a zmenšit pomocí kláves B a S.",
+
+ strings_nl: {
+ "slide":"pagina",
+ "help?":"Help?",
+ "contents?":"Inhoud?",
+ "table of contents":"inhoudsopgave",
+ "Table of Contents":"Inhoudsopgave",
+ "restart presentation":"herstart presentatie",
+ "restart?":"Herstart?"
+ },
+ help_nl:
+ "Navigeer d.m.v. het muis, spatiebar, Links/Rechts toetsen, " +
+ "of PgUp en PgDn. Gebruik S en B om de karaktergrootte te veranderen.",
+
+ strings_de: {
+ "slide":"Seite",
+ "help?":"Hilfe",
+ "contents?":"Übersicht",
+ "table of contents":"Inhaltsverzeichnis",
+ "Table of Contents":"Inhaltsverzeichnis",
+ "restart presentation":"Präsentation neu starten",
+ "restart?":"Neustart"
+ },
+ help_de:
+ "Benutzen Sie die Maus, Leerschlag, die Cursortasten links/rechts oder " +
+ "Page up/Page Down zum Wechseln der Seiten und S und B für die Schriftgrösse.",
+
+ strings_pl: {
+ "slide":"slajd",
+ "help?":"pomoc?",
+ "contents?":"spis treści?",
+ "table of contents":"spis treści",
+ "Table of Contents":"Spis Treści",
+ "restart presentation":"Restartuj prezentację",
+ "restart?":"restart?"
+ },
+ help_pl:
+ "Zmieniaj slajdy klikając myszą, naciskając spację, strzałki lewo/prawo" +
+ "lub PgUp / PgDn. Użyj klawiszy S i B, aby zmienić rozmiar czczionki.",
+
+ strings_fr: {
+ "slide":"page",
+ "help?":"Aide",
+ "contents?":"Index",
+ "table of contents":"table des matières",
+ "Table of Contents":"Table des matières",
+ "restart presentation":"Recommencer l'exposé",
+ "restart?":"Début"
+ },
+ help_fr:
+ "Naviguez avec la souris, la barre d'espace, les flèches " +
+ "gauche/droite ou les touches Pg Up, Pg Dn. Utilisez " +
+ "les touches S et B pour modifier la taille de la police.",
+
+ strings_hu: {
+ "slide":"oldal",
+ "help?":"segítség",
+ "contents?":"tartalom",
+ "table of contents":"tartalomjegyzék",
+ "Table of Contents":"Tartalomjegyzék",
+ "restart presentation":"bemutató újraindítása",
+ "restart?":"újraindítás"
+ },
+ help_hu:
+ "Az oldalak közti lépkedéshez kattintson az egérrel, vagy " +
+ "használja a szóköz, a bal, vagy a jobb nyíl, illetve a Page Down, " +
+ "Page Up billentyűket. Az S és a B billentyűkkel változtathatja " +
+ "a szöveg méretét.",
+
+ strings_it: {
+ "slide":"pag.",
+ "help?":"Aiuto",
+ "contents?":"Indice",
+ "table of contents":"indice",
+ "Table of Contents":"Indice",
+ "restart presentation":"Ricominciare la presentazione",
+ "restart?":"Inizio"
+ },
+ help_it:
+ "Navigare con mouse, barra spazio, frecce sinistra/destra o " +
+ "PgUp e PgDn. Usare S e B per cambiare la dimensione dei caratteri.",
+
+ strings_el: {
+ "slide":"σελίδα",
+ "help?":"βοήθεια;",
+ "contents?":"περιεχόμενα;",
+ "table of contents":"πίνακας περιεχομένων",
+ "Table of Contents":"Πίνακας Περιεχομένων",
+ "restart presentation":"επανεκκίνηση παρουσίασης",
+ "restart?":"επανεκκίνηση;"
+ },
+ help_el:
+ "Πλοηγηθείτε με το κλίκ του ποντικιού, το space, τα βέλη αριστερά/δεξιά, " +
+ "ή Page Up και Page Down. Χρησιμοποιήστε τα πλήκτρα S και B για να αλλάξετε " +
+ "το μέγεθος της γραμματοσειράς.",
+
+ strings_ja: {
+ "slide":"スライド",
+ "help?":"ヘルプ",
+ "contents?":"目次",
+ "table of contents":"目次を表示",
+ "Table of Contents":"目次",
+ "restart presentation":"最初から再生",
+ "restart?":"最初から"
+ },
+ help_ja:
+ "マウス左クリック ・ スペース ・ 左右キー " +
+ "または Page Up ・ Page Downで操作, S ・ Bでフォントサイズ変更",
+
+ strings_zh: {
+ "slide":"幻灯片",
+ "help?":"帮助?",
+ "contents?":"内容?",
+ "table of contents":"目录",
+ "Table of Contents":"目录",
+ "restart presentation":"重新启动展示",
+ "restart?":"重新启动?"
+ },
+ help_zh:
+ "用鼠标点击, 空格条, 左右箭头, Pg Up 和 Pg Dn 导航. " +
+ "用 S, B 改变字体大小.",
+
+ strings_ru: {
+ "slide":"слайд",
+ "help?":"помощь?",
+ "contents?":"содержание?",
+ "table of contents":"оглавление",
+ "Table of Contents":"Оглавление",
+ "restart presentation":"перезапустить презентацию",
+ "restart?":"перезапуск?"
+ },
+ help_ru:
+ "Перемещайтесь кликая мышкой, используя клавишу пробел, стрелки" +
+ "влево/вправо или Pg Up и Pg Dn. Клавиши S и B меняют размер шрифта.",
+
+ strings_sv: {
+ "slide":"sida",
+ "help?":"hjälp",
+ "contents?":"innehåll",
+ "table of contents":"innehållsförteckning",
+ "Table of Contents":"Innehållsförteckning",
+ "restart presentation":"visa presentationen från början",
+ "restart?":"börja om"
+ },
+ help_sv:
+ "Bläddra med ett klick med vänstra musknappen, mellanslagstangenten, " +
+ "vänster- och högerpiltangenterna eller tangenterna Pg Up, Pg Dn. " +
+ "Använd tangenterna S och B för att ändra textens storlek.",
+
+// each such language array is declared in the localize array
+// which is set on string prototype and used as in "foo".localize();
+ localize: {
+ "es":this.strings_es,
+ "ca":this.strings_ca,
+ "cs":this.strings_cs,
+ "nl":this.strings_nl,
+ "de":this.strings_de,
+ "pl":this.strings_pl,
+ "fr":this.strings_fr,
+ "hu":this.strings_hu,
+ "it":this.strings_it,
+ "el":this.strings_el,
+ "jp":this.strings_ja,
+ "zh":this.strings_zh,
+ "ru":this.strings_ru,
+ "sv":this.strings_sv
+ },
+
+ init: function () {
+ var i18n = w3c_slidy_i18n;
+ var help_text = w3c_slidy.help_text;
+ i18n.strings_es[help_text] = i18n.help_es;
+ i18n.strings_ca[help_text] = i18n.help_ca;
+ i18n.strings_cs[help_text] = i18n.help_cs;
+ i18n.strings_nl[help_text] = i18n.help_nl;
+ i18n.strings_de[help_text] = i18n.help_de;
+ i18n.strings_pl[help_text] = i18n.help_pl;
+ i18n.strings_fr[help_text] = i18n.help_fr;
+ i18n.strings_hu[help_text] = i18n.help_hu;
+ i18n.strings_it[help_text] = i18n.help_it;
+ i18n.strings_el[help_text] = i18n.help_el;
+ i18n.strings_ja[help_text] = i18n.help_ja;
+ i18n.strings_zh[help_text] = i18n.help_zh;
+ i18n.strings_ru[help_text] = i18n.help_ru;
+ i18n.strings_sv[help_text] = i18n.help_sv;
+
+ w3c_slidy.lang = document.body.parentNode.getAttribute("lang");
+
+ if (!w3c_slidy.lang)
+ w3c_slidy.lang = document.body.parentNode.getAttribute("xml:lang");
+
+ if (!w3c_slidy.lang)
+ w3c_slidy.lang = "en";
+
+ // add localize method to all strings
+ // for use as in "contents".localize()
+ String.prototype.localize = function() {
+ if (this == "")
+ return this;
+
+ // try full language code, e.g. en-US
+ var s, lookup = w3c_slidy_i18n.localize[w3c_slidy.lang];
+
+ if (lookup)
+ {
+ s = lookup[this];
+
+ if (s)
+ return s;
+ }
+
+ // strip country code suffix, e.g.
+ // try en if undefined for en-US
+ var lg = w3c_slidy.lang.split("-");
+
+ if (lg.length > 1)
+ {
+ lookup = w3c_slidy_i18n.localize[lg[0]];
+
+ if (lookup)
+ {
+ s = lookup[this];
+
+ if (s)
+ return s;
+ }
+ }
+
+ // otherwise string as is
+ return this;
+ };
+ }
+};
+
+// hack for back button behavior
+if (w3c_slidy.ie6 || w3c_slidy.ie7)
+{
+ document.write("<iframe id='historyFrame' " +
+ "src='javascript:\"<html"+"></"+"html>\"' " +
+ "height='1' width='1' " +
+ "style='position:absolute;left:-800px'></iframe>");
+}
+
+// attach event listeners for initialization
+w3c_slidy.set_up();
+
+// hide the slides as soon as body element is available
+// to reduce annoying screen mess before the onload event
+setTimeout(w3c_slidy.hide_slides, 50);
+
+/*]]>*/
+</script>
+</head>
+<body class="article" style="max-width:45em">
+<div id="header" class="slide">
+<h1>Osmocom Callular Infrastructure Roadmap</h1>
+<span id="author">Harald Welte</span><br />
+</div>
+<div class="sect1 slide">
+<h1 id="_disclaimer">Disclaimer</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="paragraph"><p>People like Dieter, Holger, Daniel and I have invested lots of our
+spare time in the early years. So funding for that came from other
+paid work, and Osmocom projects were a hobby. It was a lot of fun, but
+it&#8217;s not a sustainable basis for the scope of the projects at this
+time.</p></div>
+<div class="paragraph"><p>Today, our development is driven by</p></div>
+<ul class="">
+<li>
+<span>
+what people contribute patches for, and/or
+</span>
+</li>
+<li>
+<span>
+what companies and consultants in the project get development
+ contracts for (e.g. sysmocom customers)
+</span>
+</li>
+</ul>
+<div class="paragraph"><p>This means in general that <strong>very little will happen, unless somebody
+commits to putting resources at it!</strong></p></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_major_roadmap_areas">Major Roadmap Areas</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+Splitting up the NITB
+</span>
+</li>
+<li>
+<span>
+Code Quality
+</span>
+</li>
+<li>
+<span>
+Testing
+</span>
+</li>
+<li>
+<span>
+Integration between 2G and 3G
+</span>
+</li>
+<li>
+<span>
+External Interfaces
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_osmonitb">OsmoNITB</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+has been at the heart of most Osmocom based cellular networks
+</span>
+</li>
+<li>
+<span>
+is generally doing a good job, but suffers from some issues
+</span>
+</li>
+<li>
+<span>
+NITB includes BSC, but BSC code also used to build OsmoBSC
+</span>
+<ul class="">
+<li>
+<span>
+No way to test OsmoBSC without a proprietary MSC :(
+</span>
+</li>
+</ul>
+</li>
+<li>
+<span>
+NITB includes sqlite3 based HLR
+</span>
+<ul class="">
+<li>
+<span>
+synchronous/blocking access from single-threaded OsmoNITB
+</span>
+</li>
+<li>
+<span>
+sqlite3 (particularly via DBI) scalability issues
+</span>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_rip_nitb_long_live_osmomsc">RIP NITB; Long Live OsmoMSC</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+New <strong>OsmoMSC = OsmoNITB - BSC - HLR</strong>
+</span>
+</li>
+<li>
+<span>
+New OsmoHLR (GSUP interface only)
+</span>
+</li>
+<li>
+<span>
+3GPP A-over-IP for OsmoBSC + OsmoMSC
+</span>
+<ul class="">
+<li>
+<span>
+New SCCP+M3UA stack, libosmo-sigtran
+</span>
+</li>
+</ul>
+</li>
+<li>
+<span>
+M3UA based IuCS/IuPS in HNB-GW, MSC, SGSN
+</span>
+<ul class="">
+<li>
+<span>
+used to be SUA, as it was simpler initially
+</span>
+</li>
+</ul>
+</li>
+<li>
+<span>
+Single code base/branch for 2G and 3G
+</span>
+</li>
+</ul>
+<div class="paragraph"><p>&#8594; typical 2G setup will become <strong>OsmoBSC + OsmoMSC + OsmoHLR</strong></p></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_osmostp">OsmoSTP</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="paragraph"><p>Signal Transfer Point, part of libosmo-sccp</p></div>
+<ul class="">
+<li>
+<span>
+M3UA + SUA support
+</span>
+</li>
+<li>
+<span>
+Connectionless and Conenction Oriented SCCP
+</span>
+</li>
+<li>
+<span>
+Used primarily for RAN-CN interface (A, Iu) so far
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_osmo_fsm_osmo_prim">osmo_fsm + osmo_prim</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="dlist"><dl class="">
+<dt class="hdlist1">
+osmo_fsm
+</dt>
+<dd>
+<p>
+structured approach to state machines
+</p>
+</dd>
+<dt class="hdlist1">
+osmo_prim
+</dt>
+<dd>
+<p>
+structured approach towards primitives at SAP between layers
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_osmo_fsm">osmo_fsm</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="paragraph"><p>Generalized finite state machine (FSM) abstraction</p></div>
+<ul class="">
+<li>
+<span>
+pure C language, no pre-processor / code-generator
+</span>
+</li>
+<li>
+<span>
+description of states, permitted events in a state, permitted
+ output states
+</span>
+</li>
+<li>
+<span>
+buit-in timer support. Default action on expiry: Destroy FSM
+</span>
+</li>
+<li>
+<span>
+parent/children relationship, allows hierarchy of FSMs
+</span>
+</li>
+</ul>
+<div class="paragraph"><p>Much more maintainable and deterministic than the many implicit or
+non-existing state machines in older code</p></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_osmo_fsm_so_far">osmo_fsm so far</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+Ericsson OM2000 managed objects
+</span>
+</li>
+<li>
+<span>
+Connection-Oriented SCCP
+</span>
+</li>
+<li>
+<span>
+M3UA/SUA ASP + AS state machine
+</span>
+</li>
+<li>
+<span>
+All VLR FSMs (LU, Auth, &#8230;) in OsmoMSC
+</span>
+</li>
+<li>
+<span>
+AMR DTX in OsmoBTS
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_osmo_fsm_candidates">osmo_fsm candidates</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+LAPD + LAPDm code
+</span>
+</li>
+<li>
+<span>
+A-bis OML managed objects
+</span>
+</li>
+<li>
+<span>
+GSM Call Control (maybe even CAMEL-like FSMs?)
+</span>
+</li>
+</ul>
+<div class="paragraph"><p>More osmo_fsm Would greatly improve code quality, testability and
+maintainability</p></div>
+<ul class="">
+<li>
+<span>
+but who wants to invest in that? Any volunteers?
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_testing">Testing</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+unit test coverage of most code is poor, needs attention
+</span>
+<ul class="">
+<li>
+<span>
+coverage of new code much better than old code
+</span>
+</li>
+</ul>
+</li>
+<li>
+<span>
+osmo_fsm state introspection via CTRL enables better testing
+</span>
+</li>
+<li>
+<span>
+end-to-end system testing software: <strong>osmo-gsm-tester</strong>
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_osmo_gsm_tester">osmo-gsm-tester</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+python language for managing BTSs + Modems
+</span>
+<ul class="">
+<li>
+<span>
+supports different BTS models
+</span>
+</li>
+<li>
+<span>
+can execute suites of test cases on each software version for all BTS models
+</span>
+</li>
+</ul>
+</li>
+<li>
+<span>
+RF cabling between BTSs and Modems to avoid RF interference
+</span>
+</li>
+</ul>
+<div class="paragraph"><p>&#8594; GOAL: Daily functional testing on all supported platforms/configs</p></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_osmo_gsm_tester_2">osmo-gsm-tester</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+core python infrastructure working
+</span>
+</li>
+<li>
+<span>
+jenkins integration for testing new builds working
+</span>
+</li>
+<li>
+<span>
+modem hardware being replaced due to poor ofono support for SL8082
+</span>
+</li>
+</ul>
+<div class="paragraph"><p>TODO:</p></div>
+<ul class="">
+<li>
+<span>
+modem integration using better supported hardware
+</span>
+</li>
+<li>
+<span>
+more actual test cases beyond SMS + LU
+</span>
+</li>
+<li>
+<span>
+3G support
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_external_interfaces">External Interfaces</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+<strong>VTY</strong> is a human interface, not intended for consumption by software
+</span>
+<ul class="">
+<li>
+<span>
+text output syntax not guaranteed stable
+</span>
+</li>
+<li>
+<span>
+inefficient
+</span>
+</li>
+<li>
+<span>
+commands get added during development to help developers
+</span>
+</li>
+</ul>
+</li>
+<li>
+<span>
+<strong>CTRL</strong> interface is the programmatic interface
+</span>
+<ul class="">
+<li>
+<span>
+but developers don&#8217;t need it during development
+</span>
+</li>
+<li>
+<span>
+all commands so far added due to user request/requirement
+</span>
+<ul class="">
+<li>
+<span>
+let us know what you need exposed!
+</span>
+</li>
+</ul>
+</li>
+<li>
+<span>
+only way to fundamentally change this is to automatically export things without extra effort
+</span>
+</li>
+</ul>
+</li>
+</ul>
+<div class="paragraph"><p>&#8658; Roadmap is to put more effort into CTRL completeness</p></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_grand_unified_config_theory">Grand Unified Config Theory</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="paragraph"><p>Big Wishlist item:</p></div>
+<ul class="">
+<li>
+<span>
+Unified configuration store / MIB with
+</span>
+<ul class="">
+<li>
+<span>
+automatic VTY printer/parser generation
+</span>
+</li>
+<li>
+<span>
+automatic CTRL interface exposure
+</span>
+</li>
+<li>
+<span>
+telnet/VTY process + MIB daemon outside actual applications
+</span>
+</li>
+</ul>
+</li>
+</ul>
+<div class="paragraph"><p>But who will fund this / put resources at it?</p></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_integration_between_2g_and_3g">Integration between 2G and 3G</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+so far, 2G and 3G live separate to each other
+</span>
+</li>
+<li>
+<span>
+we want integration
+</span>
+<ul class="">
+<li>
+<span>
+cross-advertisement of neighbor cells
+</span>
+</li>
+<li>
+<span>
+inter-RAT mobility
+</span>
+</li>
+<li>
+<span>
+inter-RAT hand-over
+</span>
+</li>
+</ul>
+</li>
+<li>
+<span>
+combined PS + CS attach
+</span>
+</li>
+<li>
+<span>
+SMS over packet switched
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_operation_maintenance">Operation / Maintenance</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+generation of Alarms in BTS + PCU (done)
+</span>
+</li>
+<li>
+<span>
+report via CTRL TRAP as well as A-bis OML (done)
+</span>
+</li>
+<li>
+<span>
+centralized reporting / collections of Alarms (tbd)
+</span>
+</li>
+</ul>
+<div class="paragraph"><p>&#8594; we need to generate more alarms in abnormal situations</p></div>
+<ul class="">
+<li>
+<span>
+generation of more stat, counters / KPIs
+</span>
+<ul class="">
+<li>
+<span>
+lots of work spent in 2016 on this alrady
+</span>
+</li>
+</ul>
+</li>
+</ul>
+<div class="paragraph"><p>&#8594; we need aggregation/interpretation/analysis of that data</p></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_further_wishlist">Further Wishlist</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+move SMSC out of OsmoMSC
+</span>
+</li>
+<li>
+<span>
+GSUP to MAP gateway
+</span>
+</li>
+<li>
+<span>
+billing interfaces
+</span>
+</li>
+<li>
+<span>
+LTE MME/S-GW-/P-GW
+</span>
+<ul class="">
+<li>
+<span>
+biggest issue is lack of good FOSS asn.1 tools for C
+</span>
+</li>
+<li>
+<span>
+we either have to ditch C, or invest lots of time in tools :/
+</span>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_eof">EOF</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="paragraph"><p>End of File</p></div>
+</div>
+</div>
+</body>
+</html>
diff --git a/2017/running_osmo_gsm-osmocon2017/Gsm_structures.svg b/2017/running_osmo_gsm-osmocon2017/Gsm_structures.svg
new file mode 100644
index 0000000..cd68155
--- /dev/null
+++ b/2017/running_osmo_gsm-osmocon2017/Gsm_structures.svg
@@ -0,0 +1,15874 @@
+<?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="868.44971"
+ height="528.51886"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.3.1 r9886"
+ sodipodi:docname="GSM_structures.svg"
+ style="display:inline"
+ inkscape:export-filename="/media/data/gsm/pictures/raster/UMTS_structure.png"
+ inkscape:export-xdpi="150.02303"
+ inkscape:export-ydpi="150.02303">
+ <title
+ id="title2938">GSM structure</title>
+ <defs
+ id="defs4">
+ <marker
+ inkscape:stockid="Arrow2Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Lstart"
+ style="overflow:visible">
+ <path
+ id="path6083"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(1.1,0,0,1.1,1.1,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="19.9375"
+ x2="26.5"
+ y1="7.6875"
+ x1="21.8125"
+ id="linearGradient7094"
+ xlink:href="#linearGradient7088"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="41"
+ x2="64.5"
+ y1="42.625"
+ x1="64.5625"
+ gradientTransform="matrix(1,0,0,-1,-38,50.0585)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient6122"
+ xlink:href="#linearGradient8012"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="41"
+ x2="64.5"
+ y1="42.625"
+ x1="64.5625"
+ gradientTransform="matrix(1,0,0,-1,-40,50.0585)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient6118"
+ xlink:href="#linearGradient8000"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="41"
+ x2="64.5"
+ y1="42.625"
+ x1="64.5625"
+ gradientTransform="matrix(1,0,0,-1,-40,50.0585)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient6116"
+ xlink:href="#linearGradient8012"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="52.811184"
+ x2="28.087311"
+ y1="25.375"
+ x1="24.375"
+ id="linearGradient7532"
+ xlink:href="#linearGradient7526"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="22.53125"
+ x2="23.749973"
+ y1="32.21875"
+ x1="27.53125"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient7511"
+ xlink:href="#linearGradient8357"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="32.313343"
+ x2="44.0625"
+ y1="30.5"
+ x1="43.5"
+ gradientTransform="translate(-20,0)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient7491"
+ xlink:href="#linearGradient7215"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="35.4375"
+ x2="44"
+ y1="33.46875"
+ x1="43.53125"
+ gradientTransform="translate(-20,0)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient7488"
+ xlink:href="#linearGradient7223"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="38.4375"
+ x2="43.988625"
+ y1="36.505032"
+ x1="43.480392"
+ gradientTransform="translate(-20,0)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient7485"
+ xlink:href="#linearGradient7231"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="26.4375"
+ x2="38.947304"
+ y1="24.541054"
+ x1="38.491497"
+ gradientTransform="translate(-20,0)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient7482"
+ xlink:href="#linearGradient7199"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="26.4375"
+ x2="44"
+ y1="24.486135"
+ x1="43.493069"
+ gradientTransform="translate(-20,0)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient7479"
+ xlink:href="#linearGradient7199"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="26.4375"
+ x2="48.976982"
+ y1="24.508232"
+ x1="48.478554"
+ gradientTransform="translate(-20,0)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient7476"
+ xlink:href="#linearGradient7199"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="26.4375"
+ x2="38.947304"
+ y1="24.541054"
+ x1="38.491497"
+ gradientTransform="translate(-20,3)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient7473"
+ xlink:href="#linearGradient7199"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="26.4375"
+ x2="44"
+ y1="24.486135"
+ x1="43.493069"
+ gradientTransform="translate(-20,3)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient7470"
+ xlink:href="#linearGradient7199"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="26.4375"
+ x2="48.976982"
+ y1="24.508232"
+ x1="48.478554"
+ gradientTransform="translate(-20,3)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient7467"
+ xlink:href="#linearGradient7199"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="32.500843"
+ x2="39"
+ y1="30.5"
+ x1="38.5"
+ gradientTransform="translate(-20,0)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient7464"
+ xlink:href="#linearGradient7215"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="32.4375"
+ x2="49"
+ y1="30.46875"
+ x1="48.5"
+ gradientTransform="translate(-20,0)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient7461"
+ xlink:href="#linearGradient7215"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="35.4375"
+ x2="49"
+ y1="33.46875"
+ x1="48.53125"
+ gradientTransform="translate(-20,0)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient7458"
+ xlink:href="#linearGradient7223"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="35.497356"
+ x2="39.0625"
+ y1="33.5625"
+ x1="38.5"
+ gradientTransform="translate(-20,0)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient7455"
+ xlink:href="#linearGradient7223"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="38.440475"
+ x2="40.01115"
+ y1="36.460838"
+ x1="39.502918"
+ gradientTransform="translate(-20,0)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient7452"
+ xlink:href="#linearGradient7231"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="38.4375"
+ x2="48.982567"
+ y1="36.460838"
+ x1="48.496433"
+ gradientTransform="translate(-20,0)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient7449"
+ xlink:href="#linearGradient7231"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="44.788391"
+ x2="29.249495"
+ y1="21.108738"
+ x1="26.499495"
+ id="linearGradient7287"
+ xlink:href="#linearGradient7281"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(0,-1)"
+ gradientUnits="userSpaceOnUse"
+ y2="28.203257"
+ x2="23.334524"
+ y1="12.556273"
+ x1="23.334524"
+ id="linearGradient8242"
+ xlink:href="#linearGradient8236"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(-40,0)"
+ gradientUnits="userSpaceOnUse"
+ y2="5.5714717"
+ x2="71.739273"
+ y1="2.2823277"
+ x1="71.739273"
+ id="linearGradient8222"
+ xlink:href="#linearGradient8216"
+ inkscape:collect="always" />
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.32813,0,0,7.00602,-61.1646,-173.012)"
+ r="10.5"
+ fy="29.797501"
+ fx="64.5"
+ cy="29.797501"
+ cx="64.5"
+ id="radialGradient8054"
+ xlink:href="#linearGradient8046"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(1,0,0,-1,-39,83.0585)"
+ gradientUnits="userSpaceOnUse"
+ y2="41"
+ x2="64.5"
+ y1="42.625"
+ x1="64.5625"
+ id="linearGradient8010"
+ xlink:href="#linearGradient8012"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(1,0,0,-1,-39,83.0585)"
+ gradientUnits="userSpaceOnUse"
+ y2="41"
+ x2="64.5"
+ y1="42.625"
+ x1="64.5625"
+ id="linearGradient8006"
+ xlink:href="#linearGradient8000"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(-89,-1)"
+ gradientUnits="userSpaceOnUse"
+ y2="23.438053"
+ x2="64.375"
+ y1="9.3125"
+ x1="64.375"
+ id="linearGradient7998"
+ xlink:href="#linearGradient7992"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(-40,-1)"
+ gradientUnits="userSpaceOnUse"
+ y2="10.6875"
+ x2="65.4375"
+ y1="19.690521"
+ x1="65.4375"
+ id="linearGradient7978"
+ xlink:href="#linearGradient7972"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(-40,0)"
+ gradientUnits="userSpaceOnUse"
+ y2="92.265244"
+ x2="87.042259"
+ y1="8.375"
+ x1="59.510406"
+ id="linearGradient7923"
+ xlink:href="#linearGradient7917"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient7917"
+ inkscape:collect="always">
+ <stop
+ id="stop7919"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 1;" />
+ <stop
+ id="stop7921"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7972">
+ <stop
+ id="stop7974"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 1;" />
+ <stop
+ id="stop7976"
+ offset="1"
+ style="stop-color: rgb(238, 238, 236); stop-opacity: 1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7992">
+ <stop
+ id="stop7994"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 1;" />
+ <stop
+ id="stop7996"
+ offset="1"
+ style="stop-color: rgb(211, 215, 207); stop-opacity: 0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8000"
+ inkscape:collect="always">
+ <stop
+ id="stop8002"
+ offset="0"
+ style="stop-color: rgb(46, 52, 54); stop-opacity: 1;" />
+ <stop
+ id="stop8004"
+ offset="1"
+ style="stop-color: rgb(136, 138, 133); stop-opacity: 1;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8012">
+ <stop
+ style="stop-color: rgb(46, 52, 54); stop-opacity: 1;"
+ offset="0"
+ id="stop8014" />
+ <stop
+ style="stop-color: rgb(136, 138, 133); stop-opacity: 1;"
+ offset="1"
+ id="stop8016" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8046">
+ <stop
+ id="stop8048"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 1;" />
+ <stop
+ id="stop8050"
+ offset="1"
+ style="stop-color: rgb(136, 138, 133); stop-opacity: 1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8216">
+ <stop
+ id="stop8218"
+ offset="0"
+ style="stop-color: rgb(136, 138, 133); stop-opacity: 1;" />
+ <stop
+ id="stop8220"
+ offset="1"
+ style="stop-color: rgb(186, 189, 182); stop-opacity: 1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8236"
+ inkscape:collect="always">
+ <stop
+ id="stop8238"
+ offset="0"
+ style="stop-color: rgb(0, 0, 0); stop-opacity: 1;" />
+ <stop
+ id="stop8240"
+ offset="1"
+ style="stop-color: rgb(0, 0, 0); stop-opacity: 0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8357">
+ <stop
+ id="stop8359"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 1;" />
+ <stop
+ id="stop8361"
+ offset="1"
+ style="stop-color: rgb(136, 138, 133); stop-opacity: 1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7199"
+ inkscape:collect="always">
+ <stop
+ id="stop7201"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 1;" />
+ <stop
+ id="stop7203"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7215"
+ inkscape:collect="always">
+ <stop
+ id="stop7217"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 1;" />
+ <stop
+ id="stop7219"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7223"
+ inkscape:collect="always">
+ <stop
+ id="stop7225"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 1;" />
+ <stop
+ id="stop7227"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7231"
+ inkscape:collect="always">
+ <stop
+ id="stop7233"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 1;" />
+ <stop
+ id="stop7235"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7281">
+ <stop
+ id="stop7283"
+ offset="0"
+ style="stop-color: rgb(46, 52, 54); stop-opacity: 1;" />
+ <stop
+ id="stop7285"
+ offset="1"
+ style="stop-color: rgb(136, 138, 133); stop-opacity: 1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7526"
+ inkscape:collect="always">
+ <stop
+ id="stop7528"
+ offset="0"
+ style="stop-color: rgb(136, 138, 133); stop-opacity: 1;" />
+ <stop
+ id="stop7530"
+ offset="1"
+ style="stop-color: rgb(211, 215, 207); stop-opacity: 0.498039;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7088"
+ inkscape:collect="always">
+ <stop
+ id="stop7090"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 1;" />
+ <stop
+ id="stop7092"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3042">
+ <stop
+ style="stop-color: black; stop-opacity: 0;"
+ offset="0"
+ id="stop3044" />
+ <stop
+ id="stop3050-0"
+ offset="0.5"
+ style="stop-color: black; stop-opacity: 1;" />
+ <stop
+ style="stop-color: black; stop-opacity: 0;"
+ offset="1"
+ id="stop3046" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3028">
+ <stop
+ style="stop-color: black; stop-opacity: 1;"
+ offset="0"
+ id="stop3030" />
+ <stop
+ style="stop-color: black; stop-opacity: 0;"
+ offset="1"
+ id="stop3032" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient1558">
+ <stop
+ style="stop-color: rgb(186, 189, 182);"
+ offset="0"
+ id="stop1560" />
+ <stop
+ style="stop-color: rgb(238, 238, 236);"
+ offset="1"
+ id="stop1562" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient11400">
+ <stop
+ id="stop11402"
+ offset="0"
+ style="stop-color: rgb(0, 0, 0); stop-opacity: 1;" />
+ <stop
+ id="stop11404"
+ offset="1"
+ style="stop-color: rgb(0, 0, 0); stop-opacity: 0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6240"
+ inkscape:collect="always">
+ <stop
+ id="stop6242"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 1;" />
+ <stop
+ id="stop6244"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5137">
+ <stop
+ id="stop5139"
+ offset="0"
+ style="stop-color: rgb(238, 238, 236); stop-opacity: 1;" />
+ <stop
+ id="stop5141"
+ offset="1"
+ style="stop-color: rgb(230, 230, 227); stop-opacity: 1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5225"
+ inkscape:collect="always">
+ <stop
+ id="stop5227"
+ offset="0"
+ style="stop-color: black; stop-opacity: 1;" />
+ <stop
+ id="stop5229"
+ offset="1"
+ style="stop-color: black; stop-opacity: 0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5233">
+ <stop
+ id="stop5235"
+ offset="0"
+ style="stop-color: rgb(114, 159, 207); stop-opacity: 1;" />
+ <stop
+ id="stop5237"
+ offset="1"
+ style="stop-color: rgb(50, 97, 148); stop-opacity: 1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3899"
+ inkscape:collect="always">
+ <stop
+ id="stop3901"
+ offset="0"
+ style="stop-color: rgb(238, 238, 236);" />
+ <stop
+ id="stop3903"
+ offset="1"
+ style="stop-color: rgb(211, 215, 207);" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3907">
+ <stop
+ id="stop3909"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 1;" />
+ <stop
+ id="stop3911"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4196">
+ <stop
+ id="stop4198"
+ offset="0"
+ style="stop-color: black; stop-opacity: 1;" />
+ <stop
+ id="stop4200"
+ offset="1"
+ style="stop-color: black; stop-opacity: 0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5225"
+ id="radialGradient5236"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.24763,0,32.1168)"
+ cx="23.9375"
+ cy="42.6875"
+ fx="23.9375"
+ fy="42.6875"
+ r="23.75956" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4196"
+ id="linearGradient5238"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(24,0)"
+ x1="37.484837"
+ y1="38.267769"
+ x2="37.295498"
+ y2="33.637787" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5137"
+ id="linearGradient5240"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.992781,0,-2.71803)"
+ x1="31.743324"
+ y1="37.842293"
+ x2="31.86105"
+ y2="43.82579" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11400"
+ id="linearGradient5242"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.00419,0,0,1,-0.12454,-3.01177)"
+ x1="23.154902"
+ y1="34.572548"
+ x2="23.529411"
+ y2="40.219608" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5137"
+ id="linearGradient5244"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.999303,0,0,0.998527,0.00306125,-2.97132)"
+ x1="17.247635"
+ y1="6.3760414"
+ x2="39.904388"
+ y2="38.876041" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5233"
+ id="radialGradient5246"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.23263,0,0,0.778392,-5.59058,-0.847446)"
+ cx="24.006104"
+ cy="32.997028"
+ fx="24.006104"
+ fy="32.997028"
+ r="19.00016" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6240"
+ id="linearGradient5248"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.0235294,-3.03922)"
+ x1="20.156862"
+ y1="5.0996137"
+ x2="20.156862"
+ y2="26.039215" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3028"
+ id="radialGradient5250"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,-0.750002,1.33333,0,-40.2857,35)"
+ cx="2.9999995"
+ cy="33.214287"
+ fx="2.9999995"
+ fy="33.214287"
+ r="3" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3028"
+ id="radialGradient5252"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,-0.750002,1.33333,0,-88.2857,-30.5)"
+ cx="2.9999995"
+ cy="33.214287"
+ fx="2.9999995"
+ fy="33.214287"
+ r="3" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3042"
+ id="linearGradient5254"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.888889,0,3.83333)"
+ x1="37.03125"
+ y1="35.062885"
+ x2="37.03125"
+ y2="29.995127" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3899"
+ id="linearGradient5256"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.753044,-48,12.2525)"
+ x1="26.5"
+ y1="43.249905"
+ x2="26.5"
+ y2="35.75" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1558"
+ id="linearGradient5258"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.833169,-48,19.0825)"
+ x1="16.396038"
+ y1="19.659277"
+ x2="16.396038"
+ y2="32.448051" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5260"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5262"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5264"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5266"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5268"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5270"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5272"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5274"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5276"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5278"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5280"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5282"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5284"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5286"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5288"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5290"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5292"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5294"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5296"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5298"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5300"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5302"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5304"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5306"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5308"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5310"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5312"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5314"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5316"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5318"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5320"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5322"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5324"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5326"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5328"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5330"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5332"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5334"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5336"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5338"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5340"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5342"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5344"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5346"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5348"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5350"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5352"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5354"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5356"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5358"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5360"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5362"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5364"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5366"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5372"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5374"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5376"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3907"
+ id="radialGradient5380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3826,3.5814e-5,0,0.171503,-6.72968,34.0972)"
+ cx="20.913568"
+ cy="47.045319"
+ fx="20.913568"
+ fy="47.045319"
+ r="19.5" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="10.934953"
+ x2="39.421204"
+ y1="28.5"
+ x1="39.06765"
+ id="linearGradient6985"
+ xlink:href="#linearGradient6979"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="21.041553"
+ x2="21.036427"
+ y1="44.528019"
+ x1="24.837126"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient7121"
+ xlink:href="#linearGradient7101"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient7101">
+ <stop
+ style="stop-color: rgb(186, 189, 182); stop-opacity: 1;"
+ offset="0"
+ id="stop7103" />
+ <stop
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 1;"
+ offset="1"
+ id="stop7105" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6979">
+ <stop
+ id="stop6981"
+ offset="0"
+ style="stop-color: rgb(136, 138, 133); stop-opacity: 1;" />
+ <stop
+ id="stop6983"
+ offset="1"
+ style="stop-color: rgb(85, 87, 83); stop-opacity: 1;" />
+ </linearGradient>
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="40.441154"
+ x2="21.8125"
+ y1="13.249833"
+ x1="21.8125"
+ id="linearGradient2960"
+ xlink:href="#linearGradient2954"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="29.010038"
+ x2="17.5625"
+ y1="20.996099"
+ x1="17.5625"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4074"
+ xlink:href="#linearGradient4055"
+ inkscape:collect="always" />
+ <radialGradient
+ r="2"
+ fy="26"
+ fx="13.006094"
+ cy="26"
+ cx="13.006094"
+ gradientTransform="matrix(-9.45807e-7,-2.00001,2.00305,-1.68422e-6,-86.5731,1.01229)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4072"
+ xlink:href="#linearGradient4033"
+ inkscape:collect="always" />
+ <radialGradient
+ r="2"
+ fy="26"
+ fx="13.006094"
+ cy="26"
+ cx="13.006094"
+ gradientTransform="matrix(-9.45807e-7,-2.00001,2.00305,-1.68422e-6,-38.5731,51.0123)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4070"
+ xlink:href="#linearGradient4033"
+ inkscape:collect="always" />
+ <radialGradient
+ r="1.5"
+ fy="11.602475"
+ fx="21.530191"
+ cy="11.602475"
+ cx="21.530191"
+ gradientTransform="matrix(-2.96731,-1.03151e-7,0,-1.13646,83.2333,33.6702)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3017"
+ xlink:href="#linearGradient6256"
+ inkscape:collect="always" />
+ <radialGradient
+ r="1.5"
+ fy="11.602475"
+ fx="21.530191"
+ cy="11.602475"
+ cx="21.530191"
+ gradientTransform="matrix(-2.96731,-1.03151e-7,0,-1.13646,88.3242,33.6702)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3013"
+ xlink:href="#linearGradient6256"
+ inkscape:collect="always" />
+ <radialGradient
+ r="1.5"
+ fy="11.602475"
+ fx="21.530191"
+ cy="11.602475"
+ cx="21.530191"
+ gradientTransform="matrix(-2.96731,-1.03151e-7,0,-1.13646,93.4151,33.6702)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3009"
+ xlink:href="#linearGradient6256"
+ inkscape:collect="always" />
+ <radialGradient
+ r="1.5"
+ fy="11.602475"
+ fx="21.530191"
+ cy="11.602475"
+ cx="21.530191"
+ gradientTransform="matrix(-2.75536,-1.03151e-7,0,-1.13646,79.0024,30.6702)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3002"
+ xlink:href="#linearGradient6256"
+ inkscape:collect="always" />
+ <radialGradient
+ r="1.5"
+ fy="11.602475"
+ fx="21.530191"
+ cy="11.602475"
+ cx="21.530191"
+ gradientTransform="matrix(-2.75536,-1.03151e-7,0,-1.13646,83.7296,30.6702)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2998"
+ xlink:href="#linearGradient6256"
+ inkscape:collect="always" />
+ <radialGradient
+ r="1.5"
+ fy="11.602475"
+ fx="21.530191"
+ cy="11.602475"
+ cx="21.530191"
+ gradientTransform="matrix(-2.75536,-1.03151e-7,0,-1.13646,88.4569,30.6702)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2994"
+ xlink:href="#linearGradient6256"
+ inkscape:collect="always" />
+ <radialGradient
+ r="1.5"
+ fy="11.602475"
+ fx="21.530191"
+ cy="11.602475"
+ cx="21.530191"
+ gradientTransform="matrix(-2.54341,-1.03151e-7,0,-1.13646,74.7714,27.6702)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2987"
+ xlink:href="#linearGradient6256"
+ inkscape:collect="always" />
+ <radialGradient
+ r="1.5"
+ fy="11.602475"
+ fx="21.530191"
+ cy="11.602475"
+ cx="21.530191"
+ gradientTransform="matrix(-2.54341,-1.03151e-7,0,-1.13646,79.135,27.6702)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2983"
+ xlink:href="#linearGradient6256"
+ inkscape:collect="always" />
+ <radialGradient
+ r="1.5"
+ fy="11.602475"
+ fx="21.530191"
+ cy="11.602475"
+ cx="21.530191"
+ gradientTransform="matrix(-2.54341,-1.03151e-7,0,-1.13646,83.4987,27.6702)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2979"
+ xlink:href="#linearGradient6256"
+ inkscape:collect="always" />
+ <radialGradient
+ r="1.5"
+ fy="11.602475"
+ fx="21.530191"
+ cy="11.602475"
+ cx="21.530191"
+ gradientTransform="matrix(-2.33146,-1.03151e-7,0,-1.13646,78.5405,24.6702)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2972"
+ xlink:href="#linearGradient6256"
+ inkscape:collect="always" />
+ <radialGradient
+ r="1.5"
+ fy="11.602475"
+ fx="21.530191"
+ cy="11.602475"
+ cx="21.530191"
+ gradientTransform="matrix(-2.33146,-1.03151e-7,0,-1.13646,74.5405,24.6702)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2968"
+ xlink:href="#linearGradient6256"
+ inkscape:collect="always" />
+ <radialGradient
+ r="1.5"
+ fy="11.602475"
+ fx="21.530191"
+ cy="11.602475"
+ cx="21.530191"
+ gradientTransform="matrix(-2.33146,-1.03151e-7,0,-1.13646,70.5405,24.6702)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient6264"
+ xlink:href="#linearGradient6256"
+ inkscape:collect="always" />
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.72079,-0.0389865,0.00176461,0.123227,-33.0387,12.786)"
+ r="16.031172"
+ fy="3.5110793"
+ fx="16.030262"
+ cy="3.5110793"
+ cx="16.030262"
+ id="radialGradient4068"
+ xlink:href="#linearGradient4062"
+ inkscape:collect="always" />
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.04444,-0.123888,0.0146767,0.242354,-19.8863,13.6194)"
+ r="16.994591"
+ fy="6.5931005"
+ fx="17.04607"
+ cy="6.5931005"
+ cx="17.04607"
+ id="radialGradient4024"
+ xlink:href="#linearGradient4038"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="18.257809"
+ x2="23.994669"
+ y1="13.842071"
+ x1="23.994669"
+ id="linearGradient3404"
+ xlink:href="#linearGradient4044"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(1.00031,0,0,1,-0.00361429,0.972209)"
+ y2="20.639368"
+ x2="28.260429"
+ y1="8.7648172"
+ x1="28.260429"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1616"
+ xlink:href="#linearGradient4044"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="29.477005"
+ x2="24.414724"
+ y1="25.463402"
+ x1="24.414724"
+ gradientTransform="matrix(1.00031,0,0,1,0.00705191,-4.00001)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1614"
+ xlink:href="#linearGradient4038"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="17.53454"
+ x2="25.189993"
+ y1="24.504593"
+ x1="24.160858"
+ gradientTransform="matrix(-1.00031,0,0,1,48.0127,-4.00001)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1601"
+ xlink:href="#linearGradient2513"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="8.361702"
+ x2="24.010672"
+ y1="24.81731"
+ x1="24.834204"
+ gradientTransform="matrix(0.921903,0,0,0.877945,1.86967,-1.02471)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1598"
+ xlink:href="#linearGradient4070"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2513">
+ <stop
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 1;"
+ offset="0"
+ id="stop2515" />
+ <stop
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0.217899;"
+ offset="1"
+ id="stop2517" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4038">
+ <stop
+ style="stop-color: rgb(114, 159, 207); stop-opacity: 1;"
+ offset="0"
+ id="stop4040" />
+ <stop
+ style="stop-color: rgb(52, 101, 164); stop-opacity: 1;"
+ offset="1"
+ id="stop4042" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4044">
+ <stop
+ id="stop4046"
+ offset="0"
+ style="stop-color: rgb(52, 101, 164); stop-opacity: 1;" />
+ <stop
+ id="stop4048"
+ offset="1"
+ style="stop-color: rgb(32, 74, 135); stop-opacity: 1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4062">
+ <stop
+ id="stop4064"
+ offset="0"
+ style="stop-color: white; stop-opacity: 1;" />
+ <stop
+ id="stop4066"
+ offset="1"
+ style="stop-color: white; stop-opacity: 0.297619;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4070">
+ <stop
+ style="stop-color: white; stop-opacity: 0.428571;"
+ offset="0"
+ id="stop4072" />
+ <stop
+ style="stop-color: white; stop-opacity: 1;"
+ offset="1"
+ id="stop4074" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6256">
+ <stop
+ style="stop-color: white; stop-opacity: 1;"
+ offset="0"
+ id="stop6258" />
+ <stop
+ style="stop-color: rgb(204, 206, 201); stop-opacity: 1;"
+ offset="1"
+ id="stop6260" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4033"
+ inkscape:collect="always">
+ <stop
+ id="stop4035"
+ offset="0"
+ style="stop-color: black; stop-opacity: 1;" />
+ <stop
+ id="stop4037"
+ offset="1"
+ style="stop-color: black; stop-opacity: 0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4055">
+ <stop
+ id="stop4057"
+ offset="0"
+ style="stop-color: black; stop-opacity: 0;" />
+ <stop
+ style="stop-color: black; stop-opacity: 1;"
+ offset="0.5"
+ id="stop4063" />
+ <stop
+ id="stop4059"
+ offset="1"
+ style="stop-color: black; stop-opacity: 0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4961">
+ <stop
+ id="stop4963"
+ offset="0"
+ style="stop-color: rgb(85, 87, 83); stop-opacity: 1;" />
+ <stop
+ id="stop4965"
+ offset="1"
+ style="stop-color: rgb(186, 189, 182); stop-opacity: 1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2954"
+ inkscape:collect="always">
+ <stop
+ id="stop2956"
+ offset="0"
+ style="stop-color: rgb(52, 101, 164); stop-opacity: 1;" />
+ <stop
+ id="stop2958"
+ offset="1"
+ style="stop-color: rgb(52, 101, 164); stop-opacity: 0;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961"
+ id="linearGradient6299"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961"
+ id="linearGradient6301"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961"
+ id="linearGradient6303"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961"
+ id="linearGradient6305"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961"
+ id="linearGradient6307"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961"
+ id="linearGradient6309"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961"
+ id="linearGradient6311"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961"
+ id="linearGradient6313"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961"
+ id="linearGradient6315"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961"
+ id="linearGradient6317"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961"
+ id="linearGradient6319"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961"
+ id="linearGradient6321"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ id="linearGradient5048">
+ <stop
+ id="stop5050"
+ offset="0"
+ style="stop-color: black; stop-opacity: 0;" />
+ <stop
+ style="stop-color: black; stop-opacity: 1;"
+ offset="0.5"
+ id="stop5056" />
+ <stop
+ id="stop5052"
+ offset="1"
+ style="stop-color: black; stop-opacity: 0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5060"
+ inkscape:collect="always">
+ <stop
+ id="stop5062"
+ offset="0"
+ style="stop-color: black; stop-opacity: 1;" />
+ <stop
+ id="stop5064"
+ offset="1"
+ style="stop-color: black; stop-opacity: 0;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6499">
+ <stop
+ style="stop-color: rgb(114, 159, 207); stop-opacity: 1;"
+ offset="0"
+ id="stop6501" />
+ <stop
+ style="stop-color: rgb(52, 101, 164); stop-opacity: 1;"
+ offset="1"
+ id="stop6503" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6642"
+ inkscape:collect="always">
+ <stop
+ id="stop6644"
+ offset="0"
+ style="stop-color: rgb(211, 215, 207); stop-opacity: 1;" />
+ <stop
+ id="stop6646"
+ offset="1"
+ style="stop-color: rgb(136, 138, 133); stop-opacity: 1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6794"
+ inkscape:collect="always">
+ <stop
+ id="stop6796"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 1;" />
+ <stop
+ id="stop6798"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6820"
+ inkscape:collect="always">
+ <stop
+ id="stop6822"
+ offset="0"
+ style="stop-color: rgb(114, 159, 207); stop-opacity: 1;" />
+ <stop
+ id="stop6824"
+ offset="1"
+ style="stop-color: rgb(114, 159, 207); stop-opacity: 0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6843"
+ inkscape:collect="always">
+ <stop
+ id="stop6845"
+ offset="0"
+ style="stop-color: rgb(254, 192, 101); stop-opacity: 1;" />
+ <stop
+ id="stop6847"
+ offset="1"
+ style="stop-color: rgb(252, 175, 62); stop-opacity: 1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6851"
+ inkscape:collect="always">
+ <stop
+ id="stop6853"
+ offset="0"
+ style="stop-color: rgb(253, 238, 119); stop-opacity: 1;" />
+ <stop
+ id="stop6855"
+ offset="1"
+ style="stop-color: rgb(252, 233, 79); stop-opacity: 1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6859"
+ inkscape:collect="always">
+ <stop
+ id="stop6861"
+ offset="0"
+ style="stop-color: rgb(158, 231, 87); stop-opacity: 1;" />
+ <stop
+ id="stop6863"
+ offset="1"
+ style="stop-color: rgb(138, 226, 52); stop-opacity: 1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6881"
+ inkscape:collect="always">
+ <stop
+ id="stop6883"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 1;" />
+ <stop
+ id="stop6885"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8918">
+ <stop
+ id="stop8920"
+ offset="0"
+ style="stop-color: rgb(206, 225, 75);" />
+ <stop
+ id="stop8922"
+ offset="1"
+ style="stop-color: rgb(157, 176, 41);" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8912">
+ <stop
+ style="stop-color: rgb(206, 225, 75);"
+ offset="0"
+ id="stop8914" />
+ <stop
+ style="stop-color: rgb(157, 176, 41);"
+ offset="1"
+ id="stop8916" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8930">
+ <stop
+ id="stop8932"
+ offset="0"
+ style="stop-color: rgb(206, 225, 75);" />
+ <stop
+ id="stop8934"
+ offset="1"
+ style="stop-color: rgb(157, 176, 41);" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8924">
+ <stop
+ id="stop8926"
+ offset="0"
+ style="stop-color: rgb(206, 225, 75);" />
+ <stop
+ id="stop8928"
+ offset="1"
+ style="stop-color: rgb(157, 176, 41);" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8740">
+ <stop
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 1;"
+ offset="0"
+ id="stop8742" />
+ <stop
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;"
+ offset="1"
+ id="stop8744" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8647">
+ <stop
+ style="stop-color: rgb(143, 177, 220); stop-opacity: 1;"
+ offset="0"
+ id="stop8649" />
+ <stop
+ style="stop-color: rgb(52, 101, 164); stop-opacity: 1;"
+ offset="1"
+ id="stop8651" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8838">
+ <stop
+ style="stop-color: rgb(0, 0, 0); stop-opacity: 1;"
+ offset="0"
+ id="stop8840" />
+ <stop
+ style="stop-color: rgb(0, 0, 0); stop-opacity: 0;"
+ offset="1"
+ id="stop8842" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4873"
+ inkscape:collect="always">
+ <stop
+ id="stop4875"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 1;" />
+ <stop
+ id="stop4877"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8838"
+ id="radialGradient7184"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.341176,0,3.04706)"
+ cx="62.625"
+ cy="4.625"
+ fx="62.625"
+ fy="4.625"
+ r="10.625" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8647"
+ id="radialGradient7186"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.12235,0,0,1.12238,-7.61047,1.06772)"
+ cx="62.200352"
+ cy="-8.7256308"
+ fx="62.200352"
+ fy="-8.7256308"
+ r="9.7552834" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4873"
+ id="linearGradient7188"
+ gradientUnits="userSpaceOnUse"
+ x1="63.397362"
+ y1="-9.3832779"
+ x2="68.910904"
+ y2="16.839214" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient7194"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient7202"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient7208"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient7216"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient7224"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,0.79739)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient7230"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8924"
+ id="radialGradient7254"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.0682288,2.45967,-1.7549,0.0486843,55.1288,-46.8219)"
+ cx="24.652573"
+ cy="18.94449"
+ fx="24.652485"
+ fy="18.944481"
+ r="8.6174498" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient7256"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.891018,0,0,0.828854,1.57952,2.39052)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8930"
+ id="radialGradient7262"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.159592,5.75333,-0.8072,0.0223703,32.8731,-130.867)"
+ cx="25.135374"
+ cy="14.542349"
+ fx="25.135332"
+ fy="14.542329"
+ r="4.1347499" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient7264"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,0.589884)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8912"
+ id="radialGradient7270"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.222034,8.00438,-0.597156,0.0165609,29.8566,-181.6)"
+ cx="24.478569"
+ cy="17.573915"
+ fx="24.478539"
+ fy="17.573889"
+ r="2.9719501" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient7272"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0.311259,0.486131)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8918"
+ id="radialGradient7278"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.0616815,2.22364,-1.49597,0.0414803,50.5112,-44.5084)"
+ cx="25.969097"
+ cy="17.257854"
+ fx="25.968998"
+ fy="17.257843"
+ r="9.8222504" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient7280"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.918134,0,0,0.854079,2.42976,1.4901)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8838"
+ id="radialGradient8513"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.341176,0,3.04706)"
+ cx="62.625"
+ cy="4.625"
+ fx="62.625"
+ fy="4.625"
+ r="10.625" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8647"
+ id="radialGradient8515"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.12235,0,0,1.12238,-7.61047,1.06772)"
+ cx="62.200352"
+ cy="-8.7256308"
+ fx="62.200352"
+ fy="-8.7256308"
+ r="9.7552834" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4873"
+ id="linearGradient8517"
+ gradientUnits="userSpaceOnUse"
+ x1="63.397362"
+ y1="-9.3832779"
+ x2="68.910904"
+ y2="16.839214" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8519"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8521"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8523"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8525"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8527"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8529"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8531"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8533"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8535"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8537"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8539"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8541"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8543"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8545"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8547"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8549"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8551"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8553"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,0.79739)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8555"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8557"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8559"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8561"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8563"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8565"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8567"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8569"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8571"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8573"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8575"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8577"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8579"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8581"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8924"
+ id="radialGradient8583"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.0682288,2.45967,-1.7549,0.0486843,55.1288,-46.8219)"
+ cx="24.652573"
+ cy="18.94449"
+ fx="24.652485"
+ fy="18.944481"
+ r="8.6174498" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8585"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.891018,0,0,0.828854,1.57952,2.39052)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8924"
+ id="radialGradient8587"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.0765739,2.76052,-1.96955,0.0546389,60.099,-55.4718)"
+ cx="24.652573"
+ cy="18.94449"
+ fx="24.652485"
+ fy="18.944481"
+ r="8.6174498" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8589"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8930"
+ id="radialGradient8591"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.159592,5.75333,-0.8072,0.0223703,32.8731,-130.867)"
+ cx="25.135374"
+ cy="14.542349"
+ fx="25.135332"
+ fy="14.542329"
+ r="4.1347499" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8593"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,0.589884)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8930"
+ id="radialGradient8595"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.159592,5.75333,-0.8072,0.0223703,32.8731,-131.697)"
+ cx="25.135374"
+ cy="14.542349"
+ fx="25.135332"
+ fy="14.542329"
+ r="4.1347499" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8597"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8912"
+ id="radialGradient8599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.222034,8.00438,-0.597156,0.0165609,29.8566,-181.6)"
+ cx="24.478569"
+ cy="17.573915"
+ fx="24.478539"
+ fy="17.573889"
+ r="2.9719501" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8601"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0.311259,0.486131)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8912"
+ id="radialGradient8603"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.222034,8.00438,-0.597156,0.0165609,29.5454,-182.327)"
+ cx="24.478569"
+ cy="17.573915"
+ fx="24.478539"
+ fy="17.573889"
+ r="2.9719501" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8605"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8918"
+ id="radialGradient8607"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.0616815,2.22364,-1.49597,0.0414803,50.5112,-44.5084)"
+ cx="25.969097"
+ cy="17.257854"
+ fx="25.968998"
+ fy="17.257843"
+ r="9.8222504" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8609"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.918134,0,0,0.854079,2.42976,1.4901)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8918"
+ id="radialGradient8611"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.0671814,2.42191,-1.62936,0.0451789,52.3687,-50.3401)"
+ cx="25.969097"
+ cy="17.257854"
+ fx="25.968998"
+ fy="17.257843"
+ r="9.8222504" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient8613"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961"
+ id="linearGradient9568"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9570"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9572"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9574"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9576"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9578"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9580"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9582"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9584"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9586"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9588"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9590"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9592"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9594"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9596"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9598"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9600"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9602"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9604"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9606"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9608"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9610"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9612"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9614"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9616"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9618"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9620"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8924"
+ id="radialGradient9622"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.0765739,2.76052,-1.96955,0.0546389,60.099,-55.4718)"
+ cx="24.652573"
+ cy="18.94449"
+ fx="24.652485"
+ fy="18.944481"
+ r="8.6174498" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9624"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8930"
+ id="radialGradient9626"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.159592,5.75333,-0.8072,0.0223703,32.8731,-131.697)"
+ cx="25.135374"
+ cy="14.542349"
+ fx="25.135332"
+ fy="14.542329"
+ r="4.1347499" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9628"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8912"
+ id="radialGradient9630"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.222034,8.00438,-0.597156,0.0165609,29.5454,-182.327)"
+ cx="24.478569"
+ cy="17.573915"
+ fx="24.478539"
+ fy="17.573889"
+ r="2.9719501" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9632"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8918"
+ id="radialGradient9634"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.0671814,2.42191,-1.62936,0.0451789,52.3687,-50.3401)"
+ cx="25.969097"
+ cy="17.257854"
+ fx="25.968998"
+ fy="17.257843"
+ r="9.8222504" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8740"
+ id="radialGradient9636"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+ cx="62.225391"
+ cy="-3.4420195"
+ fx="62.225391"
+ fy="-3.4420195"
+ r="10.081216" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5048"
+ id="linearGradient9874"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.77439,0,0,1.96971,-1892.18,-872.885)"
+ x1="302.85715"
+ y1="366.64789"
+ x2="302.85715"
+ y2="609.50507" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient9876"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.77439,0,0,1.96971,-1891.63,-872.885)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient9878"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.77439,0,0,1.96971,112.762,-872.885)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient9880"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.32797,0,-0.467771,1.60701,3.48927,-5.75381)"
+ cx="4.4339509"
+ cy="8.3226004"
+ fx="4.4339509"
+ fy="8.3226004"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient9882"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.32797,0,-0.467771,1.60701,3.48927,-5.75381)"
+ cx="4.4339509"
+ cy="8.3226004"
+ fx="4.4339509"
+ fy="8.3226004"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient9884"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.32797,0,-0.467771,1.60701,3.48927,-5.75381)"
+ cx="4.4339509"
+ cy="8.3226004"
+ fx="4.4339509"
+ fy="8.3226004"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient9886"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.32797,0,-0.467771,1.60701,3.48927,-5.75381)"
+ cx="4.4339509"
+ cy="8.3226004"
+ fx="4.4339509"
+ fy="8.3226004"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient9888"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.32797,0,-0.467771,1.60701,3.48927,-5.75381)"
+ cx="4.4339509"
+ cy="8.3226004"
+ fx="4.4339509"
+ fy="8.3226004"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient9890"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.32797,0,-0.467771,1.60701,3.48927,-5.75381)"
+ cx="4.4339509"
+ cy="8.3226004"
+ fx="4.4339509"
+ fy="8.3226004"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6859"
+ id="radialGradient9892"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.786718,0,0,1.44232,-51.0422,-5.89968)"
+ cx="42"
+ cy="15.814279"
+ fx="42"
+ fy="15.814279"
+ r="3" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6794"
+ id="linearGradient9894"
+ gradientUnits="userSpaceOnUse"
+ x1="42.875"
+ y1="30.9375"
+ x2="39.919209"
+ y2="51.062393" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6851"
+ id="radialGradient9896"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.821325,0,0,1.00384,-52.3505,0.173875)"
+ cx="42.8125"
+ cy="25.727272"
+ fx="42.8125"
+ fy="25.727272"
+ r="4.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6843"
+ id="radialGradient9898"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.745238,0,0,0.910847,-49.1726,3.63873)"
+ cx="42.5"
+ cy="36.307945"
+ fx="42.5"
+ fy="36.307945"
+ r="4.5" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6794"
+ id="linearGradient9900"
+ gradientUnits="userSpaceOnUse"
+ x1="42.875"
+ y1="30.9375"
+ x2="39.919209"
+ y2="51.062393" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6794"
+ id="linearGradient9902"
+ gradientUnits="userSpaceOnUse"
+ x1="42.875"
+ y1="30.9375"
+ x2="39.919209"
+ y2="51.062393" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6499"
+ id="linearGradient9904"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.88856,0,0,1,-55.4867,0)"
+ x1="17.077137"
+ y1="14.375"
+ x2="41.06271"
+ y2="56.9375" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6820"
+ id="linearGradient9906"
+ gradientUnits="userSpaceOnUse"
+ x1="24.75"
+ y1="43.927441"
+ x2="24.75"
+ y2="35.790096" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6881"
+ id="linearGradient9908"
+ gradientUnits="userSpaceOnUse"
+ x1="17.353554"
+ y1="7.9356604"
+ x2="28.035534"
+ y2="81.759773" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient9910"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52618,0,0,1.40054,-2.79535,-3.40699)"
+ cx="5.312501"
+ cy="8.1713457"
+ fx="5.312501"
+ fy="8.1713457"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient9912"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52618,0,0,1.40054,-2.79535,-3.40699)"
+ cx="5.312501"
+ cy="8.1713457"
+ fx="5.312501"
+ fy="8.1713457"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient9914"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52618,0,0,1.40054,-2.79535,-3.40699)"
+ cx="5.312501"
+ cy="8.1713457"
+ fx="5.312501"
+ fy="8.1713457"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient9916"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52618,0,0,1.40054,-2.79535,-3.40699)"
+ cx="5.312501"
+ cy="8.1713457"
+ fx="5.312501"
+ fy="8.1713457"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient9918"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52618,0,0,1.40054,-2.79535,-3.40699)"
+ cx="5.312501"
+ cy="8.1713457"
+ fx="5.312501"
+ fy="8.1713457"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient9920"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52618,0,0,1.40054,-2.79535,-3.40699)"
+ cx="5.312501"
+ cy="8.1713457"
+ fx="5.312501"
+ fy="8.1713457"
+ r="6" />
+ <linearGradient
+ id="linearGradient3276-4-9">
+ <stop
+ id="stop3278-5-0"
+ offset="0"
+ style="stop-color: rgb(175, 207, 255); stop-opacity: 1;" />
+ <stop
+ id="stop3280-4-7"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3284-2-9">
+ <stop
+ id="stop3286-2-3"
+ offset="0"
+ style="stop-color: rgb(255, 212, 42); stop-opacity: 1;" />
+ <stop
+ id="stop3288-4-3"
+ offset="1"
+ style="stop-color: rgb(255, 241, 163); stop-opacity: 1;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3276-4-9"
+ id="linearGradient4274"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,1054.98,9.00005)"
+ x1="298.49658"
+ y1="540.21155"
+ x2="625.77783"
+ y2="540.21155" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3284-2-9"
+ id="linearGradient4276"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(6.70711,9)"
+ x1="474.26663"
+ y1="483.6463"
+ x2="573.2616"
+ y2="589.20721" />
+ <linearGradient
+ y2="31.250401"
+ x2="57.49662"
+ y1="38.277283"
+ x1="57.49662"
+ gradientTransform="translate(10,0)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2351"
+ xlink:href="#linearGradient4241"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="31.250401"
+ x2="57.49662"
+ y1="38.277283"
+ x1="57.49662"
+ gradientTransform="translate(8,0)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2349"
+ xlink:href="#linearGradient4241"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="31.250401"
+ x2="57.49662"
+ y1="38.277283"
+ x1="57.49662"
+ gradientTransform="translate(6,0)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2347"
+ xlink:href="#linearGradient4241"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="31.250401"
+ x2="57.49662"
+ y1="38.277283"
+ x1="57.49662"
+ gradientTransform="translate(4,0)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2345"
+ xlink:href="#linearGradient4241"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="31.250401"
+ x2="57.49662"
+ y1="38.277283"
+ x1="57.49662"
+ gradientTransform="translate(2,0)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2343"
+ xlink:href="#linearGradient4241"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="31.250401"
+ x2="57.49662"
+ y1="38.277283"
+ x1="57.49662"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2341"
+ xlink:href="#linearGradient4241"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(-40,-1)"
+ y2="6.5458651"
+ x2="53.61911"
+ y1="6.5458651"
+ x1="73.05397"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2339"
+ xlink:href="#linearGradient3859"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(-40,-1)"
+ y2="72.082878"
+ x2="60.426777"
+ y1="18.520107"
+ x1="60.426777"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2335"
+ xlink:href="#linearGradient4175"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="10.868282"
+ x2="24.92893"
+ y1="12.001067"
+ x1="24.92893"
+ gradientTransform="matrix(0.882353,0,0,1,2.70589,1)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2332"
+ xlink:href="#linearGradient4233"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="17.762573"
+ x2="24.92893"
+ y1="19.00001"
+ x1="24.960155"
+ gradientTransform="matrix(0.882353,0,0,1,2.70589,1)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2329"
+ xlink:href="#linearGradient4227"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="36.374992"
+ x2="12.500004"
+ y1="32.593761"
+ x1="10.249995"
+ gradientTransform="matrix(0.999998,0,0,1.000003,6.00003,-7.000134)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2325"
+ xlink:href="#linearGradient2833"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(-40,-1)"
+ y2="37.256325"
+ x2="53.5625"
+ y1="4.4916701"
+ x1="53.5625"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2319"
+ xlink:href="#linearGradient3942"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient2809">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1;"
+ offset="0"
+ id="stop2811" />
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:0;"
+ offset="1"
+ id="stop2813" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3942">
+ <stop
+ id="stop3944"
+ offset="0"
+ style="stop-color:#888a85;stop-opacity:1" />
+ <stop
+ id="stop3946"
+ offset="1"
+ style="stop-color:#eeeeec;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3859">
+ <stop
+ id="stop3861"
+ offset="0"
+ style="stop-color:#d3d7cf;stop-opacity:1" />
+ <stop
+ id="stop3037"
+ offset="0.30973485"
+ style="stop-color:#eeeeec;stop-opacity:1;" />
+ <stop
+ style="stop-color:white;stop-opacity:1;"
+ offset="0.88648254"
+ id="stop3039" />
+ <stop
+ id="stop3863"
+ offset="1"
+ style="stop-color:#d3d7cf;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ y2="24.500002"
+ x2="0.055013988"
+ y1="24.500002"
+ x1="6.5030808"
+ gradientTransform="matrix(-0.909091,0,0,1,46.04546,1.999997)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient6849"
+ xlink:href="#linearGradient4391"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="27.499998"
+ x2="1.0550151"
+ y1="27.499998"
+ x1="7.5030818"
+ gradientTransform="matrix(-0.909091,0,0,1,46.95455,-0.999999)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient6847"
+ xlink:href="#linearGradient2809"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.909091,0,0,1,1.954541,1.999997)"
+ gradientUnits="userSpaceOnUse"
+ y2="24.500002"
+ x2="0.055013988"
+ y1="24.500002"
+ x1="6.5030808"
+ id="linearGradient6843-4"
+ xlink:href="#linearGradient6837"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.909091,0,0,1,1.045449,-1)"
+ y2="27.499998"
+ x2="1.0550151"
+ y1="27.499998"
+ x1="7.5030818"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient6835"
+ xlink:href="#linearGradient2809"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient6837"
+ inkscape:collect="always">
+ <stop
+ id="stop6839"
+ offset="0"
+ style="stop-color:#729fcf;stop-opacity:1" />
+ <stop
+ id="stop6841"
+ offset="1"
+ style="stop-color:#729fcf;stop-opacity:0" />
+ </linearGradient>
+ <linearGradient
+ y2="609.50507"
+ x2="302.85715"
+ y1="366.64789"
+ x1="302.85715"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient6715"
+ xlink:href="#linearGradient5048-1"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient5048-1">
+ <stop
+ id="stop5050-4"
+ offset="0"
+ style="stop-color:black;stop-opacity:0;" />
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0.5"
+ id="stop5056-5" />
+ <stop
+ id="stop5052-0"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ r="117.14286"
+ fy="486.64789"
+ fx="605.71429"
+ cy="486.64789"
+ cx="605.71429"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient6717"
+ xlink:href="#linearGradient5060-8"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient5060-8"
+ inkscape:collect="always">
+ <stop
+ id="stop5062-7"
+ offset="0"
+ style="stop-color:black;stop-opacity:1;" />
+ <stop
+ id="stop5064-5"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ r="117.14286"
+ fy="486.64789"
+ fx="605.71429"
+ cy="486.64789"
+ cx="605.71429"
+ gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient6719"
+ xlink:href="#linearGradient5060-8"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient2833">
+ <stop
+ style="stop-color:#959595;stop-opacity:1;"
+ offset="0"
+ id="stop2835" />
+ <stop
+ style="stop-color:white;stop-opacity:0.85576922;"
+ offset="1"
+ id="stop2837" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4175"
+ inkscape:collect="always">
+ <stop
+ id="stop4177"
+ offset="0"
+ style="stop-color:#d3d7cf;stop-opacity:1" />
+ <stop
+ id="stop4179"
+ offset="1"
+ style="stop-color:#eeeeec;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4227">
+ <stop
+ style="stop-color:#d7d7d7;stop-opacity:1;"
+ offset="0"
+ id="stop4229" />
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="1"
+ id="stop4231" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4233">
+ <stop
+ style="stop-color:#d7d7d7;stop-opacity:1;"
+ offset="0"
+ id="stop4235" />
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="1"
+ id="stop4237" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4241"
+ inkscape:collect="always">
+ <stop
+ id="stop4243"
+ offset="0"
+ style="stop-color:black;stop-opacity:1;" />
+ <stop
+ id="stop4245"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4391">
+ <stop
+ style="stop-color:#729fcf;stop-opacity:1"
+ offset="0"
+ id="stop4393" />
+ <stop
+ style="stop-color:#729fcf;stop-opacity:0"
+ offset="1"
+ id="stop4395" />
+ </linearGradient>
+ <filter
+ id="filter5406"
+ inkscape:collect="always"
+ color-interpolation-filters="sRGB">
+ <feGaussianBlur
+ id="feGaussianBlur5408"
+ stdDeviation="0.78208031"
+ inkscape:collect="always" />
+ </filter>
+ <filter
+ id="filter5386"
+ inkscape:collect="always"
+ color-interpolation-filters="sRGB">
+ <feGaussianBlur
+ id="feGaussianBlur5388"
+ stdDeviation="0.26293105"
+ inkscape:collect="always" />
+ </filter>
+ <linearGradient
+ id="linearGradient6991">
+ <stop
+ id="stop6993"
+ offset="0"
+ style="stop-color:#d3d7cf;stop-opacity:1" />
+ <stop
+ id="stop6995"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7186">
+ <stop
+ id="stop7188"
+ offset="0"
+ style="stop-color:#888a85;stop-opacity:1;" />
+ <stop
+ id="stop7190"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7237">
+ <stop
+ id="stop7239"
+ offset="0"
+ style="stop-color:#eeeeec;stop-opacity:1" />
+ <stop
+ id="stop7241"
+ offset="1"
+ style="stop-color:#babdb6;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7245">
+ <stop
+ id="stop7247"
+ offset="0"
+ style="stop-color:#eeeeec;stop-opacity:1;" />
+ <stop
+ id="stop7249"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7257">
+ <stop
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0"
+ id="stop7259" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop7261" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7263">
+ <stop
+ style="stop-color:#adb0a8;stop-opacity:1;"
+ offset="0"
+ id="stop7265" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1"
+ id="stop7267" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7269">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop7271" />
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="1"
+ id="stop7273" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7277">
+ <stop
+ id="stop7279"
+ offset="0"
+ style="stop-color:#555753;stop-opacity:1" />
+ <stop
+ id="stop7281"
+ offset="1"
+ style="stop-color:#d3d7cf;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7340">
+ <stop
+ id="stop7342"
+ offset="0"
+ style="stop-color:#2e3436;stop-opacity:1;" />
+ <stop
+ id="stop7344"
+ offset="1"
+ style="stop-color:#555753;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7422"
+ inkscape:collect="always">
+ <stop
+ id="stop7424"
+ offset="0"
+ style="stop-color:#edd400;stop-opacity:1;" />
+ <stop
+ id="stop7426"
+ offset="1"
+ style="stop-color:#edd400;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7430"
+ inkscape:collect="always">
+ <stop
+ id="stop7432"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop7434"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7438"
+ inkscape:collect="always">
+ <stop
+ id="stop7440"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop7442"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7576"
+ inkscape:collect="always">
+ <stop
+ id="stop7578"
+ offset="0"
+ style="stop-color:#3465a4;stop-opacity:1" />
+ <stop
+ id="stop7580"
+ offset="1"
+ style="stop-color:#3465a4;stop-opacity:0" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7652"
+ inkscape:collect="always">
+ <stop
+ id="stop7654"
+ offset="0"
+ style="stop-color:#729fcf;stop-opacity:1;" />
+ <stop
+ id="stop7656"
+ offset="1"
+ style="stop-color:#729fcf;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7660"
+ inkscape:collect="always">
+ <stop
+ id="stop7662"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop7664"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7688"
+ inkscape:collect="always">
+ <stop
+ id="stop7690"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop7692"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7812"
+ inkscape:collect="always">
+ <stop
+ id="stop7814"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop7816"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7822"
+ inkscape:collect="always">
+ <stop
+ id="stop7824"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop7826"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7822"
+ id="radialGradient6685"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.6884422,0,10.837832)"
+ cx="14.363107"
+ cy="34.785942"
+ fx="14.363107"
+ fy="34.785942"
+ r="8.7946405" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6991"
+ id="linearGradient6687"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.0000002,0,0,1.9333333,43.500004,0.533333)"
+ x1="-7.975069"
+ y1="25.357235"
+ x2="-11.005972"
+ y2="-6.5683565" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7438"
+ id="linearGradient6689"
+ gradientUnits="userSpaceOnUse"
+ x1="-7.8516631"
+ y1="3.7545938"
+ x2="-5.5098634"
+ y2="18.937717" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7688"
+ id="linearGradient6691"
+ gradientUnits="userSpaceOnUse"
+ x1="28.625"
+ y1="41.125"
+ x2="30.5"
+ y2="47.8125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7263"
+ id="linearGradient6693"
+ gradientUnits="userSpaceOnUse"
+ x1="1.6256078"
+ y1="55.219357"
+ x2="0.82206726"
+ y2="54.415817" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7269"
+ id="linearGradient6695"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9642856,0,0,0.9722222,-0.2500008,1.6944444)"
+ x1="-4.2208939"
+ y1="59.878922"
+ x2="-4.2208939"
+ y2="54.707691" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7257"
+ id="linearGradient6697"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-4,-24)"
+ x1="-1.9887378"
+ y1="51.137787"
+ x2="-3.3587573"
+ y2="54" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7237"
+ id="linearGradient6699"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-4,-24)"
+ x1="-4.6845822"
+ y1="52.640388"
+ x2="0.88388348"
+ y2="50.563263" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7245"
+ id="linearGradient6701"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-4,-24)"
+ x1="-5.0823302"
+ y1="50.51907"
+ x2="0.26516503"
+ y2="49.458408" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7186"
+ id="linearGradient6703"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-4,-24)"
+ x1="-5.96875"
+ y1="52.875"
+ x2="-5.96875"
+ y2="51.812416" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7277"
+ id="linearGradient6705"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.0285717,-4,-25.142872)"
+ x1="-3.5355339"
+ y1="55.866562"
+ x2="-3.5355339"
+ y2="59.444622" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7340"
+ id="linearGradient6707"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0874899,0,0,1.086371,-1.5809531,-8.9433469)"
+ x1="32.8125"
+ y1="21"
+ x2="32.8125"
+ y2="26.204767" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7430"
+ id="linearGradient6709"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1,-7)"
+ x1="28.875"
+ y1="29"
+ x2="29"
+ y2="16" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7422"
+ id="linearGradient6711"
+ gradientUnits="userSpaceOnUse"
+ x1="30.3125"
+ y1="27.313059"
+ x2="30.3125"
+ y2="24.6875" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7422"
+ id="linearGradient6713"
+ gradientUnits="userSpaceOnUse"
+ x1="30.3125"
+ y1="27.313059"
+ x2="30.3125"
+ y2="24.6875" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7422"
+ id="linearGradient6716"
+ gradientUnits="userSpaceOnUse"
+ x1="30.3125"
+ y1="27.313059"
+ x2="30.3125"
+ y2="24.6875" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7422"
+ id="linearGradient6718"
+ gradientUnits="userSpaceOnUse"
+ x1="30.3125"
+ y1="27.313059"
+ x2="30.3125"
+ y2="24.6875" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7652"
+ id="linearGradient6722"
+ gradientUnits="userSpaceOnUse"
+ x1="37.625"
+ y1="40.3125"
+ x2="38.875"
+ y2="45.0625" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7576"
+ id="linearGradient6724"
+ gradientUnits="userSpaceOnUse"
+ x1="38.75"
+ y1="40.625"
+ x2="40.125"
+ y2="46.5625" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7660"
+ id="linearGradient6726"
+ gradientUnits="userSpaceOnUse"
+ x1="41.1875"
+ y1="38.3125"
+ x2="42.123722"
+ y2="42.9375" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7269"
+ id="linearGradient6728"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.1249999,0,0,1.1666666,15.874999,-34.135417)"
+ x1="-4.1097827"
+ y1="58.807774"
+ x2="-4.1097827"
+ y2="55.000004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7812"
+ id="linearGradient6730"
+ gradientUnits="userSpaceOnUse"
+ x1="-6.40625"
+ y1="32.4375"
+ x2="-7.78125"
+ y2="34.5625" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5048-1"
+ id="linearGradient7016"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+ x1="302.85715"
+ y1="366.64789"
+ x2="302.85715"
+ y2="609.50507" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060-8"
+ id="radialGradient7018"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060-8"
+ id="radialGradient7020"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2809"
+ id="linearGradient7022"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.909091,0,0,1,46.95455,-0.999999)"
+ x1="7.5030818"
+ y1="27.499998"
+ x2="1.0550151"
+ y2="27.499998" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4391"
+ id="linearGradient7024"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.909091,0,0,1,46.04546,1.999997)"
+ x1="6.5030808"
+ y1="24.500002"
+ x2="0.055013988"
+ y2="24.500002" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2809"
+ id="linearGradient7026"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.909091,0,0,1,1.045449,-1)"
+ x1="7.5030818"
+ y1="27.499998"
+ x2="1.0550151"
+ y2="27.499998" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6837"
+ id="linearGradient7028"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.909091,0,0,1,1.954541,1.999997)"
+ x1="6.5030808"
+ y1="24.500002"
+ x2="0.055013988"
+ y2="24.500002" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3859"
+ id="linearGradient7030"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-40,-1)"
+ x1="73.05397"
+ y1="6.5458651"
+ x2="53.61911"
+ y2="6.5458651" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4175"
+ id="linearGradient7032"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-40,-1)"
+ x1="60.426777"
+ y1="18.520107"
+ x2="60.426777"
+ y2="72.082878" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4233"
+ id="linearGradient7034"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.882353,0,0,1,2.70589,1)"
+ x1="24.92893"
+ y1="12.001067"
+ x2="24.92893"
+ y2="10.868282" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4227"
+ id="linearGradient7036"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.882353,0,0,1,2.70589,1)"
+ x1="24.960155"
+ y1="19.00001"
+ x2="24.92893"
+ y2="17.762573" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2833"
+ id="linearGradient7038"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.999998,0,0,1.000003,6.00003,-7.000134)"
+ x1="10.249995"
+ y1="32.593761"
+ x2="12.500004"
+ y2="36.374992" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3942"
+ id="linearGradient7040"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-40,-1)"
+ x1="53.5625"
+ y1="4.4916701"
+ x2="53.5625"
+ y2="37.256325" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4241"
+ id="linearGradient7042"
+ gradientUnits="userSpaceOnUse"
+ x1="57.49662"
+ y1="38.277283"
+ x2="57.49662"
+ y2="31.250401" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4241"
+ id="linearGradient7044"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(2,0)"
+ x1="57.49662"
+ y1="38.277283"
+ x2="57.49662"
+ y2="31.250401" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4241"
+ id="linearGradient7046"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(4,0)"
+ x1="57.49662"
+ y1="38.277283"
+ x2="57.49662"
+ y2="31.250401" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4241"
+ id="linearGradient7048"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(6,0)"
+ x1="57.49662"
+ y1="38.277283"
+ x2="57.49662"
+ y2="31.250401" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4241"
+ id="linearGradient7050"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(8,0)"
+ x1="57.49662"
+ y1="38.277283"
+ x2="57.49662"
+ y2="31.250401" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4241"
+ id="linearGradient7052"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(10,0)"
+ x1="57.49662"
+ y1="38.277283"
+ x2="57.49662"
+ y2="31.250401" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7422"
+ id="linearGradient7060"
+ gradientUnits="userSpaceOnUse"
+ x1="30.3125"
+ y1="27.313059"
+ x2="30.3125"
+ y2="24.6875" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="40.441154"
+ x2="21.8125"
+ y1="13.249833"
+ x1="21.8125"
+ id="linearGradient2960-6"
+ xlink:href="#linearGradient2954-1"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="39.3125"
+ x2="33.5625"
+ y1="34"
+ x1="33.5"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2077"
+ xlink:href="#linearGradient5302"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="39.3125"
+ x2="33.5625"
+ y1="34"
+ x1="33.5"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2073"
+ xlink:href="#linearGradient5302"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="39.3125"
+ x2="33.5625"
+ y1="34"
+ x1="33.5"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2069"
+ xlink:href="#linearGradient5302"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="39.3125"
+ x2="33.5625"
+ y1="34"
+ x1="33.5"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2065"
+ xlink:href="#linearGradient5302"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="39.3125"
+ x2="33.5625"
+ y1="34"
+ x1="33.5"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2061"
+ xlink:href="#linearGradient5302"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="39.3125"
+ x2="33.5625"
+ y1="34"
+ x1="33.5"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2057"
+ xlink:href="#linearGradient5302"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="21.997721"
+ x2="5.25"
+ y1="35.75"
+ x1="5.25"
+ id="linearGradient2164"
+ xlink:href="#linearGradient2158"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(1.571428,0,0,1,-7.714286,0)"
+ y2="29.010038"
+ x2="17.5625"
+ y1="20.996099"
+ x1="17.5625"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5322"
+ xlink:href="#linearGradient4055-4"
+ inkscape:collect="always" />
+ <radialGradient
+ r="2"
+ fy="26"
+ fx="13.006094"
+ cy="26"
+ cx="13.006094"
+ gradientTransform="matrix(-9.458067e-7,-2.000005,2.003046,-1.684215e-6,-98.5731,1.012286)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient5320-2"
+ xlink:href="#linearGradient4033-7"
+ inkscape:collect="always" />
+ <radialGradient
+ r="2"
+ fy="26"
+ fx="13.006094"
+ cy="26"
+ cx="13.006094"
+ gradientTransform="matrix(-9.458067e-7,-2.000005,2.003046,-1.684215e-6,-38.5731,51.01229)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient5318-5"
+ xlink:href="#linearGradient4033-7"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="33.375"
+ x2="10.5"
+ y1="36.75"
+ x1="12.5"
+ gradientTransform="translate(12,1)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5201"
+ xlink:href="#linearGradient5187"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(6,1)"
+ y2="33.375"
+ x2="10.5"
+ y1="36.75"
+ x1="12.5"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5197"
+ xlink:href="#linearGradient5209"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(0,1)"
+ gradientUnits="userSpaceOnUse"
+ y2="33.375"
+ x2="10.5"
+ y1="36.75"
+ x1="12.5"
+ id="linearGradient5193"
+ xlink:href="#linearGradient5203"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="36.65625"
+ x2="10"
+ y1="34.9375"
+ x1="10"
+ gradientTransform="matrix(1,0,0,0.666666,13,12.1667)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5101"
+ xlink:href="#linearGradient5111"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(1,0,0,0.666666,7,12.1667)"
+ y2="36.65625"
+ x2="10"
+ y1="34.9375"
+ x1="10"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5095"
+ xlink:href="#linearGradient5105"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(1,0,0,0.666662,1,12.16683)"
+ gradientUnits="userSpaceOnUse"
+ y2="36.65625"
+ x2="10"
+ y1="34.9375"
+ x1="10"
+ id="linearGradient5091"
+ xlink:href="#linearGradient5085"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.944444,0,0,0.999999,1.333333,0)"
+ gradientUnits="userSpaceOnUse"
+ y2="42"
+ x2="20.875"
+ y1="33"
+ x1="19"
+ id="linearGradient4975"
+ xlink:href="#linearGradient4969"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="29.010038"
+ x2="17.5625"
+ y1="20.996099"
+ x1="17.5625"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4074-1"
+ xlink:href="#linearGradient4055-4"
+ inkscape:collect="always" />
+ <radialGradient
+ r="2"
+ fy="26"
+ fx="13.006094"
+ cy="26"
+ cx="13.006094"
+ gradientTransform="matrix(-9.458067e-7,-2.000005,2.003046,-1.684215e-6,-86.5731,1.012286)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4072-4"
+ xlink:href="#linearGradient4033-7"
+ inkscape:collect="always" />
+ <radialGradient
+ r="2"
+ fy="26"
+ fx="13.006094"
+ cy="26"
+ cx="13.006094"
+ gradientTransform="matrix(-9.458067e-7,-2.000005,2.003046,-1.684215e-6,-38.5731,51.01229)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4070-6"
+ xlink:href="#linearGradient4033-7"
+ inkscape:collect="always" />
+ <radialGradient
+ r="1.5"
+ fy="11.602475"
+ fx="21.530191"
+ cy="11.602475"
+ cx="21.530191"
+ gradientTransform="matrix(-2.96731,-1.031509e-7,0,-1.136461,83.23332,33.67016)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3017-3"
+ xlink:href="#linearGradient6256-4"
+ inkscape:collect="always" />
+ <radialGradient
+ r="1.5"
+ fy="11.602475"
+ fx="21.530191"
+ cy="11.602475"
+ cx="21.530191"
+ gradientTransform="matrix(-2.96731,-1.031509e-7,0,-1.136461,88.32422,33.67016)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3013-2"
+ xlink:href="#linearGradient6256-4"
+ inkscape:collect="always" />
+ <radialGradient
+ r="1.5"
+ fy="11.602475"
+ fx="21.530191"
+ cy="11.602475"
+ cx="21.530191"
+ gradientTransform="matrix(-2.96731,-1.031509e-7,0,-1.136461,93.41513,33.67016)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3009-6"
+ xlink:href="#linearGradient6256-4"
+ inkscape:collect="always" />
+ <radialGradient
+ r="1.5"
+ fy="11.602475"
+ fx="21.530191"
+ cy="11.602475"
+ cx="21.530191"
+ gradientTransform="matrix(-2.755359,-1.031509e-7,0,-1.136461,79.00237,30.67016)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3002-6"
+ xlink:href="#linearGradient6256-4"
+ inkscape:collect="always" />
+ <radialGradient
+ r="1.5"
+ fy="11.602475"
+ fx="21.530191"
+ cy="11.602475"
+ cx="21.530191"
+ gradientTransform="matrix(-2.755359,-1.031509e-7,0,-1.136461,83.72964,30.67016)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2998-7"
+ xlink:href="#linearGradient6256-4"
+ inkscape:collect="always" />
+ <radialGradient
+ r="1.5"
+ fy="11.602475"
+ fx="21.530191"
+ cy="11.602475"
+ cx="21.530191"
+ gradientTransform="matrix(-2.755359,-1.031509e-7,0,-1.136461,88.45691,30.67016)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2994-4"
+ xlink:href="#linearGradient6256-4"
+ inkscape:collect="always" />
+ <radialGradient
+ r="1.5"
+ fy="11.602475"
+ fx="21.530191"
+ cy="11.602475"
+ cx="21.530191"
+ gradientTransform="matrix(-2.543409,-1.031509e-7,0,-1.136461,74.77142,27.67016)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2987-3"
+ xlink:href="#linearGradient6256-4"
+ inkscape:collect="always" />
+ <radialGradient
+ r="1.5"
+ fy="11.602475"
+ fx="21.530191"
+ cy="11.602475"
+ cx="21.530191"
+ gradientTransform="matrix(-2.543409,-1.031509e-7,0,-1.136461,79.13505,27.67016)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2983-6"
+ xlink:href="#linearGradient6256-4"
+ inkscape:collect="always" />
+ <radialGradient
+ r="1.5"
+ fy="11.602475"
+ fx="21.530191"
+ cy="11.602475"
+ cx="21.530191"
+ gradientTransform="matrix(-2.543409,-1.031509e-7,0,-1.136461,83.49869,27.67016)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2979-8"
+ xlink:href="#linearGradient6256-4"
+ inkscape:collect="always" />
+ <radialGradient
+ r="1.5"
+ fy="11.602475"
+ fx="21.530191"
+ cy="11.602475"
+ cx="21.530191"
+ gradientTransform="matrix(-2.331458,-1.031509e-7,0,-1.136461,78.54047,24.67016)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2972-2"
+ xlink:href="#linearGradient6256-4"
+ inkscape:collect="always" />
+ <radialGradient
+ r="1.5"
+ fy="11.602475"
+ fx="21.530191"
+ cy="11.602475"
+ cx="21.530191"
+ gradientTransform="matrix(-2.331458,-1.031509e-7,0,-1.136461,74.54047,24.67016)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2968-2"
+ xlink:href="#linearGradient6256-4"
+ inkscape:collect="always" />
+ <radialGradient
+ r="1.5"
+ fy="11.602475"
+ fx="21.530191"
+ cy="11.602475"
+ cx="21.530191"
+ gradientTransform="matrix(-2.331458,-1.031509e-7,0,-1.136461,70.54047,24.67016)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient6264-1"
+ xlink:href="#linearGradient6256-4"
+ inkscape:collect="always" />
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.720795,-0.03898649,0.00176461,0.123227,-33.03868,12.78605)"
+ r="16.031172"
+ fy="3.5110793"
+ fx="16.030262"
+ cy="3.5110793"
+ cx="16.030262"
+ id="radialGradient4068-8"
+ xlink:href="#linearGradient4062-9"
+ inkscape:collect="always" />
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.04444,-0.123888,0.01467675,0.242354,-19.8863,13.61936)"
+ r="16.994591"
+ fy="6.5931005"
+ fx="17.04607"
+ cy="6.5931005"
+ cx="17.04607"
+ id="radialGradient4024-0"
+ xlink:href="#linearGradient4038-5"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="18.257809"
+ x2="23.994669"
+ y1="13.842071"
+ x1="23.994669"
+ id="linearGradient3404-2"
+ xlink:href="#linearGradient4044-9"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(1.000314,0,0,1,-0.00361429,0.972209)"
+ y2="20.639368"
+ x2="28.260429"
+ y1="8.7648172"
+ x1="28.260429"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1616-2"
+ xlink:href="#linearGradient4044-9"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="29.477005"
+ x2="24.414724"
+ y1="25.463402"
+ x1="24.414724"
+ gradientTransform="matrix(1.000314,0,0,1,0.00705191,-4.000006)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1614-1"
+ xlink:href="#linearGradient4038-5"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="17.53454"
+ x2="25.189993"
+ y1="24.504593"
+ x1="24.160858"
+ gradientTransform="matrix(-1.000314,0,0,1,48.01271,-4.000006)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1601-3"
+ xlink:href="#linearGradient2513-0"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="8.361702"
+ x2="24.010672"
+ y1="24.81731"
+ x1="24.834204"
+ gradientTransform="matrix(0.921903,0,0,0.877945,1.869671,-1.024713)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1598-1"
+ xlink:href="#linearGradient4070-0"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2513-0">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2515-3" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.21789883"
+ offset="1"
+ id="stop2517-9" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4038-5">
+ <stop
+ style="stop-color:#729fcf;stop-opacity:1"
+ offset="0"
+ id="stop4040-3" />
+ <stop
+ style="stop-color:#3465a4;stop-opacity:1"
+ offset="1"
+ id="stop4042-4" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4044-9">
+ <stop
+ id="stop4046-5"
+ offset="0"
+ style="stop-color:#3465a4;stop-opacity:1" />
+ <stop
+ id="stop4048-5"
+ offset="1"
+ style="stop-color:#204a87;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4062-9">
+ <stop
+ id="stop4064-2"
+ offset="0"
+ style="stop-color:white;stop-opacity:1;" />
+ <stop
+ id="stop4066-6"
+ offset="1"
+ style="stop-color:white;stop-opacity:0.29761904;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4070-0">
+ <stop
+ style="stop-color:white;stop-opacity:0.42857143;"
+ offset="0"
+ id="stop4072-4" />
+ <stop
+ style="stop-color:white;stop-opacity:1;"
+ offset="1"
+ id="stop4074-7" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6256-4">
+ <stop
+ style="stop-color:white;stop-opacity:1;"
+ offset="0"
+ id="stop6258-1" />
+ <stop
+ style="stop-color:#cccec9;stop-opacity:1;"
+ offset="1"
+ id="stop6260-1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4033-7"
+ inkscape:collect="always">
+ <stop
+ id="stop4035-1"
+ offset="0"
+ style="stop-color:black;stop-opacity:1;" />
+ <stop
+ id="stop4037-0"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4055-4">
+ <stop
+ id="stop4057-7"
+ offset="0"
+ style="stop-color:black;stop-opacity:0;" />
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0.5"
+ id="stop4063-0" />
+ <stop
+ id="stop4059-4"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4961-1">
+ <stop
+ id="stop4963-8"
+ offset="0"
+ style="stop-color:#555753;stop-opacity:1" />
+ <stop
+ id="stop4965-9"
+ offset="1"
+ style="stop-color:#babdb6;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4969"
+ inkscape:collect="always">
+ <stop
+ id="stop4971"
+ offset="0"
+ style="stop-color:#d3d7cf;stop-opacity:1;" />
+ <stop
+ id="stop4973"
+ offset="1"
+ style="stop-color:#d3d7cf;stop-opacity:0" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5085">
+ <stop
+ id="stop5087"
+ offset="0"
+ style="stop-color:#73d216;stop-opacity:1;" />
+ <stop
+ id="stop5089"
+ offset="1"
+ style="stop-color:#8ae234;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5105">
+ <stop
+ style="stop-color:#edd400;stop-opacity:1"
+ offset="0"
+ id="stop5107" />
+ <stop
+ style="stop-color:#fce94f;stop-opacity:1"
+ offset="1"
+ id="stop5109" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5111">
+ <stop
+ style="stop-color:#f57900;stop-opacity:1"
+ offset="0"
+ id="stop5113" />
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:1"
+ offset="1"
+ id="stop5115" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5187"
+ inkscape:collect="always">
+ <stop
+ id="stop5189"
+ offset="0"
+ style="stop-color:white;stop-opacity:1" />
+ <stop
+ id="stop5191"
+ offset="1"
+ style="stop-color:#eeeeec;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5203">
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="0"
+ id="stop5205" />
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:0;"
+ offset="1"
+ id="stop5207" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5209">
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="0"
+ id="stop5211" />
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:0;"
+ offset="1"
+ id="stop5213" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5302"
+ inkscape:collect="always">
+ <stop
+ id="stop5304"
+ offset="0"
+ style="stop-color:#888a85;stop-opacity:1" />
+ <stop
+ id="stop5306"
+ offset="1"
+ style="stop-color:#d3d7cf;stop-opacity:0" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2158">
+ <stop
+ id="stop2160"
+ offset="0"
+ style="stop-color:#555753;stop-opacity:1" />
+ <stop
+ id="stop2162"
+ offset="1"
+ style="stop-color:#888a85;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2954-1"
+ inkscape:collect="always">
+ <stop
+ id="stop2956-8"
+ offset="0"
+ style="stop-color:#3465a4;stop-opacity:1;" />
+ <stop
+ id="stop2958-0"
+ offset="1"
+ style="stop-color:#3465a4;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient7959"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient7961"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient7963"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient7965"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient7967"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient7969"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient7971"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient7973"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient7975"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient7977"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient7979"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient7981"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8522"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8524"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8526"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8528"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8530"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8532"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8534"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8536"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8538"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8540"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8542"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8544"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8546"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8548"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8550"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8552"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3374-9-9"
+ id="radialGradient5864-2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.827349,0,1.12223)"
+ cx="10.28125"
+ cy="8.0709476"
+ fx="10.28125"
+ fy="8.0709476"
+ r="4.5250292" />
+ <linearGradient
+ id="linearGradient3374-9-9"
+ inkscape:collect="always">
+ <linearGradient
+ id="linearGradient4953">
+ <stop
+ style="stop-color: rgb(252, 245, 213); stop-opacity: 1;"
+ offset="0"
+ id="stop4955" />
+ <stop
+ style="stop-color: rgb(255, 221, 0); stop-opacity: 1;"
+ offset="1"
+ id="stop4957" />
+ </linearGradient>
+ <stop
+ id="stop3376-6-6"
+ offset="0"
+ style="stop-color: rgb(114, 159, 207); stop-opacity: 1;" />
+ <stop
+ id="stop3378-6-5"
+ offset="1"
+ style="stop-color: rgb(114, 159, 207); stop-opacity: 0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3362-7-4"
+ id="radialGradient5866-9"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.68085,0,0,1.27674,-37.8437,-3.30085)"
+ cx="10.28125"
+ cy="10.018439"
+ fx="10.28125"
+ fy="10.018439"
+ r="4.5250292" />
+ <linearGradient
+ id="linearGradient3362-7-4"
+ inkscape:collect="always">
+ <stop
+ id="stop3364-5-3"
+ offset="0"
+ style="stop-color: rgb(52, 101, 164); stop-opacity: 1;" />
+ <stop
+ id="stop3366-5-7"
+ offset="1"
+ style="stop-color: rgb(52, 101, 164); stop-opacity: 0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3362-7-4"
+ id="radialGradient5870-2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.68085,0,0,1.27674,-37.8437,-3.30085)"
+ cx="10.28125"
+ cy="9.8424416"
+ fx="10.28125"
+ fy="9.8424416"
+ r="4.5250292" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3374-9-9"
+ id="radialGradient5872-8"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.698447,0,0,0.57786,3.10034,2.74391)"
+ cx="10.28125"
+ cy="7.8249326"
+ fx="10.28125"
+ fy="7.8249326"
+ r="4.5250292" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3362-7-4"
+ id="radialGradient5874-7"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.68085,0,0,1.27674,-37.8437,-3.30085)"
+ cx="10.28125"
+ cy="9.8424416"
+ fx="10.28125"
+ fy="9.8424416"
+ r="4.5250292" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7131-9-0"
+ id="radialGradient5876-6"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.737507,0,0,0.720181,2.43453,0.661737)"
+ cx="8.9057236"
+ cy="1.7286602"
+ fx="8.9057236"
+ fy="1.7286602"
+ r="1.9952321" />
+ <linearGradient
+ id="linearGradient7131-9-0"
+ inkscape:collect="always">
+ <stop
+ id="stop7133-8-4"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 1;" />
+ <stop
+ id="stop7135-2-9"
+ offset="1"
+ style="stop-color: rgb(211, 215, 207); stop-opacity: 1;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7153-8-2"
+ id="radialGradient5878-1"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.85977,0,0,1.81726,-7.14013,-0.894237)"
+ cx="8.3046875"
+ cy="1.1256332"
+ fx="8.3046875"
+ fy="1.1256332"
+ r="2.0507698" />
+ <linearGradient
+ id="linearGradient7153-8-2"
+ inkscape:collect="always">
+ <stop
+ id="stop7155-6-2"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 1;" />
+ <stop
+ id="stop7157-1-2"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3374-9-9"
+ id="radialGradient6930"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.827349,0,1.12223)"
+ cx="10.28125"
+ cy="8.0709476"
+ fx="10.28125"
+ fy="8.0709476"
+ r="4.5250292" />
+ <marker
+ inkscape:stockid="Arrow2Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Lstart-3"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path6083-8"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(1.1,0,0,1.1,1.1,0)" />
+ </marker>
+ <marker
+ id="multiplicityStart"
+ refX="0"
+ refY="0"
+ orient="auto"
+ style="overflow:visible">
+ <path
+ id="path4836"
+ d="M 0,0 -14,7 M 0,0 -14,0 M 0,0 -14,-7"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
+ </marker>
+ <marker
+ id="multiplicityEnd"
+ orient="auto"
+ refX="14"
+ refY="0"
+ style="overflow:visible">
+ <path
+ id="path6575"
+ d="M 0,0 14,7 M 0,0 14,0 M 0,0 14,-7"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
+ </marker>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient6667"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient6671"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient6675"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient6679"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient6683"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient6688"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient6690"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient6739"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ id="linearGradient5048-9">
+ <stop
+ id="stop5050-8"
+ offset="0"
+ style="stop-color:black;stop-opacity:0;" />
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0.5"
+ id="stop5056-9" />
+ <stop
+ id="stop5052-1"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ r="18.5"
+ fy="61.48016"
+ fx="13.107393"
+ cy="61.48016"
+ cx="13.107393"
+ gradientTransform="matrix(2.60832,0,0,2.21881,-25.9414,-116.551)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient10291-7"
+ xlink:href="#linearGradient6945-1"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="58.838387"
+ x2="32.625"
+ y1="68.4375"
+ x1="32.625"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient10289-0"
+ xlink:href="#linearGradient6932-5"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="25.371557"
+ x2="9.9965248"
+ y1="21.246521"
+ x1="9.9965248"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient10287-3"
+ xlink:href="#linearGradient7088-39"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="24.779999"
+ x2="9.0107775"
+ y1="19.584124"
+ x1="9.0107775"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient10285-8"
+ xlink:href="#linearGradient7059-3"
+ inkscape:collect="always" />
+ <radialGradient
+ r="15.5"
+ fy="25.349953"
+ fx="26.762928"
+ cy="25.349953"
+ cx="26.762928"
+ gradientTransform="matrix(1.49194,0,0,1.32349,-11.499,-8.80317)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient10283-8"
+ xlink:href="#linearGradient7067-2"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="35.853024"
+ x2="15.75"
+ y1="24.561808"
+ x1="15.75"
+ gradientTransform="matrix(1,0,0,1.14285,-1,-4.36135)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient10281-2"
+ xlink:href="#linearGradient7002-6"
+ inkscape:collect="always" />
+ <radialGradient
+ r="18.5"
+ fy="61.48016"
+ fx="13.107393"
+ cy="61.48016"
+ cx="13.107393"
+ gradientTransform="matrix(2.60832,0,0,-2.21881,-25.9414,168.685)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient10279-8"
+ xlink:href="#linearGradient6945-1"
+ inkscape:collect="always" />
+ <radialGradient
+ r="117.14286"
+ fy="486.64789"
+ fx="605.71429"
+ cy="486.64789"
+ cx="605.71429"
+ gradientTransform="matrix(-2.77439,0,0,1.96971,112.762,-872.885)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient10277-5"
+ xlink:href="#linearGradient5060-1"
+ inkscape:collect="always" />
+ <radialGradient
+ r="117.14286"
+ fy="486.64789"
+ fx="605.71429"
+ cy="486.64789"
+ cx="605.71429"
+ gradientTransform="matrix(2.77439,0,0,1.96971,-1891.63,-872.885)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient10275-7"
+ xlink:href="#linearGradient5060-1"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="609.50507"
+ x2="302.85715"
+ y1="366.64789"
+ x1="302.85715"
+ gradientTransform="matrix(2.77439,0,0,1.96971,-1892.18,-872.885)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient10273-9"
+ xlink:href="#linearGradient5048-2"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient7088-39">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop7090-1" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop7092-6" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient7067-2">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0"
+ id="stop7069-1" />
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="1"
+ id="stop7071-3" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient7059-3">
+ <stop
+ style="stop-color:#babdb6;stop-opacity:1"
+ offset="0"
+ id="stop7061-0" />
+ <stop
+ style="stop-color:#babdb6;stop-opacity:0"
+ offset="1"
+ id="stop7063-3" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient7002-6">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop7004-4" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop7006-5" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6932-5">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop6934-9" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop9565-8" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6945-1">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0"
+ id="stop6947-8" />
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="1"
+ id="stop6949-3" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5048-2">
+ <stop
+ id="stop5050-7"
+ offset="0"
+ style="stop-color:black;stop-opacity:0;" />
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0.5"
+ id="stop5056-0" />
+ <stop
+ id="stop5052-6"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5060-1"
+ inkscape:collect="always">
+ <stop
+ id="stop5062-9"
+ offset="0"
+ style="stop-color:black;stop-opacity:1;" />
+ <stop
+ id="stop5064-9"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient7733"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient7737"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient7741"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient7745"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient7749"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient7753"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient7755"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient7803"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4033-7"
+ id="radialGradient8019"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-9.458067e-7,-2.000005,2.003046,-1.684215e-6,-38.5731,51.01229)"
+ cx="13.006094"
+ cy="26"
+ fx="13.006094"
+ fy="26"
+ r="2" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4033-7"
+ id="radialGradient8021"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-9.458067e-7,-2.000005,2.003046,-1.684215e-6,-98.5731,1.012286)"
+ cx="13.006094"
+ cy="26"
+ fx="13.006094"
+ fy="26"
+ r="2" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4055-4"
+ id="linearGradient8023"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.571428,0,0,1,-7.714286,0)"
+ x1="17.5625"
+ y1="20.996099"
+ x2="17.5625"
+ y2="29.010038" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2158"
+ id="linearGradient8025"
+ gradientUnits="userSpaceOnUse"
+ x1="5.25"
+ y1="35.75"
+ x2="5.25"
+ y2="21.997721" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4969"
+ id="linearGradient8027"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.944444,0,0,0.999999,1.333333,0)"
+ x1="19"
+ y1="33"
+ x2="20.875"
+ y2="42" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5203"
+ id="linearGradient8029"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,1)"
+ x1="12.5"
+ y1="36.75"
+ x2="10.5"
+ y2="33.375" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5085"
+ id="linearGradient8031"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.666662,1,12.16683)"
+ x1="10"
+ y1="34.9375"
+ x2="10"
+ y2="36.65625" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5105"
+ id="linearGradient8033"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.666666,7,12.1667)"
+ x1="10"
+ y1="34.9375"
+ x2="10"
+ y2="36.65625" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5111"
+ id="linearGradient8035"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.666666,13,12.1667)"
+ x1="10"
+ y1="34.9375"
+ x2="10"
+ y2="36.65625" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5209"
+ id="linearGradient8037"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(6,1)"
+ x1="12.5"
+ y1="36.75"
+ x2="10.5"
+ y2="33.375" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5187"
+ id="linearGradient8039"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(12,1)"
+ x1="12.5"
+ y1="36.75"
+ x2="10.5"
+ y2="33.375" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8041"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8043"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8045"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8047"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8049"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8051"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8053"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8055"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8057"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8059"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8061"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8063"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8065"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4038-5"
+ id="radialGradient8067"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.04444,-0.123888,0.01467675,0.242354,-19.8863,13.61936)"
+ cx="17.04607"
+ cy="6.5931005"
+ fx="17.04607"
+ fy="6.5931005"
+ r="16.994591" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4044-9"
+ id="linearGradient8069"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994669"
+ y1="13.842071"
+ x2="23.994669"
+ y2="18.257809" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4062-9"
+ id="radialGradient8071"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.720795,-0.03898649,0.00176461,0.123227,-33.03868,12.78605)"
+ cx="16.030262"
+ cy="3.5110793"
+ fx="16.030262"
+ fy="3.5110793"
+ r="16.031172" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4033-7"
+ id="radialGradient8073"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-9.458067e-7,-2.000005,2.003046,-1.684215e-6,-38.5731,51.01229)"
+ cx="13.006094"
+ cy="26"
+ fx="13.006094"
+ fy="26"
+ r="2" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4033-7"
+ id="radialGradient8075"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-9.458067e-7,-2.000005,2.003046,-1.684215e-6,-86.5731,1.012286)"
+ cx="13.006094"
+ cy="26"
+ fx="13.006094"
+ fy="26"
+ r="2" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4055-4"
+ id="linearGradient8077"
+ gradientUnits="userSpaceOnUse"
+ x1="17.5625"
+ y1="20.996099"
+ x2="17.5625"
+ y2="29.010038" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4038-5"
+ id="linearGradient8079"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.000314,0,0,1,0.00705191,-4.000006)"
+ x1="24.414724"
+ y1="25.463402"
+ x2="24.414724"
+ y2="29.477005" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4044-9"
+ id="linearGradient8081"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.000314,0,0,1,-0.00361429,0.972209)"
+ x1="28.260429"
+ y1="8.7648172"
+ x2="28.260429"
+ y2="20.639368" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2513-0"
+ id="linearGradient8083"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.000314,0,0,1,48.01271,-4.000006)"
+ x1="24.160858"
+ y1="24.504593"
+ x2="25.189993"
+ y2="17.53454" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4070-0"
+ id="linearGradient8085"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.921903,0,0,0.877945,1.869671,-1.024713)"
+ x1="24.834204"
+ y1="24.81731"
+ x2="24.010672"
+ y2="8.361702" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2954-1"
+ id="linearGradient8087"
+ gradientUnits="userSpaceOnUse"
+ x1="21.8125"
+ y1="13.249833"
+ x2="21.8125"
+ y2="40.441154" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8089"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8091"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8093"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8095"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8097"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8099"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8101"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8103"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8105"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8107"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8109"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8111"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8113"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6256-4"
+ id="radialGradient8115"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.543409,-1.031509e-7,0,-1.136461,74.77142,27.67016)"
+ cx="21.530191"
+ cy="11.602475"
+ fx="21.530191"
+ fy="11.602475"
+ r="1.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6256-4"
+ id="radialGradient8117"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.543409,-1.031509e-7,0,-1.136461,79.13505,27.67016)"
+ cx="21.530191"
+ cy="11.602475"
+ fx="21.530191"
+ fy="11.602475"
+ r="1.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6256-4"
+ id="radialGradient8119"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.543409,-1.031509e-7,0,-1.136461,83.49869,27.67016)"
+ cx="21.530191"
+ cy="11.602475"
+ fx="21.530191"
+ fy="11.602475"
+ r="1.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6256-4"
+ id="radialGradient8121"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.331458,-1.031509e-7,0,-1.136461,70.54047,24.67016)"
+ cx="21.530191"
+ cy="11.602475"
+ fx="21.530191"
+ fy="11.602475"
+ r="1.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6256-4"
+ id="radialGradient8123"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.331458,-1.031509e-7,0,-1.136461,74.54047,24.67016)"
+ cx="21.530191"
+ cy="11.602475"
+ fx="21.530191"
+ fy="11.602475"
+ r="1.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6256-4"
+ id="radialGradient8125"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.331458,-1.031509e-7,0,-1.136461,78.54047,24.67016)"
+ cx="21.530191"
+ cy="11.602475"
+ fx="21.530191"
+ fy="11.602475"
+ r="1.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6256-4"
+ id="radialGradient8127"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.755359,-1.031509e-7,0,-1.136461,79.00237,30.67016)"
+ cx="21.530191"
+ cy="11.602475"
+ fx="21.530191"
+ fy="11.602475"
+ r="1.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6256-4"
+ id="radialGradient8129"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.755359,-1.031509e-7,0,-1.136461,83.72964,30.67016)"
+ cx="21.530191"
+ cy="11.602475"
+ fx="21.530191"
+ fy="11.602475"
+ r="1.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6256-4"
+ id="radialGradient8131"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.755359,-1.031509e-7,0,-1.136461,88.45691,30.67016)"
+ cx="21.530191"
+ cy="11.602475"
+ fx="21.530191"
+ fy="11.602475"
+ r="1.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6256-4"
+ id="radialGradient8133"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.96731,-1.031509e-7,0,-1.136461,83.23332,33.67016)"
+ cx="21.530191"
+ cy="11.602475"
+ fx="21.530191"
+ fy="11.602475"
+ r="1.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6256-4"
+ id="radialGradient8135"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.96731,-1.031509e-7,0,-1.136461,88.32422,33.67016)"
+ cx="21.530191"
+ cy="11.602475"
+ fx="21.530191"
+ fy="11.602475"
+ r="1.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6256-4"
+ id="radialGradient8137"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.96731,-1.031509e-7,0,-1.136461,93.41513,33.67016)"
+ cx="21.530191"
+ cy="11.602475"
+ fx="21.530191"
+ fy="11.602475"
+ r="1.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4033-7"
+ id="radialGradient8325"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-9.458067e-7,-2.000005,2.003046,-1.684215e-6,-38.5731,51.01229)"
+ cx="13.006094"
+ cy="26"
+ fx="13.006094"
+ fy="26"
+ r="2" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4033-7"
+ id="radialGradient8327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-9.458067e-7,-2.000005,2.003046,-1.684215e-6,-98.5731,1.012286)"
+ cx="13.006094"
+ cy="26"
+ fx="13.006094"
+ fy="26"
+ r="2" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4055-4"
+ id="linearGradient8329"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.571428,0,0,1,-7.714286,0)"
+ x1="17.5625"
+ y1="20.996099"
+ x2="17.5625"
+ y2="29.010038" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2158"
+ id="linearGradient8331"
+ gradientUnits="userSpaceOnUse"
+ x1="5.25"
+ y1="35.75"
+ x2="5.25"
+ y2="21.997721" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4969"
+ id="linearGradient8333"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.944444,0,0,0.999999,1.333333,0)"
+ x1="19"
+ y1="33"
+ x2="20.875"
+ y2="42" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5203"
+ id="linearGradient8335"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,1)"
+ x1="12.5"
+ y1="36.75"
+ x2="10.5"
+ y2="33.375" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5085"
+ id="linearGradient8337"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.666662,1,12.16683)"
+ x1="10"
+ y1="34.9375"
+ x2="10"
+ y2="36.65625" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5105"
+ id="linearGradient8339"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.666666,7,12.1667)"
+ x1="10"
+ y1="34.9375"
+ x2="10"
+ y2="36.65625" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5111"
+ id="linearGradient8341"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.666666,13,12.1667)"
+ x1="10"
+ y1="34.9375"
+ x2="10"
+ y2="36.65625" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5209"
+ id="linearGradient8343"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(6,1)"
+ x1="12.5"
+ y1="36.75"
+ x2="10.5"
+ y2="33.375" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5187"
+ id="linearGradient8345"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(12,1)"
+ x1="12.5"
+ y1="36.75"
+ x2="10.5"
+ y2="33.375" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8347"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8349"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8351"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8353"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8355"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8358"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8360"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8362"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8364"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8366"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8368"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8370"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5302"
+ id="linearGradient8372"
+ gradientUnits="userSpaceOnUse"
+ x1="33.5"
+ y1="34"
+ x2="33.5625"
+ y2="39.3125" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4038-5"
+ id="radialGradient8374"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.04444,-0.123888,0.01467675,0.242354,-19.8863,13.61936)"
+ cx="17.04607"
+ cy="6.5931005"
+ fx="17.04607"
+ fy="6.5931005"
+ r="16.994591" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4044-9"
+ id="linearGradient8376"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994669"
+ y1="13.842071"
+ x2="23.994669"
+ y2="18.257809" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4062-9"
+ id="radialGradient8378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.720795,-0.03898649,0.00176461,0.123227,-33.03868,12.78605)"
+ cx="16.030262"
+ cy="3.5110793"
+ fx="16.030262"
+ fy="3.5110793"
+ r="16.031172" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4033-7"
+ id="radialGradient8380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-9.458067e-7,-2.000005,2.003046,-1.684215e-6,-38.5731,51.01229)"
+ cx="13.006094"
+ cy="26"
+ fx="13.006094"
+ fy="26"
+ r="2" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4033-7"
+ id="radialGradient8382"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-9.458067e-7,-2.000005,2.003046,-1.684215e-6,-86.5731,1.012286)"
+ cx="13.006094"
+ cy="26"
+ fx="13.006094"
+ fy="26"
+ r="2" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4055-4"
+ id="linearGradient8384"
+ gradientUnits="userSpaceOnUse"
+ x1="17.5625"
+ y1="20.996099"
+ x2="17.5625"
+ y2="29.010038" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4038-5"
+ id="linearGradient8386"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.000314,0,0,1,0.00705191,-4.000006)"
+ x1="24.414724"
+ y1="25.463402"
+ x2="24.414724"
+ y2="29.477005" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4044-9"
+ id="linearGradient8388"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.000314,0,0,1,-0.00361429,0.972209)"
+ x1="28.260429"
+ y1="8.7648172"
+ x2="28.260429"
+ y2="20.639368" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2513-0"
+ id="linearGradient8390"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.000314,0,0,1,48.01271,-4.000006)"
+ x1="24.160858"
+ y1="24.504593"
+ x2="25.189993"
+ y2="17.53454" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4070-0"
+ id="linearGradient8392"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.921903,0,0,0.877945,1.869671,-1.024713)"
+ x1="24.834204"
+ y1="24.81731"
+ x2="24.010672"
+ y2="8.361702" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2954-1"
+ id="linearGradient8394"
+ gradientUnits="userSpaceOnUse"
+ x1="21.8125"
+ y1="13.249833"
+ x2="21.8125"
+ y2="40.441154" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8396"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8398"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8400"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8402"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8404"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8406"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8408"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8410"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8412"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8414"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8416"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8418"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4961-1"
+ id="linearGradient8420"
+ gradientUnits="userSpaceOnUse"
+ x1="23.994967"
+ y1="20.3125"
+ x2="23.994967"
+ y2="3.1169004" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6256-4"
+ id="radialGradient8422"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.543409,-1.031509e-7,0,-1.136461,74.77142,27.67016)"
+ cx="21.530191"
+ cy="11.602475"
+ fx="21.530191"
+ fy="11.602475"
+ r="1.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6256-4"
+ id="radialGradient8424"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.543409,-1.031509e-7,0,-1.136461,79.13505,27.67016)"
+ cx="21.530191"
+ cy="11.602475"
+ fx="21.530191"
+ fy="11.602475"
+ r="1.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6256-4"
+ id="radialGradient8426"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.543409,-1.031509e-7,0,-1.136461,83.49869,27.67016)"
+ cx="21.530191"
+ cy="11.602475"
+ fx="21.530191"
+ fy="11.602475"
+ r="1.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6256-4"
+ id="radialGradient8428"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.331458,-1.031509e-7,0,-1.136461,70.54047,24.67016)"
+ cx="21.530191"
+ cy="11.602475"
+ fx="21.530191"
+ fy="11.602475"
+ r="1.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6256-4"
+ id="radialGradient8430"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.331458,-1.031509e-7,0,-1.136461,74.54047,24.67016)"
+ cx="21.530191"
+ cy="11.602475"
+ fx="21.530191"
+ fy="11.602475"
+ r="1.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6256-4"
+ id="radialGradient8432"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.331458,-1.031509e-7,0,-1.136461,78.54047,24.67016)"
+ cx="21.530191"
+ cy="11.602475"
+ fx="21.530191"
+ fy="11.602475"
+ r="1.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6256-4"
+ id="radialGradient8434"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.755359,-1.031509e-7,0,-1.136461,79.00237,30.67016)"
+ cx="21.530191"
+ cy="11.602475"
+ fx="21.530191"
+ fy="11.602475"
+ r="1.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6256-4"
+ id="radialGradient8436"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.755359,-1.031509e-7,0,-1.136461,83.72964,30.67016)"
+ cx="21.530191"
+ cy="11.602475"
+ fx="21.530191"
+ fy="11.602475"
+ r="1.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6256-4"
+ id="radialGradient8438"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.755359,-1.031509e-7,0,-1.136461,88.45691,30.67016)"
+ cx="21.530191"
+ cy="11.602475"
+ fx="21.530191"
+ fy="11.602475"
+ r="1.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6256-4"
+ id="radialGradient8440"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.96731,-1.031509e-7,0,-1.136461,83.23332,33.67016)"
+ cx="21.530191"
+ cy="11.602475"
+ fx="21.530191"
+ fy="11.602475"
+ r="1.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6256-4"
+ id="radialGradient8442"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.96731,-1.031509e-7,0,-1.136461,88.32422,33.67016)"
+ cx="21.530191"
+ cy="11.602475"
+ fx="21.530191"
+ fy="11.602475"
+ r="1.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6256-4"
+ id="radialGradient8444"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.96731,-1.031509e-7,0,-1.136461,93.41513,33.67016)"
+ cx="21.530191"
+ cy="11.602475"
+ fx="21.530191"
+ fy="11.602475"
+ r="1.5" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5048"
+ id="linearGradient8606"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.77439,0,0,1.96971,-1892.18,-872.885)"
+ x1="302.85715"
+ y1="366.64789"
+ x2="302.85715"
+ y2="609.50507" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient8608"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.77439,0,0,1.96971,-1891.63,-872.885)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient8610"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.77439,0,0,1.96971,112.762,-872.885)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient8612"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.32797,0,-0.467771,1.60701,3.48927,-5.75381)"
+ cx="4.4339509"
+ cy="8.3226004"
+ fx="4.4339509"
+ fy="8.3226004"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient8614"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.32797,0,-0.467771,1.60701,3.48927,-5.75381)"
+ cx="4.4339509"
+ cy="8.3226004"
+ fx="4.4339509"
+ fy="8.3226004"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient8616"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.32797,0,-0.467771,1.60701,3.48927,-5.75381)"
+ cx="4.4339509"
+ cy="8.3226004"
+ fx="4.4339509"
+ fy="8.3226004"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient8618"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.32797,0,-0.467771,1.60701,3.48927,-5.75381)"
+ cx="4.4339509"
+ cy="8.3226004"
+ fx="4.4339509"
+ fy="8.3226004"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient8620"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.32797,0,-0.467771,1.60701,3.48927,-5.75381)"
+ cx="4.4339509"
+ cy="8.3226004"
+ fx="4.4339509"
+ fy="8.3226004"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient8622"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.32797,0,-0.467771,1.60701,3.48927,-5.75381)"
+ cx="4.4339509"
+ cy="8.3226004"
+ fx="4.4339509"
+ fy="8.3226004"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6859"
+ id="radialGradient8624"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.786718,0,0,1.44232,-51.0422,-5.89968)"
+ cx="42"
+ cy="15.814279"
+ fx="42"
+ fy="15.814279"
+ r="3" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6794"
+ id="linearGradient8626"
+ gradientUnits="userSpaceOnUse"
+ x1="42.875"
+ y1="30.9375"
+ x2="39.919209"
+ y2="51.062393" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6851"
+ id="radialGradient8628"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.821325,0,0,1.00384,-52.3505,0.173875)"
+ cx="42.8125"
+ cy="25.727272"
+ fx="42.8125"
+ fy="25.727272"
+ r="4.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6843"
+ id="radialGradient8630"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.745238,0,0,0.910847,-49.1726,3.63873)"
+ cx="42.5"
+ cy="36.307945"
+ fx="42.5"
+ fy="36.307945"
+ r="4.5" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6794"
+ id="linearGradient8632"
+ gradientUnits="userSpaceOnUse"
+ x1="42.875"
+ y1="30.9375"
+ x2="39.919209"
+ y2="51.062393" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6794"
+ id="linearGradient8634"
+ gradientUnits="userSpaceOnUse"
+ x1="42.875"
+ y1="30.9375"
+ x2="39.919209"
+ y2="51.062393" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6499"
+ id="linearGradient8636"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.88856,0,0,1,-55.4867,0)"
+ x1="17.077137"
+ y1="14.375"
+ x2="41.06271"
+ y2="56.9375" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6820"
+ id="linearGradient8638"
+ gradientUnits="userSpaceOnUse"
+ x1="24.75"
+ y1="43.927441"
+ x2="24.75"
+ y2="35.790096" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6881"
+ id="linearGradient8640"
+ gradientUnits="userSpaceOnUse"
+ x1="17.353554"
+ y1="7.9356604"
+ x2="28.035534"
+ y2="81.759773" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient8642"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52618,0,0,1.40054,-2.79535,-3.40699)"
+ cx="5.312501"
+ cy="8.1713457"
+ fx="5.312501"
+ fy="8.1713457"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient8644"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52618,0,0,1.40054,-2.79535,-3.40699)"
+ cx="5.312501"
+ cy="8.1713457"
+ fx="5.312501"
+ fy="8.1713457"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient8646"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52618,0,0,1.40054,-2.79535,-3.40699)"
+ cx="5.312501"
+ cy="8.1713457"
+ fx="5.312501"
+ fy="8.1713457"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient8648"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52618,0,0,1.40054,-2.79535,-3.40699)"
+ cx="5.312501"
+ cy="8.1713457"
+ fx="5.312501"
+ fy="8.1713457"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient8650"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52618,0,0,1.40054,-2.79535,-3.40699)"
+ cx="5.312501"
+ cy="8.1713457"
+ fx="5.312501"
+ fy="8.1713457"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient8652"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52618,0,0,1.40054,-2.79535,-3.40699)"
+ cx="5.312501"
+ cy="8.1713457"
+ fx="5.312501"
+ fy="8.1713457"
+ r="6" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5048"
+ id="linearGradient8810"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.77439,0,0,1.96971,-1892.18,-872.885)"
+ x1="302.85715"
+ y1="366.64789"
+ x2="302.85715"
+ y2="609.50507" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient8812"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.77439,0,0,1.96971,-1891.63,-872.885)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient8814"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.77439,0,0,1.96971,112.762,-872.885)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient8816"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.32797,0,-0.467771,1.60701,3.48927,-5.75381)"
+ cx="4.4339509"
+ cy="8.3226004"
+ fx="4.4339509"
+ fy="8.3226004"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient8818"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.32797,0,-0.467771,1.60701,3.48927,-5.75381)"
+ cx="4.4339509"
+ cy="8.3226004"
+ fx="4.4339509"
+ fy="8.3226004"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient8820"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.32797,0,-0.467771,1.60701,3.48927,-5.75381)"
+ cx="4.4339509"
+ cy="8.3226004"
+ fx="4.4339509"
+ fy="8.3226004"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient8822"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.32797,0,-0.467771,1.60701,3.48927,-5.75381)"
+ cx="4.4339509"
+ cy="8.3226004"
+ fx="4.4339509"
+ fy="8.3226004"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient8824"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.32797,0,-0.467771,1.60701,3.48927,-5.75381)"
+ cx="4.4339509"
+ cy="8.3226004"
+ fx="4.4339509"
+ fy="8.3226004"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient8826"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.32797,0,-0.467771,1.60701,3.48927,-5.75381)"
+ cx="4.4339509"
+ cy="8.3226004"
+ fx="4.4339509"
+ fy="8.3226004"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6859"
+ id="radialGradient8828"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.786718,0,0,1.44232,-51.0422,-5.89968)"
+ cx="42"
+ cy="15.814279"
+ fx="42"
+ fy="15.814279"
+ r="3" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6794"
+ id="linearGradient8830"
+ gradientUnits="userSpaceOnUse"
+ x1="42.875"
+ y1="30.9375"
+ x2="39.919209"
+ y2="51.062393" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6851"
+ id="radialGradient8832"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.821325,0,0,1.00384,-52.3505,0.173875)"
+ cx="42.8125"
+ cy="25.727272"
+ fx="42.8125"
+ fy="25.727272"
+ r="4.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6843"
+ id="radialGradient8834"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.745238,0,0,0.910847,-49.1726,3.63873)"
+ cx="42.5"
+ cy="36.307945"
+ fx="42.5"
+ fy="36.307945"
+ r="4.5" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6794"
+ id="linearGradient8836"
+ gradientUnits="userSpaceOnUse"
+ x1="42.875"
+ y1="30.9375"
+ x2="39.919209"
+ y2="51.062393" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6794"
+ id="linearGradient8839"
+ gradientUnits="userSpaceOnUse"
+ x1="42.875"
+ y1="30.9375"
+ x2="39.919209"
+ y2="51.062393" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6499"
+ id="linearGradient8841"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.88856,0,0,1,-55.4867,0)"
+ x1="17.077137"
+ y1="14.375"
+ x2="41.06271"
+ y2="56.9375" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6820"
+ id="linearGradient8843"
+ gradientUnits="userSpaceOnUse"
+ x1="24.75"
+ y1="43.927441"
+ x2="24.75"
+ y2="35.790096" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6881"
+ id="linearGradient8845"
+ gradientUnits="userSpaceOnUse"
+ x1="17.353554"
+ y1="7.9356604"
+ x2="28.035534"
+ y2="81.759773" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient8847"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52618,0,0,1.40054,-2.79535,-3.40699)"
+ cx="5.312501"
+ cy="8.1713457"
+ fx="5.312501"
+ fy="8.1713457"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient8849"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52618,0,0,1.40054,-2.79535,-3.40699)"
+ cx="5.312501"
+ cy="8.1713457"
+ fx="5.312501"
+ fy="8.1713457"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient8851"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52618,0,0,1.40054,-2.79535,-3.40699)"
+ cx="5.312501"
+ cy="8.1713457"
+ fx="5.312501"
+ fy="8.1713457"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient8853"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52618,0,0,1.40054,-2.79535,-3.40699)"
+ cx="5.312501"
+ cy="8.1713457"
+ fx="5.312501"
+ fy="8.1713457"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient8855"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52618,0,0,1.40054,-2.79535,-3.40699)"
+ cx="5.312501"
+ cy="8.1713457"
+ fx="5.312501"
+ fy="8.1713457"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient8857"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52618,0,0,1.40054,-2.79535,-3.40699)"
+ cx="5.312501"
+ cy="8.1713457"
+ fx="5.312501"
+ fy="8.1713457"
+ r="6" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5048"
+ id="linearGradient9015"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.77439,0,0,1.96971,-1892.18,-872.885)"
+ x1="302.85715"
+ y1="366.64789"
+ x2="302.85715"
+ y2="609.50507" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient9017"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.77439,0,0,1.96971,-1891.63,-872.885)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient9019"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.77439,0,0,1.96971,112.762,-872.885)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient9021"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.32797,0,-0.467771,1.60701,3.48927,-5.75381)"
+ cx="4.4339509"
+ cy="8.3226004"
+ fx="4.4339509"
+ fy="8.3226004"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient9023"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.32797,0,-0.467771,1.60701,3.48927,-5.75381)"
+ cx="4.4339509"
+ cy="8.3226004"
+ fx="4.4339509"
+ fy="8.3226004"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient9025"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.32797,0,-0.467771,1.60701,3.48927,-5.75381)"
+ cx="4.4339509"
+ cy="8.3226004"
+ fx="4.4339509"
+ fy="8.3226004"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient9027"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.32797,0,-0.467771,1.60701,3.48927,-5.75381)"
+ cx="4.4339509"
+ cy="8.3226004"
+ fx="4.4339509"
+ fy="8.3226004"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient9029"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.32797,0,-0.467771,1.60701,3.48927,-5.75381)"
+ cx="4.4339509"
+ cy="8.3226004"
+ fx="4.4339509"
+ fy="8.3226004"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient9031"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.32797,0,-0.467771,1.60701,3.48927,-5.75381)"
+ cx="4.4339509"
+ cy="8.3226004"
+ fx="4.4339509"
+ fy="8.3226004"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6859"
+ id="radialGradient9033"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.786718,0,0,1.44232,-51.0422,-5.89968)"
+ cx="42"
+ cy="15.814279"
+ fx="42"
+ fy="15.814279"
+ r="3" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6794"
+ id="linearGradient9035"
+ gradientUnits="userSpaceOnUse"
+ x1="42.875"
+ y1="30.9375"
+ x2="39.919209"
+ y2="51.062393" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6851"
+ id="radialGradient9037"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.821325,0,0,1.00384,-52.3505,0.173875)"
+ cx="42.8125"
+ cy="25.727272"
+ fx="42.8125"
+ fy="25.727272"
+ r="4.5" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6843"
+ id="radialGradient9039"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.745238,0,0,0.910847,-49.1726,3.63873)"
+ cx="42.5"
+ cy="36.307945"
+ fx="42.5"
+ fy="36.307945"
+ r="4.5" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6794"
+ id="linearGradient9041"
+ gradientUnits="userSpaceOnUse"
+ x1="42.875"
+ y1="30.9375"
+ x2="39.919209"
+ y2="51.062393" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6794"
+ id="linearGradient9043"
+ gradientUnits="userSpaceOnUse"
+ x1="42.875"
+ y1="30.9375"
+ x2="39.919209"
+ y2="51.062393" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6499"
+ id="linearGradient9045"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.88856,0,0,1,-55.4867,0)"
+ x1="17.077137"
+ y1="14.375"
+ x2="41.06271"
+ y2="56.9375" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6820"
+ id="linearGradient9047"
+ gradientUnits="userSpaceOnUse"
+ x1="24.75"
+ y1="43.927441"
+ x2="24.75"
+ y2="35.790096" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6881"
+ id="linearGradient9049"
+ gradientUnits="userSpaceOnUse"
+ x1="17.353554"
+ y1="7.9356604"
+ x2="28.035534"
+ y2="81.759773" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient9051"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52618,0,0,1.40054,-2.79535,-3.40699)"
+ cx="5.312501"
+ cy="8.1713457"
+ fx="5.312501"
+ fy="8.1713457"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient9053"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52618,0,0,1.40054,-2.79535,-3.40699)"
+ cx="5.312501"
+ cy="8.1713457"
+ fx="5.312501"
+ fy="8.1713457"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient9055"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52618,0,0,1.40054,-2.79535,-3.40699)"
+ cx="5.312501"
+ cy="8.1713457"
+ fx="5.312501"
+ fy="8.1713457"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient9057"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52618,0,0,1.40054,-2.79535,-3.40699)"
+ cx="5.312501"
+ cy="8.1713457"
+ fx="5.312501"
+ fy="8.1713457"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient9059"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52618,0,0,1.40054,-2.79535,-3.40699)"
+ cx="5.312501"
+ cy="8.1713457"
+ fx="5.312501"
+ fy="8.1713457"
+ r="6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6642"
+ id="radialGradient9061"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52618,0,0,1.40054,-2.79535,-3.40699)"
+ cx="5.312501"
+ cy="8.1713457"
+ fx="5.312501"
+ fy="8.1713457"
+ r="6" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.70710678"
+ inkscape:cx="633.8316"
+ inkscape:cy="339.72348"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer3"
+ showgrid="false"
+ inkscape:window-width="1440"
+ inkscape:window-height="850"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-paths="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:connector-spacing="0"
+ inkscape:snap-global="true"
+ inkscape:snap-nodes="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ fit-margin-top="5"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>GSM structure</dc:title>
+ <dc:date>2012-08-14</dc:date>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Kevin Redon</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:description>structure of a GSM network, based on 3GPP TS 23.002 version 9.2.0 Release 9</dc:description>
+ <cc:license
+ rdf:resource="http://www.gnu.org/licenses/gpl-3.0.html" />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title>icons from gnome</dc:title>
+ </cc:Agent>
+ </dc:contributor>
+ <dc:source>https://secure.wikimedia.org/wikipedia/commons/wiki/File:Gsm_structures.svg, https://commons.wikimedia.org/w/index.php?title=File:UMTS_structures.svg</dc:source>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer4"
+ inkscape:label="systems"
+ style="display:inline"
+ transform="translate(32.314741,-4.0452318)">
+ <rect
+ y="77.482117"
+ x="395.70496"
+ height="374.7666"
+ width="439.43002"
+ id="rect4794"
+ style="opacity:0.8;fill:#f2f2f2;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
+ <rect
+ style="opacity:0.8;fill:#f2f2f2;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ id="rect9929"
+ width="264.681"
+ height="374.7666"
+ x="124.24876"
+ y="77.482117" />
+ <rect
+ style="opacity:0.8;fill:#f2f2f2;fill-opacity:1;stroke:#000000;stroke-width:1.99999976;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ id="rect9937"
+ width="250.31581"
+ height="213.77448"
+ x="404.79633"
+ y="84.553185" />
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ x="-13.93904"
+ y="40.106499"
+ id="text9939"><tspan
+ sodipodi:role="line"
+ id="tspan9941"
+ x="-13.93904"
+ y="40.106499"
+ style="font-size:18px;font-weight:bold">Structure of a GSM network</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;text-anchor:end;fill:#14b514;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ x="819.04413"
+ y="445.50446"
+ id="text9960"><tspan
+ sodipodi:role="line"
+ id="tspan9962"
+ x="819.04413"
+ y="445.50446">CN: Core Network</tspan></text>
+ <rect
+ y="77.482117"
+ x="-31.314741"
+ height="374.7666"
+ width="147.48227"
+ id="rect4939"
+ style="opacity:0.8;fill:#f2f2f2;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
+ <text
+ id="text4941"
+ y="443.117"
+ x="42.344398"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#14b514;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ xml:space="preserve"><tspan
+ style="text-align:center;text-anchor:middle;fill:#14b514;fill-opacity:1"
+ y="443.117"
+ x="42.344398"
+ id="tspan4943"
+ sodipodi:role="line">MS: Mobile Station</tspan></text>
+ <rect
+ style="opacity:0.8;fill:#f2f2f2;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ id="rect4220"
+ width="134.84792"
+ height="334.27509"
+ x="-24.997562"
+ y="85.942154" />
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#14b514;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ x="42.344398"
+ y="393.40271"
+ id="text4222"><tspan
+ sodipodi:role="line"
+ id="tspan4224"
+ x="42.344398"
+ y="393.40271"
+ style="text-align:center;text-anchor:middle;fill:#14b514;fill-opacity:1">UE: User</tspan><tspan
+ sodipodi:role="line"
+ x="42.344398"
+ y="410.90271"
+ style="text-align:center;text-anchor:middle;fill:#14b514;fill-opacity:1"
+ id="tspan4226">Equipment</tspan></text>
+ <rect
+ y="92.804291"
+ x="-16.70686"
+ height="181.26508"
+ width="118.2665"
+ id="rect4228"
+ style="opacity:0.8;fill:#f2f2f2;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
+ <text
+ id="text4230"
+ y="108.40272"
+ x="42.111938"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#14b514;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ xml:space="preserve"><tspan
+ id="tspan4234"
+ style="text-align:center;text-anchor:middle;fill:#14b514;fill-opacity:1"
+ y="108.40272"
+ x="42.111938"
+ sodipodi:role="line">ME: Mobile</tspan><tspan
+ style="text-align:center;text-anchor:middle;fill:#14b514;fill-opacity:1"
+ y="125.90272"
+ x="42.111938"
+ sodipodi:role="line"
+ id="tspan4238">Equipment</tspan></text>
+ <rect
+ style="opacity:0.8;fill:#f2f2f2;fill-opacity:1;stroke:#000000;stroke-width:1.99999988;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ id="rect4240"
+ width="118.2665"
+ height="93.050789"
+ x="-16.70686"
+ y="281.37573" />
+ <text
+ id="text4242"
+ y="367.68842"
+ x="42.344398"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#14b514;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ xml:space="preserve"><tspan
+ id="tspan4246"
+ style="text-align:center;text-anchor:middle;fill:#14b514;fill-opacity:1"
+ y="367.68842"
+ x="42.344398"
+ sodipodi:role="line">ICC</tspan></text>
+ <rect
+ y="82.068649"
+ x="131.69247"
+ height="346.66492"
+ width="251.22214"
+ id="rect4812"
+ style="opacity:0.8;fill:#f2f2f2;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#14b514;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ x="260.00381"
+ y="386.3313"
+ id="text4786"><tspan
+ sodipodi:role="line"
+ x="260.00381"
+ y="386.3313"
+ style="text-align:center;text-anchor:middle;fill:#14b514;fill-opacity:1"
+ id="tspan6605">GERAN: GSM EDGE Radio</tspan><tspan
+ sodipodi:role="line"
+ x="262.23233"
+ y="403.8313"
+ style="text-align:center;text-anchor:middle;fill:#14b514;fill-opacity:1"
+ id="tspan6609">Access Network </tspan><tspan
+ sodipodi:role="line"
+ x="260.00381"
+ y="421.3313"
+ style="text-align:center;text-anchor:middle;fill:#14b514;fill-opacity:1"
+ id="tspan8650">BSS: Base Station System</tspan></text>
+ <rect
+ y="303.96808"
+ x="404.79633"
+ height="141.94052"
+ width="250.31581"
+ id="rect4796"
+ style="opacity:0.8;fill:#f2f2f2;fill-opacity:1;stroke:#000000;stroke-width:1.99999964;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
+ <text
+ id="text4798"
+ y="420.79019"
+ x="475.1969"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#14b514;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ xml:space="preserve"><tspan
+ y="420.79019"
+ x="475.1969"
+ sodipodi:role="line"
+ id="tspan6958">GPRS PS:</tspan><tspan
+ y="438.29019"
+ x="475.1969"
+ sodipodi:role="line"
+ id="tspan9141">Packet Switched</tspan></text>
+ <rect
+ y="85.152672"
+ x="667.99017"
+ height="342.9801"
+ width="160.51324"
+ id="rect4802"
+ style="opacity:0.8;fill:#f2f2f2;fill-opacity:1;stroke:#000000;stroke-width:1.99999988;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;text-anchor:end;fill:#14b514;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ x="775.86743"
+ y="422.02408"
+ id="text4804"><tspan
+ sodipodi:role="line"
+ id="tspan4806"
+ x="775.86743"
+ y="422.02408">PS &amp; CS</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#14b514;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ x="459.8942"
+ y="122.67626"
+ id="text4808"><tspan
+ sodipodi:role="line"
+ id="tspan4810"
+ x="459.8942"
+ y="122.67626">CS: Circuit</tspan><tspan
+ sodipodi:role="line"
+ x="459.8942"
+ y="140.17627"
+ id="tspan7829">Switched</tspan></text>
+ <text
+ id="text4814"
+ y="445.50446"
+ x="256.56192"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;text-anchor:end;fill:#14b514;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ xml:space="preserve"><tspan
+ y="445.50446"
+ x="256.56192"
+ id="tspan4816"
+ sodipodi:role="line"
+ style="text-align:center;text-anchor:middle;fill:#14b514;fill-opacity:1">AN: Access Network</tspan></text>
+ <rect
+ style="opacity:0.8;fill:#f2f2f2;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ id="rect7189"
+ width="147.78529"
+ height="91.250092"
+ x="673.64703"
+ y="177.07655" />
+ <rect
+ y="163.21973"
+ x="411.8674"
+ height="129.24399"
+ width="234.75948"
+ id="rect7513"
+ style="opacity:0.8;fill:#f2f2f2;fill-opacity:1;stroke:#000000;stroke-width:1.99999976;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
+ <text
+ id="text7515"
+ y="178.11395"
+ x="511.65826"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#14b514;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ xml:space="preserve"><tspan
+ y="178.11395"
+ x="511.65826"
+ sodipodi:role="line"
+ id="tspan6613">MSC: Mobile</tspan><tspan
+ y="195.61395"
+ x="511.65826"
+ sodipodi:role="line"
+ id="tspan6617">Switching Centre</tspan></text>
+ <text
+ id="text9063"
+ y="192.92146"
+ x="762.95178"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;text-anchor:end;fill:#14b514;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ xml:space="preserve"><tspan
+ y="192.92146"
+ x="762.95178"
+ id="tspan9065"
+ sodipodi:role="line">HSS</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 658.96681,208.41162 780.56154,122.72794"
+ id="path9091"
+ inkscape:connector-type="polyline"
+ inkscape:connector-curvature="0"
+ inkscape:connection-start="#g7831"
+ inkscape:connection-start-point="d4"
+ inkscape:connection-end="#g9791"
+ inkscape:connection-end-point="d4"
+ transform="translate(-32.314741,9.0452318)" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 660.42179,240.82438 120.13974,51.96275"
+ id="path9093"
+ inkscape:connector-type="polyline"
+ inkscape:connector-curvature="0"
+ inkscape:connection-start="#g7831"
+ inkscape:connection-start-point="d4"
+ inkscape:connection-end="#g8450"
+ inkscape:connection-end-point="d4"
+ transform="translate(-32.314741,9.0452318)" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 651.28218,224.99657 95.12083,-14.5978"
+ id="path9095"
+ inkscape:connector-type="polyline"
+ inkscape:connector-curvature="0"
+ inkscape:connection-start="#g7831"
+ inkscape:connection-start-point="d4"
+ inkscape:connection-end="#g8654"
+ inkscape:connection-end-point="d4"
+ transform="translate(-32.314741,9.0452318)" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="links"
+ transform="translate(32.314741,-4.0452318)"
+ style="display:inline">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;display:inline"
+ d="M 501.74336,375.23161 609.8573,495.66373"
+ id="path9554"
+ inkscape:connector-type="polyline"
+ inkscape:connection-start="#layer1-37"
+ inkscape:connection-start-point="d4"
+ inkscape:connector-curvature="0"
+ inkscape:connection-end="#g8347"
+ inkscape:connection-end-point="d4" />
+ <text
+ id="text9642"
+ y="201.99919"
+ x="83.534523"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ xml:space="preserve"><tspan
+ y="201.99919"
+ x="83.534523"
+ id="tspan9644"
+ sodipodi:role="line">Um</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;display:inline"
+ d="m 74.568315,246.65626 0.139435,51.67026"
+ id="path4280"
+ inkscape:connector-type="polyline"
+ inkscape:connection-start="#layer1-0"
+ inkscape:connection-end="#g4250"
+ transform="translate(-32.3147,9.04523)"
+ inkscape:connection-start-point="d4"
+ inkscape:connection-end-point="d4"
+ inkscape:connector-curvature="0" />
+ <text
+ id="text4288"
+ y="300.38333"
+ x="39.861164"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ xml:space="preserve"><tspan
+ y="300.38333"
+ x="39.861164"
+ id="tspan4290"
+ sodipodi:role="line">SIM-ME</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;marker-end:url(#multiplicityEnd)"
+ d="m 312.41795,234.0508 -77.67097,-5.59559"
+ id="path5872"
+ inkscape:connector-type="polyline"
+ inkscape:connector-curvature="0"
+ inkscape:connection-start="#g6494"
+ inkscape:connection-start-point="d4"
+ inkscape:connection-end="#layer1-3"
+ inkscape:connection-end-point="d4"
+ transform="translate(-32.314741,9.0452318)"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ x="252.0182"
+ y="229.85699"
+ id="text4300"><tspan
+ sodipodi:role="line"
+ id="tspan4302"
+ x="252.0182"
+ y="229.85699"
+ style="font-weight:normal">Abis</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;display:inline"
+ d="M 642.84118,483.95298 632.00077,409.12824"
+ id="path7054"
+ transform="translate(-32.3147,9.04523)"
+ inkscape:connector-type="polyline"
+ inkscape:connection-end="#g6964"
+ inkscape:connection-end-point="d4"
+ inkscape:connector-curvature="0"
+ inkscape:connection-start="#g8347"
+ inkscape:connection-start-point="d4" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ x="427.09686"
+ y="334.98663"
+ id="text7287"><tspan
+ sodipodi:role="line"
+ id="tspan7289"
+ x="427.09686"
+ y="334.98663"
+ style="font-weight:normal">Gb</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ x="536.01837"
+ y="69.967316"
+ id="text8567"><tspan
+ sodipodi:role="line"
+ id="tspan8569"
+ x="536.01837"
+ y="69.967316">PSTN</tspan></text>
+ <text
+ id="text8575"
+ y="254.29642"
+ x="428.36725"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ xml:space="preserve"><tspan
+ y="254.29642"
+ x="428.36725"
+ id="tspan8577"
+ sodipodi:role="line">A</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;marker-end:url(#multiplicityEnd)"
+ d="m 487.86628,228.783 -99.0342,2.67301"
+ id="path7710"
+ inkscape:connector-type="polyline"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc"
+ transform="translate(-32.314741,9.0452318)"
+ inkscape:connection-end-point="d4"
+ inkscape:connection-end="#g6494"
+ inkscape:connection-start-point="d4"
+ inkscape:connection-start="#g7865" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;marker-end:url(#multiplicityEnd)"
+ d="M 493.48755,329.558 398.60319,266.68192"
+ id="path8272"
+ inkscape:connector-type="polyline"
+ inkscape:connector-curvature="0"
+ inkscape:connection-start="#layer1-37"
+ inkscape:connection-start-point="d4"
+ inkscape:connection-end="#g6494"
+ inkscape:connection-end-point="d4"
+ transform="translate(-32.314741,9.0452318)"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;marker-end:url(#multiplicityEnd)"
+ d="M 215.65509,225.62678 98.291063,204.45445"
+ id="path10411"
+ inkscape:connector-type="polyline"
+ inkscape:connector-curvature="0"
+ inkscape:connection-start="#layer1-3"
+ inkscape:connection-start-point="d4"
+ inkscape:connection-end="#layer1-0"
+ inkscape:connection-end-point="d4"
+ transform="translate(-32.314741,9.0452318)"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#multiplicityEnd)"
+ d="m 460.53869,231.23086 -44.90128,0 0,-19.799 36.06244,0"
+ id="path6257"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ x="428.95303"
+ y="227.06241"
+ id="text6447"><tspan
+ sodipodi:role="line"
+ id="tspan6449"
+ x="428.95303"
+ y="227.06241">Nb</tspan></text>
+ <text
+ id="text9069"
+ y="261.37183"
+ x="539.37811"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ xml:space="preserve"><tspan
+ y="261.37183"
+ x="539.37811"
+ id="tspan9071"
+ sodipodi:role="line">Mc</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="m 539.89472,234.60649 64.05488,0"
+ id="path9067"
+ inkscape:connector-type="polyline"
+ inkscape:connector-curvature="0"
+ transform="translate(-32.314741,9.0452318)"
+ inkscape:connection-end-point="d4"
+ inkscape:connection-end="#g7831"
+ inkscape:connection-start-point="d4"
+ inkscape:connection-start="#g7865" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ x="597.87561"
+ y="198.11089"
+ id="text9081"><tspan
+ sodipodi:role="line"
+ id="tspan9083"
+ x="597.87561"
+ y="198.11089">Nc</tspan></text>
+ <text
+ id="text9087"
+ y="229.3553"
+ x="554.99481"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ xml:space="preserve"><tspan
+ y="229.3553"
+ x="554.99481"
+ id="tspan9089"
+ sodipodi:role="line">E</tspan></text>
+ <path
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path9097"
+ d="m 579.33263,232.10954 -31.28947,0 0,-17.67768 22.09708,0"
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#multiplicityEnd)" />
+ <text
+ id="text9099"
+ y="158.22612"
+ x="690.69891"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ xml:space="preserve"><tspan
+ y="158.22612"
+ x="690.69891"
+ id="tspan9101"
+ sodipodi:role="line">B</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ x="682.5672"
+ y="216.56242"
+ id="text9103"><tspan
+ sodipodi:role="line"
+ id="tspan9105"
+ x="682.5672"
+ y="216.56242">C</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 745.39144,210.93291 78.48887,0"
+ id="path9107"
+ inkscape:connector-type="polyline"
+ inkscape:connector-curvature="0"
+ inkscape:connection-start="#g8654"
+ inkscape:connection-start-point="d4"
+ inkscape:connection-end="#g8859"
+ inkscape:connection-end-point="d4"
+ transform="translate(-32.314741,9.0452318)" />
+ <text
+ id="text9113"
+ y="234.59364"
+ x="753.3327"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ xml:space="preserve"><tspan
+ y="234.59364"
+ x="753.3327"
+ id="tspan9115"
+ sodipodi:role="line">H</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 745.39144,210.93291 34.15853,-87.67083"
+ id="path9117"
+ inkscape:connector-type="polyline"
+ inkscape:connector-curvature="0"
+ inkscape:connection-start="#g8654"
+ inkscape:connection-start-point="d4"
+ inkscape:connection-end="#g9791"
+ inkscape:connection-end-point="d4"
+ transform="translate(-32.314741,9.0452318)" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ x="744.43903"
+ y="170.95403"
+ id="text9119"><tspan
+ sodipodi:role="line"
+ id="tspan9121"
+ x="744.43903"
+ y="170.95403">D</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ x="783.03674"
+ y="138.25032"
+ id="text9123"><tspan
+ sodipodi:role="line"
+ id="tspan9125"
+ x="783.03674"
+ y="138.25032">G</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#multiplicityEnd)"
+ d="m 770.42824,143.65622 24.21841,0 0,-22.27387 -25.63262,0"
+ id="path9127"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ x="702.15295"
+ y="294.41238"
+ id="text9129"><tspan
+ sodipodi:role="line"
+ id="tspan9131"
+ x="702.15295"
+ y="294.41238">F</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 547.62206,335.66345 780.56153,292.78713"
+ id="path9133"
+ inkscape:connector-type="polyline"
+ inkscape:connector-curvature="0"
+ inkscape:connection-start="#layer1-37"
+ inkscape:connection-start-point="d4"
+ inkscape:connection-end="#g8450"
+ inkscape:connection-end-point="d4"
+ transform="translate(-32.314741,9.0452318)" />
+ <text
+ id="text9135"
+ y="329.53369"
+ x="697.4563"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ xml:space="preserve"><tspan
+ y="329.53369"
+ x="697.4563"
+ id="tspan9137"
+ sodipodi:role="line">Gf,Sv</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none"
+ d="m 547.62206,344.22236 214.93955,12.76535"
+ id="path9139"
+ inkscape:connector-type="polyline"
+ inkscape:connector-curvature="0"
+ inkscape:connection-start="#layer1-37"
+ inkscape:connection-start-point="d4"
+ inkscape:connection-end="#layer1"
+ inkscape:connection-end-point="d4"
+ transform="translate(-32.314741,9.0452318)" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ x="689.9563"
+ y="357.44794"
+ id="text9143"><tspan
+ sodipodi:role="line"
+ id="tspan9145"
+ x="689.9563"
+ y="357.44794">Gd</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 547.62206,354.15208 41.72849,14.26445"
+ id="path9147"
+ inkscape:connector-type="polyline"
+ inkscape:connector-curvature="0"
+ inkscape:connection-start="#layer1-37"
+ inkscape:connection-start-point="d4"
+ inkscape:connection-end="#g6964"
+ inkscape:connection-end-point="d4"
+ transform="translate(-32.314741,9.0452318)" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ x="546.16339"
+ y="390.69666"
+ id="text9149"><tspan
+ sodipodi:role="line"
+ id="tspan9151"
+ x="546.16339"
+ y="390.69666">Gn</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 617.89951,200.66361 591.58194,145.60742"
+ id="path9079"
+ inkscape:connector-type="polyline"
+ inkscape:connector-curvature="0"
+ inkscape:connection-start="#g7831"
+ inkscape:connection-start-point="d4"
+ inkscape:connection-end="#g8139"
+ inkscape:connection-end-point="d4"
+ transform="translate(-32.314741,9.0452318)" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 745.39144,215.93291 647.60977,358.14067"
+ id="path9154"
+ inkscape:connector-type="polyline"
+ inkscape:connector-curvature="0"
+ inkscape:connection-start="#g8654"
+ inkscape:connection-start-point="d4"
+ inkscape:connection-end="#g6964"
+ inkscape:connection-end-point="d4"
+ transform="translate(-32.314741,4.0452318)" />
+ <text
+ id="text9156"
+ y="348.14029"
+ x="609.23804"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ xml:space="preserve"><tspan
+ y="348.14029"
+ x="609.23804"
+ id="tspan9158"
+ sodipodi:role="line">Gc</tspan></text>
+ <text
+ id="text9160"
+ y="436.60834"
+ x="587.06897"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ xml:space="preserve"><tspan
+ y="436.60834"
+ x="587.06897"
+ id="tspan9162"
+ sodipodi:role="line">Gp</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ x="546.05676"
+ y="413.15253"
+ id="text9164"><tspan
+ sodipodi:role="line"
+ id="tspan9166"
+ x="546.05676"
+ y="413.15253">Gi</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 592.00739,94.862956 623.70891,37.31892"
+ id="path9168"
+ inkscape:connector-type="polyline"
+ inkscape:connector-curvature="0"
+ inkscape:connection-start="#g8139"
+ inkscape:connection-start-point="d4"
+ transform="translate(-32.314741,4.0452318)"
+ inkscape:connection-end="#g8060"
+ inkscape:connection-end-point="d4" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 730.07505,37.921224 623.70891,37.31892"
+ id="path5188"
+ inkscape:connector-type="polyline"
+ inkscape:connector-curvature="0"
+ inkscape:connection-start="#layer2-5"
+ inkscape:connection-start-point="d4"
+ inkscape:connection-end="#g8060"
+ inkscape:connection-end-point="d4"
+ transform="translate(-32.314741,4.0452318)" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 738.31474,491.6185 -96.1427,0"
+ id="path5190"
+ inkscape:connector-type="polyline"
+ inkscape:connector-curvature="0"
+ inkscape:connection-start="#g5044"
+ inkscape:connection-start-point="d4"
+ inkscape:connection-end="#g8347"
+ inkscape:connection-end-point="d4"
+ transform="translate(-32.314741,4.0452318)" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="symbol"
+ transform="translate(32.314741,-4.0452318)"
+ style="display:inline">
+ <g
+ style="opacity:0.8;stroke-linecap:round;stroke-linejoin:round"
+ inkscape:label="Layer 1"
+ id="g8060"
+ transform="matrix(2.66942,0,0,2.66942,548.56257,0.0210852)">
+ <g
+ transform="matrix(1.28471,0,0,1.28471,-63.8963,19.9689)"
+ id="g8062"
+ style="stroke-linecap:round;stroke-linejoin:round;display:inline">
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.56044;color:#000000;fill:url(#radialGradient8513);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ id="path8064"
+ sodipodi:cx="62.625"
+ sodipodi:cy="4.625"
+ sodipodi:rx="10.625"
+ sodipodi:ry="3.625"
+ d="M 73.25,4.625 C 73.25,6.6270322 68.493025,8.25 62.625,8.25 56.756975,8.25 52,6.6270322 52,4.625 52,2.6229678 56.756975,1 62.625,1 68.493025,1 73.25,2.6229678 73.25,4.625 z"
+ transform="matrix(1,0,0,1.19247,-0.590821,-2.37871)" />
+ <path
+ style="fill:url(#radialGradient8515);fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:0.29159501;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 71.455637,-3.5111605 c 0,5.1118327 -4.144037,9.255822 -9.255167,9.255822 -5.111598,0 -9.2554,-4.1440362 -9.2554,-9.255822 0,-5.1115983 4.143802,-9.2551665 9.2554,-9.2551665 5.11113,0 9.255167,4.1435682 9.255167,9.2551665 l 0,0 z"
+ id="path8066"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path8068"
+ d="m 70.945908,-3.5111451 c 0,4.8302718 -3.915782,8.7460091 -8.74539,8.7460091 -4.83005,0 -8.745611,-3.9157817 -8.745611,-8.7460091 0,-4.8300503 3.915561,-8.7453899 8.745611,-8.7453899 4.829608,0 8.74539,3.9153396 8.74539,8.7453899 l 0,0 z"
+ style="opacity:0.527473;fill:none;stroke:url(#linearGradient8517);stroke-width:0.29159501;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" />
+ <image
+ style="opacity:0.75;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient8519);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ width="10.784556"
+ height="16.411282"
+ href="62169F0D.png"
+ id="image8070"
+ x="61.522053"
+ y="-11.413214" />
+ <image
+ style="opacity:0.75;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient8521);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ width="2.3444688"
+ height="2.3444688"
+ href="62169F0E.png"
+ id="image8072"
+ x="61.990948"
+ y="-10.94432" />
+ <g
+ transform="matrix(0.468894,0,0,0.468894,50.3904,-14.5737)"
+ style="fill:#9db029;fill-rule:nonzero;stroke:url(#radialGradient8525);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ id="g8074">
+ <path
+ d="m 26.0703,9.2363 -0.0732,0.4932 0.5098,0.3291 0.8711,-0.5757 -0.4355,-0.4937 -0.582,0.3296 -0.29,-0.0825"
+ id="path8076"
+ style="fill:#9db029;stroke:url(#radialGradient8523);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </g>
+ <image
+ style="opacity:0.75;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient8527);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ width="5.6267252"
+ height="4.6889377"
+ href="62169F0F.png"
+ id="image8078"
+ x="58.708691"
+ y="-12.819895" />
+ <image
+ style="opacity:0.75;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient8529);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ width="2.3444688"
+ height="2.3444688"
+ href="62169F10.png"
+ id="image8080"
+ x="62.928734"
+ y="-9.5376387" />
+ <g
+ transform="matrix(0.468894,0,0,0.468894,49.7717,-14.5737)"
+ style="fill:#9db029;fill-rule:nonzero;stroke:url(#radialGradient8533);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ id="g8082">
+ <path
+ d="m 28.833,12.7749 -0.291,-0.7412 -0.5098,0.165 0.1465,0.9043 0.6543,-0.3281"
+ id="path8084"
+ style="fill:#9db029;stroke:url(#radialGradient8531);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </g>
+ <image
+ style="opacity:0.75;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient8535);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ width="2.3444688"
+ height="3.2822564"
+ href="62169F11.png"
+ id="image8086"
+ x="63.397629"
+ y="-10.006532" />
+ <g
+ transform="matrix(0.468894,0,0,0.468894,49.9485,-14.5737)"
+ style="fill:#9db029;fill-rule:nonzero;stroke:url(#radialGradient8539);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ id="g8088">
+ <path
+ d="m 29.123,12.6089 -0.1455,0.9883 0.7998,-0.165 0.5811,-0.5752 -0.5088,-0.4941 C 29.6787,11.9078 29.4824,11.483 29.2685,11.0465 l -0.4355,0 0,0.4932 0.29,0.3291 0,0.7402"
+ id="path8090"
+ style="fill:#9db029;stroke:url(#radialGradient8537);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </g>
+ <image
+ style="opacity:0.75;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient8541);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ width="9.8467684"
+ height="17.34907"
+ href="62169F12.png"
+ id="image8092"
+ x="52.144176"
+ y="-11.413214" />
+ <image
+ style="opacity:0.75;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient8543);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ width="2.3444688"
+ height="2.3444688"
+ href="62169F13.png"
+ id="image8094"
+ x="57.770901"
+ y="-10.94432" />
+ <g
+ transform="matrix(0.468894,0,0,0.468894,50.3904,-14.5737)"
+ style="fill:#9db029;fill-rule:nonzero;stroke:url(#radialGradient8547);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ id="g8096">
+ <path
+ d="m 16.7656,9.5649 0.7266,0.4937 0.582,0 0,-0.5757 -0.7266,-0.3291 -0.582,0.4111"
+ id="path8098"
+ style="fill:#9db029;stroke:url(#radialGradient8545);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </g>
+ <image
+ style="opacity:0.75;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient8549);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ width="4.2200437"
+ height="3.2822564"
+ href="62169F14.png"
+ id="image8100"
+ x="56.36422"
+ y="-11.882107" />
+ <image
+ style="opacity:0.75;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient8551);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ width="3.7511499"
+ height="2.8133626"
+ href="2D44FCEC.png"
+ id="image8102"
+ x="57.30201"
+ y="-12.819895" />
+ <g
+ transform="matrix(0.468894,0,0,0.468894,50.9649,-14.5295)"
+ style="fill:#9db029;fill-rule:nonzero;stroke:url(#radialGradient8555);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ id="g8104">
+ <path
+ d="m 17.4922,7.887132 0.3638,-0.3286 0.7271,-0.1646 c 0.498,-0.2422 0.998,-0.4053 1.5264,-0.5762 l -0.29,-0.4937 -0.9385,0.1348 -0.4434,0.4419 -0.731,0.106 -0.6499,0.3052 -0.3159,0.1528 -0.1929,0.2583 0.9443,0.1641"
+ id="path8106"
+ style="fill:#9db029;stroke:url(#radialGradient8553);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </g>
+ <image
+ style="opacity:0.75;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient8557);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ width="2.3444688"
+ height="2.3444688"
+ href="2D44FCED.png"
+ id="image8108"
+ x="58.239796"
+ y="-8.5998507" />
+ <g
+ transform="matrix(0.468894,0,0,0.468894,50.5672,-14.3085)"
+ style="fill:#9db029;fill-rule:nonzero;stroke:url(#radialGradient8561);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ id="g8110">
+ <path
+ d="m 18.7285,14.6665 0.4365,-0.6582 -0.6548,-0.4932 0.2183,1.1514"
+ id="path8112"
+ style="fill:#9db029;stroke:url(#radialGradient8559);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </g>
+ <image
+ style="opacity:0.15750002;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient8563);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ width="10.784556"
+ height="16.411282"
+ href="2D44FCEE.png"
+ id="image8114"
+ x="61.522053"
+ y="-11.413214" />
+ <image
+ style="opacity:0.15750002;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient8565);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ width="2.3444688"
+ height="2.3444688"
+ href="2D44FCEF.png"
+ id="image8116"
+ x="61.990948"
+ y="-10.94432" />
+ <image
+ style="opacity:0.15750002;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient8567);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ width="5.6267252"
+ height="4.6889377"
+ href="2D44FCF0.png"
+ id="image8118"
+ x="58.708691"
+ y="-12.819895" />
+ <image
+ style="opacity:0.15750002;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient8569);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ width="2.3444688"
+ height="2.3444688"
+ href="2D44FCF1.png"
+ id="image8120"
+ x="62.928734"
+ y="-9.5376387" />
+ <image
+ style="opacity:0.15750002;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient8571);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ width="2.3444688"
+ height="3.2822564"
+ href="2D44FCF2.png"
+ id="image8122"
+ x="63.397629"
+ y="-10.006532" />
+ <image
+ style="opacity:0.15750002;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient8573);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ width="9.8467684"
+ height="17.34907"
+ href="2D44FCF3.png"
+ id="image8124"
+ x="52.144176"
+ y="-11.413214" />
+ <image
+ style="opacity:0.15750002;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient8575);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ width="2.3444688"
+ height="2.3444688"
+ href="2D44FCF4.png"
+ id="image8126"
+ x="57.770901"
+ y="-10.94432" />
+ <image
+ style="opacity:0.15750002;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient8577);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ width="4.2200437"
+ height="3.2822564"
+ href="2D44FCF5.png"
+ id="image8128"
+ x="56.36422"
+ y="-11.882107" />
+ <image
+ style="opacity:0.15750002;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient8579);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ width="3.7511499"
+ height="2.8133626"
+ href="2D44FD11.png"
+ id="image8130"
+ x="57.30201"
+ y="-12.819895" />
+ <image
+ style="opacity:0.15750002;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient8581);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ width="2.3444688"
+ height="2.3444688"
+ href="2D44FD12.png"
+ id="image8132"
+ x="58.239796"
+ y="-8.5998507" />
+ <g
+ transform="matrix(0.468894,0,0,0.468894,50.744,-14.6178)"
+ style="fill:url(#radialGradient8587);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient8589);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ id="g8134">
+ <path
+ d="m 17.943241,27.768799 -0.518573,-1.02672 -0.971477,-0.219726 -0.518127,-1.392215 -1.295183,0.146216 -1.100764,-0.805748 -1.166432,1.025918 0,0.161809 C 12.019842,25.55649 11.586095,25.54259 11.271922,25.349417 l -0.259287,-0.732684 0,-0.806638 -0.777056,0.07306 c 0.06487,-0.513404 0.129197,-1.025918 0.194509,-1.539233 l -0.4537956,0 -0.4529044,0.586468 -0.4537955,0.219279 -0.6478592,-0.365495 -0.064866,-0.806639 0.1296431,-0.879702 0.9719225,-0.732684 0.7770571,0 0.129197,-0.440252 0.971477,0.219279 0.712636,0.880593 0.129643,-1.467061 1.230764,-1.025918 0.45335,-1.099872 0.906699,-0.366298 0.518127,-0.732684 1.165541,-0.220973 0.583439,-0.878811 c -0.582993,0 -1.165987,0 -1.74898,0 l 1.10112,-0.513404 0.776612,0 1.101565,-0.367189 0.129643,-0.438559 -0.388929,-0.367188 -0.45335,-0.147018 0.129643,-0.43945 -0.323707,-0.659532 -0.777502,0.292343 0.129643,-0.586022 -0.9067,-0.513405 -0.71219,1.245554 0.06442,0.440252 -0.71219,0.294125 -0.453796,0.952766 -0.194064,-0.879702 -1.230763,-0.513405 -0.194509,-0.659531 1.619336,-0.953657 0.712636,-0.659532 0.06487,-0.8061926 -0.388483,-0.2201702 -0.518127,-0.073509 -0.323707,0.8066378 c 0,0 -0.54165,0.106121 -0.680916,0.140514 -1.778561,1.638938 -5.372215,5.176904 -6.2070989,11.856064 0.033057,0.154859 0.6051795,1.052827 0.6051795,1.052827 l 1.3600498,0.805747 1.3600499,0.367189 0.5834387,0.733486 0.906254,0.659531 0.518127,-0.07306 0.388484,0.174907 0,0.118327 -0.517771,1.392661 -0.388929,0.586468 0.129643,0.294125 -0.323707,1.098091 1.165987,2.126592 1.16554,1.02672 0.518573,0.732684 -0.06522,1.540125 0.38893,0.878811 -0.38893,1.686341 c 0,0 -0.03047,-0.01043 0.01916,0.158334 0.05007,0.168847 2.07527,1.293045 2.204022,1.19735 0.128307,-0.09748 0.237991,-0.182748 0.237991,-0.182748 l -0.129198,-0.365496 0.517771,-0.513404 0.194509,-0.513405 0.84228,-0.294125 0.647413,-1.613188 -0.194063,-0.438559 0.452458,-0.659532 0.971923,-0.220972 0.518572,-1.172936 -0.129643,-1.465279 0.777057,-1.099873 0.129643,-1.099873 c -1.063341,-0.527304 -2.11795,-1.07029 -3.17336,-1.613188"
+ id="path8136"
+ style="fill:url(#radialGradient8583);fill-opacity:1;stroke:url(#radialGradient8585);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(0.468894,0,0,0.468894,50.523,-14.4411)"
+ style="fill:url(#radialGradient8595);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient8597);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ id="g8138">
+ <path
+ d="m 26.8701,6.6933256 -1.8906,-0.7407 -2.1797,0.2466 -2.6904,0.7402 -0.5088,0.4941 1.6719,1.1514 0,0.6582 -0.6543,0.6582 0.873,1.7289984 0.5801,-0.3301 0.7285,-1.151399 c 1.123,-0.3471994 2.1299,-0.7406994 3.1973,-1.2343994 l 0.873,-2.2212"
+ id="path8140"
+ style="fill:url(#radialGradient8591);fill-opacity:1;stroke:url(#radialGradient8593);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(0.468894,0,0,0.468894,50.8324,-14.7504)"
+ style="fill:url(#radialGradient8603);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient8605);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ id="g8142">
+ <path
+ d="m 15.187259,9.6334723 -0.3638,0.9047987 0.7271,0 0.3638,-0.8227987 c 0.3135,-0.2217 0.6255,-0.4448 0.9448,-0.6582 l 0.7271,0.2471 c 0.4844,0.3291 0.9688,0.6582 1.4536,0.9867997 l 0.7275,-0.6576997 -0.8003,-0.3291 -0.3638,-0.7407 -1.3809,-0.1646 -0.0728,-0.4116 -0.6543,0.165 -0.2904,0.5758 -0.3638,-0.7407 -0.145,0.3291 0.0728,0.8228 -0.5816,0.494"
+ id="path8144"
+ style="fill:url(#radialGradient8599);fill-opacity:1;stroke:url(#radialGradient8601);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(0.468894,0,0,0.468894,50.1253,-14.4853)"
+ style="fill:url(#radialGradient8611);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient8613);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ id="g8146">
+ <path
+ d="m 42.893123,20.729176 c 0,0.241194 0,0 0,0 l -0.500291,0.566672 c -0.306657,-0.361377 -0.650957,-0.66528 -1.000583,-0.982679 l -0.767468,0.112931 -0.701179,-0.792625 0,0.980934 0.600735,0.454568 0.399848,0.452824 0.534354,-0.604316 c 0.134506,0.251936 0.267177,0.503872 0.400765,0.755808 l 0,0.754982 -0.601653,0.679602 -1.101026,0.755808 -0.83385,0.832105 -0.534354,-0.606152 0.267177,-0.679603 -0.533527,-0.604315 -0.901057,-1.92597 -0.767468,-0.867912 -0.200888,0.225953 0.30124,1.095701 0.566672,0.641959 c 0.323642,0.934293 0.643796,1.82727 1.0688,2.720339 0.659036,0 1.280338,-0.06996 1.934875,-0.15241 l 0,0.529029 -0.800704,1.964072 -0.734324,0.830269 -0.600735,1.285754 c 0,0.70476 0,1.40952 0,2.114188 l 0.200888,0.832105 -0.333558,0.376618 -0.735242,0.45365 -0.767468,0.641959 0.634798,0.717338 -0.867912,0.756727 0.166733,0.489549 -1.301914,1.474064 -0.866994,0 -0.734324,0.45365 -0.468064,0 0,-0.604316 -0.199052,-1.210468 c -0.258271,-0.758562 -0.527192,-1.511708 -0.800705,-2.264853 0,-0.55593 0.03314,-1.106443 0.06638,-1.662282 l 0.334477,-0.754981 -0.468065,-0.907392 0.03406,-1.246275 -0.634798,-0.717338 0.317399,-1.038318 -0.516451,-0.585953 -0.901974,0 -0.300322,-0.339801 -0.901057,0.567131 -0.366702,-0.416466 -0.834768,0.717706 C 27.577179,26.356327 27.009588,25.714368 26.44209,25.072409 l -0.667116,-1.586995 0.600735,-0.905555 -0.333558,-0.377445 0.733405,-1.738579 c 0.602571,-0.749564 1.231952,-1.468647 1.868586,-2.190392 l 1.135089,-0.302158 1.267852,-0.150666 0.867912,0.226871 1.234615,1.245357 0.434001,-0.490467 0.599817,-0.07529 1.135089,0.377445 0.867913,0 0.600735,-0.529029 0.267177,-0.377445 -0.601654,-0.377445 -1.0015,-0.07529 c -0.277919,-0.385524 -0.53619,-0.790789 -0.866168,-1.133344 l -0.334476,0.150665 -0.133589,0.982679 -0.600735,-0.679603 -0.13267,-0.756726 -0.667116,-0.527192 -0.268095,0 0.667942,0.754981 -0.267177,0.679603 -0.533527,0.150666 0.333558,-0.679603 -0.601654,-0.30124 -0.532609,-0.604315 -1.002419,0.225952 -0.13267,0.30124 -0.600735,0.378363 -0.333558,0.831187 -0.83385,0.415088 -0.36762,-0.415088 -0.399848,0 0,-1.360124 0.867912,-0.45365 0.667116,0 -0.134506,-0.52811 -0.53261,-0.529029 0.900231,-0.189228 0.500291,-0.565754 0.399847,-0.680521 0.735242,0 -0.200888,-0.52811 0.468065,-0.302158 0,0.604315 1.000582,0.225953 1.000583,-0.830268 0.06721,-0.378363 0.866994,-0.603857 c -0.313818,0.03902 -0.627636,0.06767 -0.934293,0.151125 l 0,-0.680429 0.333558,-0.755441 -0.333558,0 -0.733038,0.679603 -0.200888,0.377904 0.200888,0.529488 -0.334476,0.905555 -0.533528,-0.302158 -0.466229,-0.52811 -0.735241,0.52811 -0.267177,-1.208172 1.267851,-0.830728 0,-0.4536504 0.801531,-0.5285696 1.267851,-0.302617 0.867912,0.302617 1.601318,0.3021579 -0.399848,0.4528241 -0.867912,0 0.867912,0.906474 0.667117,-0.754982 0.202632,-0.3321814 c 0,0 2.558931,2.2934994 4.021335,4.8023004 1.462404,2.509628 2.149168,5.46758 2.149168,6.068315 z"
+ id="path8148"
+ style="fill:url(#radialGradient8607);fill-opacity:1;stroke:url(#radialGradient8609);stroke-width:0.62689197;stroke-linecap:round;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ </g>
+ <rect
+ style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none"
+ id="rect2693"
+ width="0"
+ height="0.80252302"
+ x="721.57831"
+ y="82.00975" />
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Serif"
+ x="590.7384"
+ y="49.072498"
+ id="text3810"><tspan
+ sodipodi:role="line"
+ id="tspan3812"
+ x="590.7384"
+ y="49.072498"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;font-family:DejaVu Sans">PSTN</tspan></text>
+ <g
+ id="g8347"
+ transform="matrix(0.839909,0,0,0.839909,108.91065,90.0005)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <g
+ inkscape:label="Layer 1"
+ id="layer1-5"
+ transform="matrix(1.93811,0,0,1.93811,551.368,434.746)"
+ style="opacity:0.8;stroke-linecap:round;stroke-linejoin:round">
+ <g
+ transform="matrix(1.67343,0,0,1.67343,-3.18926,-2.66854)"
+ id="g3020"
+ inkscape:label="Layer 1"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round;display:inline"
+ id="g8936"
+ transform="matrix(1.28471,0,0,1.28471,-63.8963,19.9689)">
+ <path
+ transform="matrix(1,0,0,1.19247,-0.590821,-2.37871)"
+ d="M 73.25,4.625 C 73.25,6.6270322 68.493025,8.25 62.625,8.25 56.756975,8.25 52,6.6270322 52,4.625 52,2.6229678 56.756975,1 62.625,1 68.493025,1 73.25,2.6229678 73.25,4.625 z"
+ sodipodi:ry="3.625"
+ sodipodi:rx="10.625"
+ sodipodi:cy="4.625"
+ sodipodi:cx="62.625"
+ id="path8836"
+ style="opacity:0.56044;color:#000000;fill:url(#radialGradient7184);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ sodipodi:type="arc" />
+ <path
+ id="path6495"
+ d="m 71.455637,-3.5111605 c 0,5.1118327 -4.144037,9.255822 -9.255167,9.255822 -5.111598,0 -9.2554,-4.1440362 -9.2554,-9.255822 0,-5.1115983 4.143802,-9.2551665 9.2554,-9.2551665 5.11113,0 9.255167,4.1435682 9.255167,9.2551665 l 0,0 z"
+ style="fill:url(#radialGradient7186);fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:0.28574401;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:0.527473;fill:none;stroke:url(#linearGradient7188);stroke-width:0.28574499;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 70.945908,-3.5111451 c 0,4.8302718 -3.915782,8.7460091 -8.74539,8.7460091 -4.83005,0 -8.745611,-3.9157817 -8.745611,-8.7460091 0,-4.8300503 3.915561,-8.7453899 8.745611,-8.7453899 4.829608,0 8.74539,3.9153396 8.74539,8.7453899 l 0,0 z"
+ id="path8655"
+ inkscape:connector-curvature="0" />
+ <image
+ y="-11.413214"
+ x="61.522053"
+ id="image6522"
+ href="62169F0D.png"
+ height="16.411282"
+ width="10.784556"
+ style="opacity:0.75;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient9570);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" />
+ <image
+ y="-10.94432"
+ x="61.990948"
+ id="image6530"
+ href="62169F0E.png"
+ height="2.3444688"
+ width="2.3444688"
+ style="opacity:0.75;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient9572);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" />
+ <g
+ id="g6532"
+ style="fill:#9db029;fill-rule:nonzero;stroke:url(#radialGradient9574);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ transform="matrix(0.468894,0,0,0.468894,50.3904,-14.5737)">
+ <path
+ style="fill:#9db029;stroke:url(#radialGradient7194);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round"
+ id="path6534"
+ d="m 26.0703,9.2363 -0.0732,0.4932 0.5098,0.3291 0.8711,-0.5757 -0.4355,-0.4937 -0.582,0.3296 -0.29,-0.0825"
+ inkscape:connector-curvature="0" />
+ </g>
+ <image
+ y="-12.819895"
+ x="58.708691"
+ id="image6538"
+ href="62169F0F.png"
+ height="4.6889377"
+ width="5.6267252"
+ style="opacity:0.75;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient9576);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" />
+ <image
+ y="-9.5376387"
+ x="62.928734"
+ id="image6546"
+ href="62169F10.png"
+ height="2.3444688"
+ width="2.3444688"
+ style="opacity:0.75;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient9578);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" />
+ <g
+ id="g6548"
+ style="fill:#9db029;fill-rule:nonzero;stroke:url(#radialGradient9580);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ transform="matrix(0.468894,0,0,0.468894,49.7717,-14.5737)">
+ <path
+ style="fill:#9db029;stroke:url(#radialGradient7202);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round"
+ id="path6550"
+ d="m 28.833,12.7749 -0.291,-0.7412 -0.5098,0.165 0.1465,0.9043 0.6543,-0.3281"
+ inkscape:connector-curvature="0" />
+ </g>
+ <image
+ y="-10.006532"
+ x="63.397629"
+ id="image6554"
+ href="62169F11.png"
+ height="3.2822564"
+ width="2.3444688"
+ style="opacity:0.75;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient9582);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" />
+ <g
+ id="g6556"
+ style="fill:#9db029;fill-rule:nonzero;stroke:url(#radialGradient9584);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ transform="matrix(0.468894,0,0,0.468894,49.9485,-14.5737)">
+ <path
+ style="fill:#9db029;stroke:url(#radialGradient7208);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round"
+ id="path6558"
+ d="m 29.123,12.6089 -0.1455,0.9883 0.7998,-0.165 0.5811,-0.5752 -0.5088,-0.4941 C 29.6787,11.9078 29.4824,11.483 29.2685,11.0465 l -0.4355,0 0,0.4932 0.29,0.3291 0,0.7402"
+ inkscape:connector-curvature="0" />
+ </g>
+ <image
+ y="-11.413214"
+ x="52.144176"
+ id="image6562"
+ href="62169F12.png"
+ height="17.34907"
+ width="9.8467684"
+ style="opacity:0.75;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient9586);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" />
+ <image
+ y="-10.94432"
+ x="57.770901"
+ id="image6570"
+ href="62169F13.png"
+ height="2.3444688"
+ width="2.3444688"
+ style="opacity:0.75;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient9588);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" />
+ <g
+ id="g6572"
+ style="fill:#9db029;fill-rule:nonzero;stroke:url(#radialGradient9590);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ transform="matrix(0.468894,0,0,0.468894,50.3904,-14.5737)">
+ <path
+ style="fill:#9db029;stroke:url(#radialGradient7216);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round"
+ id="path6574"
+ d="m 16.7656,9.5649 0.7266,0.4937 0.582,0 0,-0.5757 -0.7266,-0.3291 -0.582,0.4111"
+ inkscape:connector-curvature="0" />
+ </g>
+ <image
+ y="-11.882107"
+ x="56.36422"
+ id="image6578"
+ href="62169F14.png"
+ height="3.2822564"
+ width="4.2200437"
+ style="opacity:0.75;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient9592);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" />
+ <image
+ y="-12.819895"
+ x="57.30201"
+ id="image6606"
+ href="2D44FCEC.png"
+ height="2.8133626"
+ width="3.7511499"
+ style="opacity:0.75;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient9594);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" />
+ <g
+ id="g6608"
+ style="fill:#9db029;fill-rule:nonzero;stroke:url(#radialGradient9596);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ transform="matrix(0.468894,0,0,0.468894,50.9649,-14.5295)">
+ <path
+ style="fill:#9db029;stroke:url(#radialGradient7224);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round"
+ id="path6610"
+ d="m 17.4922,7.887132 0.3638,-0.3286 0.7271,-0.1646 c 0.498,-0.2422 0.998,-0.4053 1.5264,-0.5762 l -0.29,-0.4937 -0.9385,0.1348 -0.4434,0.4419 -0.731,0.106 -0.6499,0.3052 -0.3159,0.1528 -0.1929,0.2583 0.9443,0.1641"
+ inkscape:connector-curvature="0" />
+ </g>
+ <image
+ y="-8.5998507"
+ x="58.239796"
+ id="image6614"
+ href="2D44FCED.png"
+ height="2.3444688"
+ width="2.3444688"
+ style="opacity:0.75;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient9598);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" />
+ <g
+ id="g6616"
+ style="fill:#9db029;fill-rule:nonzero;stroke:url(#radialGradient9600);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ transform="matrix(0.468894,0,0,0.468894,50.5672,-14.3085)">
+ <path
+ style="fill:#9db029;stroke:url(#radialGradient7230);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round"
+ id="path6618"
+ d="m 18.7285,14.6665 0.4365,-0.6582 -0.6548,-0.4932 0.2183,1.1514"
+ inkscape:connector-curvature="0" />
+ </g>
+ <image
+ y="-11.413214"
+ x="61.522053"
+ id="image6624"
+ href="2D44FCEE.png"
+ height="16.411282"
+ width="10.784556"
+ style="opacity:0.15750002;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient9602);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" />
+ <image
+ y="-10.94432"
+ x="61.990948"
+ id="image6632"
+ href="2D44FCEF.png"
+ height="2.3444688"
+ width="2.3444688"
+ style="opacity:0.15750002;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient9604);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" />
+ <image
+ y="-12.819895"
+ x="58.708691"
+ id="image6640"
+ href="2D44FCF0.png"
+ height="4.6889377"
+ width="5.6267252"
+ style="opacity:0.15750002;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient9606);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" />
+ <image
+ y="-9.5376387"
+ x="62.928734"
+ id="image6648"
+ href="2D44FCF1.png"
+ height="2.3444688"
+ width="2.3444688"
+ style="opacity:0.15750002;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient9608);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" />
+ <image
+ y="-10.006532"
+ x="63.397629"
+ id="image6656"
+ href="2D44FCF2.png"
+ height="3.2822564"
+ width="2.3444688"
+ style="opacity:0.15750002;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient9610);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" />
+ <image
+ y="-11.413214"
+ x="52.144176"
+ id="image6664"
+ href="2D44FCF3.png"
+ height="17.34907"
+ width="9.8467684"
+ style="opacity:0.15750002;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient9612);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" />
+ <image
+ y="-10.94432"
+ x="57.770901"
+ id="image6672"
+ href="2D44FCF4.png"
+ height="2.3444688"
+ width="2.3444688"
+ style="opacity:0.15750002;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient9614);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" />
+ <image
+ y="-11.882107"
+ x="56.36422"
+ id="image6680"
+ href="2D44FCF5.png"
+ height="3.2822564"
+ width="4.2200437"
+ style="opacity:0.15750002;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient9616);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" />
+ <image
+ y="-12.819895"
+ x="57.30201"
+ id="image6708"
+ href="2D44FD11.png"
+ height="2.8133626"
+ width="3.7511499"
+ style="opacity:0.15750002;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient9618);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" />
+ <image
+ y="-8.5998507"
+ x="58.239796"
+ id="image6716"
+ href="2D44FD12.png"
+ height="2.3444688"
+ width="2.3444688"
+ style="opacity:0.15750002;fill:#ffffff;fill-rule:nonzero;stroke:url(#radialGradient9620);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" />
+ <g
+ id="g6564"
+ style="fill:url(#radialGradient9622);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient9624);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ transform="matrix(0.468894,0,0,0.468894,50.744,-14.6178)">
+ <path
+ style="fill:url(#radialGradient7254);fill-opacity:1;stroke:url(#radialGradient7256);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round"
+ id="path6566"
+ d="m 17.943241,27.768799 -0.518573,-1.02672 -0.971477,-0.219726 -0.518127,-1.392215 -1.295183,0.146216 -1.100764,-0.805748 -1.166432,1.025918 0,0.161809 C 12.019842,25.55649 11.586095,25.54259 11.271922,25.349417 l -0.259287,-0.732684 0,-0.806638 -0.777056,0.07306 c 0.06487,-0.513404 0.129197,-1.025918 0.194509,-1.539233 l -0.4537956,0 -0.4529044,0.586468 -0.4537955,0.219279 -0.6478592,-0.365495 -0.064866,-0.806639 0.1296431,-0.879702 0.9719225,-0.732684 0.7770571,0 0.129197,-0.440252 0.971477,0.219279 0.712636,0.880593 0.129643,-1.467061 1.230764,-1.025918 0.45335,-1.099872 0.906699,-0.366298 0.518127,-0.732684 1.165541,-0.220973 0.583439,-0.878811 c -0.582993,0 -1.165987,0 -1.74898,0 l 1.10112,-0.513404 0.776612,0 1.101565,-0.367189 0.129643,-0.438559 -0.388929,-0.367188 -0.45335,-0.147018 0.129643,-0.43945 -0.323707,-0.659532 -0.777502,0.292343 0.129643,-0.586022 -0.9067,-0.513405 -0.71219,1.245554 0.06442,0.440252 -0.71219,0.294125 -0.453796,0.952766 -0.194064,-0.879702 -1.230763,-0.513405 -0.194509,-0.659531 1.619336,-0.953657 0.712636,-0.659532 0.06487,-0.8061926 -0.388483,-0.2201702 -0.518127,-0.073509 -0.323707,0.8066378 c 0,0 -0.54165,0.106121 -0.680916,0.140514 -1.778561,1.638938 -5.372215,5.176904 -6.2070989,11.856064 0.033057,0.154859 0.6051795,1.052827 0.6051795,1.052827 l 1.3600498,0.805747 1.3600499,0.367189 0.5834387,0.733486 0.906254,0.659531 0.518127,-0.07306 0.388484,0.174907 0,0.118327 -0.517771,1.392661 -0.388929,0.586468 0.129643,0.294125 -0.323707,1.098091 1.165987,2.126592 1.16554,1.02672 0.518573,0.732684 -0.06522,1.540125 0.38893,0.878811 -0.38893,1.686341 c 0,0 -0.03047,-0.01043 0.01916,0.158334 0.05007,0.168847 2.07527,1.293045 2.204022,1.19735 0.128307,-0.09748 0.237991,-0.182748 0.237991,-0.182748 l -0.129198,-0.365496 0.517771,-0.513404 0.194509,-0.513405 0.84228,-0.294125 0.647413,-1.613188 -0.194063,-0.438559 0.452458,-0.659532 0.971923,-0.220972 0.518572,-1.172936 -0.129643,-1.465279 0.777057,-1.099873 0.129643,-1.099873 c -1.063341,-0.527304 -2.11795,-1.07029 -3.17336,-1.613188"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g6540"
+ style="fill:url(#radialGradient9626);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient9628);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ transform="matrix(0.468894,0,0,0.468894,50.523,-14.4411)">
+ <path
+ style="fill:url(#radialGradient7262);fill-opacity:1;stroke:url(#radialGradient7264);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round"
+ id="path6542"
+ d="m 26.8701,6.6933256 -1.8906,-0.7407 -2.1797,0.2466 -2.6904,0.7402 -0.5088,0.4941 1.6719,1.1514 0,0.6582 -0.6543,0.6582 0.873,1.7289984 0.5801,-0.3301 0.7285,-1.151399 c 1.123,-0.3471994 2.1299,-0.7406994 3.1973,-1.2343994 l 0.873,-2.2212"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g6580"
+ style="fill:url(#radialGradient9630);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient9632);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ transform="matrix(0.468894,0,0,0.468894,50.8324,-14.7504)">
+ <path
+ style="fill:url(#radialGradient7270);fill-opacity:1;stroke:url(#radialGradient7272);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round"
+ id="path6582"
+ d="m 15.187259,9.6334723 -0.3638,0.9047987 0.7271,0 0.3638,-0.8227987 c 0.3135,-0.2217 0.6255,-0.4448 0.9448,-0.6582 l 0.7271,0.2471 c 0.4844,0.3291 0.9688,0.6582 1.4536,0.9867997 l 0.7275,-0.6576997 -0.8003,-0.3291 -0.3638,-0.7407 -1.3809,-0.1646 -0.0728,-0.4116 -0.6543,0.165 -0.2904,0.5758 -0.3638,-0.7407 -0.145,0.3291 0.0728,0.8228 -0.5816,0.494"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g6626"
+ style="fill:url(#radialGradient9634);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient9636);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ transform="matrix(0.468894,0,0,0.468894,50.1253,-14.4853)">
+ <path
+ style="fill:url(#radialGradient7278);fill-opacity:1;stroke:url(#radialGradient7280);stroke-width:0.61431402;stroke-linecap:round;stroke-linejoin:round"
+ id="path6628"
+ d="m 42.893123,20.729176 c 0,0.241194 0,0 0,0 l -0.500291,0.566672 c -0.306657,-0.361377 -0.650957,-0.66528 -1.000583,-0.982679 l -0.767468,0.112931 -0.701179,-0.792625 0,0.980934 0.600735,0.454568 0.399848,0.452824 0.534354,-0.604316 c 0.134506,0.251936 0.267177,0.503872 0.400765,0.755808 l 0,0.754982 -0.601653,0.679602 -1.101026,0.755808 -0.83385,0.832105 -0.534354,-0.606152 0.267177,-0.679603 -0.533527,-0.604315 -0.901057,-1.92597 -0.767468,-0.867912 -0.200888,0.225953 0.30124,1.095701 0.566672,0.641959 c 0.323642,0.934293 0.643796,1.82727 1.0688,2.720339 0.659036,0 1.280338,-0.06996 1.934875,-0.15241 l 0,0.529029 -0.800704,1.964072 -0.734324,0.830269 -0.600735,1.285754 c 0,0.70476 0,1.40952 0,2.114188 l 0.200888,0.832105 -0.333558,0.376618 -0.735242,0.45365 -0.767468,0.641959 0.634798,0.717338 -0.867912,0.756727 0.166733,0.489549 -1.301914,1.474064 -0.866994,0 -0.734324,0.45365 -0.468064,0 0,-0.604316 -0.199052,-1.210468 c -0.258271,-0.758562 -0.527192,-1.511708 -0.800705,-2.264853 0,-0.55593 0.03314,-1.106443 0.06638,-1.662282 l 0.334477,-0.754981 -0.468065,-0.907392 0.03406,-1.246275 -0.634798,-0.717338 0.317399,-1.038318 -0.516451,-0.585953 -0.901974,0 -0.300322,-0.339801 -0.901057,0.567131 -0.366702,-0.416466 -0.834768,0.717706 C 27.577179,26.356327 27.009588,25.714368 26.44209,25.072409 l -0.667116,-1.586995 0.600735,-0.905555 -0.333558,-0.377445 0.733405,-1.738579 c 0.602571,-0.749564 1.231952,-1.468647 1.868586,-2.190392 l 1.135089,-0.302158 1.267852,-0.150666 0.867912,0.226871 1.234615,1.245357 0.434001,-0.490467 0.599817,-0.07529 1.135089,0.377445 0.867913,0 0.600735,-0.529029 0.267177,-0.377445 -0.601654,-0.377445 -1.0015,-0.07529 c -0.277919,-0.385524 -0.53619,-0.790789 -0.866168,-1.133344 l -0.334476,0.150665 -0.133589,0.982679 -0.600735,-0.679603 -0.13267,-0.756726 -0.667116,-0.527192 -0.268095,0 0.667942,0.754981 -0.267177,0.679603 -0.533527,0.150666 0.333558,-0.679603 -0.601654,-0.30124 -0.532609,-0.604315 -1.002419,0.225952 -0.13267,0.30124 -0.600735,0.378363 -0.333558,0.831187 -0.83385,0.415088 -0.36762,-0.415088 -0.399848,0 0,-1.360124 0.867912,-0.45365 0.667116,0 -0.134506,-0.52811 -0.53261,-0.529029 0.900231,-0.189228 0.500291,-0.565754 0.399847,-0.680521 0.735242,0 -0.200888,-0.52811 0.468065,-0.302158 0,0.604315 1.000582,0.225953 1.000583,-0.830268 0.06721,-0.378363 0.866994,-0.603857 c -0.313818,0.03902 -0.627636,0.06767 -0.934293,0.151125 l 0,-0.680429 0.333558,-0.755441 -0.333558,0 -0.733038,0.679603 -0.200888,0.377904 0.200888,0.529488 -0.334476,0.905555 -0.533528,-0.302158 -0.466229,-0.52811 -0.735241,0.52811 -0.267177,-1.208172 1.267851,-0.830728 0,-0.4536504 0.801531,-0.5285696 1.267851,-0.302617 0.867912,0.302617 1.601318,0.3021579 -0.399848,0.4528241 -0.867912,0 0.867912,0.906474 0.667117,-0.754982 0.202632,-0.3321814 c 0,0 2.558931,2.2934994 4.021335,4.8023004 1.462404,2.509628 2.149168,5.46758 2.149168,6.068315 z"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ </g>
+ </g>
+ <text
+ id="text3849"
+ y="486.79901"
+ x="595.91199"
+ style="font-size:25.67140007px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Serif"
+ xml:space="preserve"><tspan
+ style="font-size:16.6685009px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;font-family:DejaVu Sans"
+ y="486.79901"
+ x="595.91199"
+ id="tspan3851"
+ sodipodi:role="line">Internet</tspan></text>
+ </g>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round;display:inline"
+ id="layer1-0"
+ inkscape:label="Livello 1"
+ transform="matrix(2.38482,0,0,2.38482,-16.299968,149.577)">
+ <rect
+ ry="0.41931883"
+ rx="0.41931883"
+ y="0.5625"
+ x="30.5"
+ height="9"
+ width="2"
+ id="rect7962"
+ style="fill:url(#linearGradient8222);fill-opacity:1;fill-rule:evenodd;stroke:#555753;stroke-width:0.419319;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path7885"
+ d="M 19.5625,5.5 C 16.753603,5.5 14.5,7.070666 14.5,9.03125 l 0,24.71875 c 0,5.958578 2.476602,10.75 5.5625,10.75 l 8.875,0 C 32.023397,44.5 34.5,39.708577 34.5,33.75 l 0,-24.71875 C 34.5,7.070666 32.246396,5.5 29.4375,5.5 l -9.875,0 z"
+ style="fill:url(#radialGradient8054);fill-opacity:1;fill-rule:evenodd;stroke:#555753;stroke-width:0.419319;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" />
+ <path
+ d="M 19.5625,6 C 18.251247,6 17.065963,6.3684846 16.25,6.9375 15.434037,7.5065154 15,8.2425338 15,9.03125 L 15,33.75 c 0,2.910016 0.605563,5.525023 1.5625,7.375 0.956937,1.849977 2.215832,2.875 3.5,2.875 l 8.875,0 c 1.284168,0 2.543063,-1.025023 3.5,-2.875 C 33.394437,39.275023 34,36.660016 34,33.75 L 34,9.03125 C 34,8.2425339 33.565963,7.5065155 32.75,6.9375 31.934037,6.3684845 30.748752,6 29.4375,6 l -9.875,0 z"
+ id="path7086"
+ style="opacity:0.47761201;fill:url(#linearGradient7094);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:original="M 19.5625 5.5 C 16.753603 5.5 14.5 7.0706659 14.5 9.03125 L 14.5 33.75 C 14.5 39.708578 16.976602 44.5 20.0625 44.5 L 28.9375 44.5 C 32.023397 44.5 34.5 39.708577 34.5 33.75 L 34.5 9.03125 C 34.5 7.0706659 32.246396 5.5 29.4375 5.5 L 19.5625 5.5 z "
+ inkscape:radius="-0.5"
+ sodipodi:type="inkscape:offset" />
+ <rect
+ transform="scale(-1,1)"
+ ry="1.2856876"
+ rx="1.2856876"
+ y="9.5"
+ x="-32.499992"
+ height="13"
+ width="15.999991"
+ id="rect7990"
+ style="opacity:0.59701502;fill:none;stroke:url(#linearGradient7998);stroke-width:0.419319;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <rect
+ ry="0.85491931"
+ rx="0.85491931"
+ y="10.5"
+ x="17.5"
+ height="11"
+ width="14"
+ id="rect7889"
+ style="fill:url(#linearGradient7978);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.419319;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ sodipodi:nodetypes="csccsccsccscc"
+ id="path7896"
+ d="M 19.5625,6.5 C 18.343394,6.5 17.249773,6.842685 16.53125,7.34375 15.812727,7.844815 15.5,8.431952 15.5,9.03125 l 0,24.71875 c 0,2.841524 0.590474,5.397929 1.5,7.15625 0.909526,1.758321 2.034198,2.59375 3.0625,2.59375 l 8.875,0 c 1.028302,0 2.152974,-0.835429 3.0625,-2.59375 0.909526,-1.758321 1.5,-4.314727 1.5,-7.15625 l 0,-24.71875 C 33.5,8.431952 33.187274,7.844815 32.46875,7.34375 31.750226,6.842685 30.656606,6.5 29.4375,6.5 l -9.875,0 z"
+ style="opacity:0.86194003;fill:none;stroke:url(#linearGradient7923);stroke-width:0.419319;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path7900"
+ d="M 25.5,41.558522 25.5,40.5"
+ style="fill:none;stroke:url(#linearGradient8010);stroke-width:0.419319px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path7905"
+ d="m 23.5,41.558522 0,-1"
+ style="fill:none;stroke:url(#linearGradient8006);stroke-width:0.419319px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <rect
+ y="14"
+ x="25"
+ height="1"
+ width="1"
+ id="rect8057"
+ style="fill:#3465a4;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <rect
+ y="13"
+ x="27"
+ height="2"
+ width="1"
+ id="rect8059"
+ style="fill:#3465a4;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <rect
+ y="12"
+ x="29"
+ height="3"
+ width="1"
+ id="rect8061"
+ style="fill:#3465a4;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <g
+ transform="translate(-50,-1)"
+ id="g8067"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <rect
+ style="fill:#3465a4;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="rect8063"
+ width="1"
+ height="1"
+ x="69"
+ y="15" />
+ <rect
+ style="fill:#3465a4;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="rect8065"
+ width="1"
+ height="1"
+ x="69"
+ y="13" />
+ </g>
+ <rect
+ y="19"
+ x="19"
+ height="1"
+ width="3.0000002"
+ id="rect8074"
+ style="fill:#3465a4;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <rect
+ y="19"
+ x="27"
+ height="1"
+ width="3.0000002"
+ id="rect8076"
+ style="fill:#3465a4;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <rect
+ y="18"
+ x="18"
+ height="1"
+ width="13"
+ id="rect8078"
+ style="opacity:0.39179101;fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <rect
+ ry="0.42249677"
+ rx="0.42249677"
+ y="11.5"
+ x="18.5"
+ height="9"
+ width="12"
+ id="rect7980"
+ style="opacity:0.09328362;fill:none;stroke:url(#linearGradient8242);stroke-width:0.419319;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ sodipodi:nodetypes="ccssccssccccc"
+ id="path8355"
+ d="m 16.5,24.631663 0,3.055837 c 0,3.699177 0.399906,6.497467 1.09375,8.46875 0.346922,0.985642 0.755987,1.750468 1.3125,2.34375 0.556513,0.593282 1.302939,1 2.09375,1 l 7,0 c 0.785425,0 1.535575,-0.380226 2.09375,-0.96875 0.558175,-0.588524 0.965122,-1.392373 1.3125,-2.375 C 32.101007,34.190996 32.5,31.417446 32.5,27.6875 l 0,-3.055837 C 31.801719,23.004152 30.471547,23.5 28.96875,23.5 l -8.9375,0 c -1.85409,0 -2.556891,-0.438624 -3.53125,1.131663 z"
+ style="fill:none;stroke:url(#linearGradient7511);stroke-width:0.419319;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path8246"
+ d="M 18.0625,24.5 C 17.750875,24.5 17.5,24.750875 17.5,25.0625 l 0,0.875 c 0,0.311625 0.250875,0.5625 0.5625,0.5625 l 2.875,0 c 0.311625,0 0.5625,-0.250875 0.5625,-0.5625 l 0,-0.875 C 21.5,24.750875 21.249125,24.5 20.9375,24.5 l -0.90625,0 -1.96875,0 z m 5,0 C 22.750875,24.5 22.5,24.750875 22.5,25.0625 l 0,0.875 c 0,0.311625 0.250875,0.5625 0.5625,0.5625 l 2.875,0 c 0.311625,0 0.5625,-0.250875 0.5625,-0.5625 l 0,-0.875 C 26.5,24.750875 26.249125,24.5 25.9375,24.5 l -2.875,0 z m 5,0 C 27.750875,24.5 27.5,24.750875 27.5,25.0625 l 0,0.875 c 0,0.311625 0.250875,0.5625 0.5625,0.5625 l 2.875,0 c 0.311625,0 0.5625,-0.250875 0.5625,-0.5625 l 0,-0.875 C 31.5,24.750875 31.249125,24.5 30.9375,24.5 l -1.96875,0 -0.90625,0 z m -10,3 c -0.289811,0 -0.530702,0.218965 -0.5625,0.5 -0.0024,0.02115 0,0.04069 0,0.0625 0.003,0.379919 0.01966,0.734852 0.03125,1.09375 C 17.61642,29.358275 17.828781,29.5 18.0625,29.5 l 2.875,0 c 0.311625,0 0.5625,-0.250875 0.5625,-0.5625 l 0,-0.875 C 21.5,27.750875 21.249125,27.5 20.9375,27.5 l -2.875,0 z m 5,0 C 22.750875,27.5 22.5,27.750875 22.5,28.0625 l 0,0.875 c 0,0.311625 0.250875,0.5625 0.5625,0.5625 l 2.875,0 c 0.311625,0 0.5625,-0.250875 0.5625,-0.5625 l 0,-0.875 C 26.5,27.750875 26.249125,27.5 25.9375,27.5 l -2.875,0 z m 5,0 C 27.750875,27.5 27.5,27.750875 27.5,28.0625 l 0,0.875 c 0,0.311625 0.250875,0.5625 0.5625,0.5625 l 2.875,0 c 0.233719,0 0.446084,-0.141725 0.53125,-0.34375 0.01159,-0.361339 0.02823,-0.710723 0.03125,-1.09375 1.72e-4,-0.02187 -1.44e-4,-0.04056 0,-0.0625 -0.0318,-0.281035 -0.272689,-0.5 -0.5625,-0.5 l -2.875,0 z m -10,3 c -0.179784,0 -0.334665,0.08826 -0.4375,0.21875 0.04378,0.602024 0.08702,1.187395 0.15625,1.71875 0.08225,0.04698 0.179373,0.0625 0.28125,0.0625 l 2.875,0 c 0.311625,0 0.5625,-0.250875 0.5625,-0.5625 l 0,-0.875 C 21.5,30.750875 21.249125,30.5 20.9375,30.5 l -2.875,0 z m 5,0 C 22.750875,30.5 22.5,30.750875 22.5,31.0625 l 0,0.875 c 0,0.311625 0.250875,0.5625 0.5625,0.5625 l 2.875,0 c 0.311625,0 0.5625,-0.250875 0.5625,-0.5625 l 0,-0.875 C 26.5,30.750875 26.249125,30.5 25.9375,30.5 l -2.875,0 z m 5,0 C 27.750875,30.5 27.5,30.750875 27.5,31.0625 l 0,0.875 c 0,0.311625 0.250875,0.5625 0.5625,0.5625 l 2.875,0 c 0.101877,0 0.199002,-0.01552 0.28125,-0.0625 0.06784,-0.526351 0.113185,-1.122038 0.15625,-1.71875 C 31.272165,30.588256 31.117284,30.5 30.9375,30.5 l -2.875,0 z m -10.09375,3 c 0.134459,0.748868 0.283222,1.421542 0.46875,2 l 2.5,0 c 0.311625,0 0.5625,-0.250875 0.5625,-0.5625 l 0,-0.875 C 21.5,33.750875 21.249125,33.5 20.9375,33.5 l -2.875,0 c -0.03272,0 -0.06259,-0.0053 -0.09375,0 z m 5.09375,0 C 22.750875,33.5 22.5,33.750875 22.5,34.0625 l 0,0.875 c 0,0.311625 0.250875,0.5625 0.5625,0.5625 l 2.875,0 c 0.311625,0 0.5625,-0.250875 0.5625,-0.5625 l 0,-0.875 C 26.5,33.750875 26.249125,33.5 25.9375,33.5 l -2.875,0 z m 5,0 C 27.750875,33.5 27.5,33.750875 27.5,34.0625 l 0,0.875 c 0,0.311625 0.250875,0.5625 0.5625,0.5625 l 2.5,0 c 0.183775,-0.574728 0.335469,-1.254667 0.46875,-2 -0.03116,-0.0053 -0.06103,0 -0.09375,0 l -2.875,0 z m -9.125,3 c -0.04719,0 -0.08168,0.01236 -0.125,0.03125 C 19.410622,37.842551 20.169694,38.5 21,38.5 l 0.0625,0 c 0.233719,0 0.4375,-0.250875 0.4375,-0.5625 l 0,-0.875 C 21.5,36.750875 21.296218,36.5 21.0625,36.5 l -2.125,0 z m 4.125,0 C 22.750875,36.5 22.5,36.750875 22.5,37.0625 l 0,0.875 c 0,0.311625 0.250875,0.5625 0.5625,0.5625 l 2.875,0 c 0.311625,0 0.5625,-0.250875 0.5625,-0.5625 l 0,-0.875 C 26.5,36.750875 26.249125,36.5 25.9375,36.5 l -2.875,0 z m 4.875,0 C 27.703781,36.5 27.5,36.750875 27.5,37.0625 l 0,0.875 c 0,0.311625 0.203782,0.5625 0.4375,0.5625 L 28,38.5 c 0.835261,0 1.587757,-0.649928 2.1875,-1.96875 C 30.144179,36.512357 30.109693,36.5 30.0625,36.5 l -2.125,0 z"
+ style="fill:url(#linearGradient7532);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient7287);stroke-width:0.406739;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" />
+ <g
+ style="opacity:0.85;stroke-linecap:round;stroke-linejoin:round"
+ id="g7493">
+ <path
+ style="fill:none;stroke:url(#linearGradient7491);stroke-width:0.419319;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="M 26.5,31.0625 C 26.5,30.750875 26.249125,30.5 25.9375,30.5 l -2.875,0 C 22.750875,30.5 22.5,30.750875 22.5,31.0625 l 0,0.875"
+ id="path7193"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:url(#linearGradient7488);stroke-width:0.419319;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="M 26.5,34.0625 C 26.5,33.750875 26.249125,33.5 25.9375,33.5 l -2.875,0 C 22.750875,33.5 22.5,33.750875 22.5,34.0625 l 0,0.875"
+ id="path7195"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:url(#linearGradient7485);stroke-width:0.419319;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="M 26.5,37.0625 C 26.5,36.750875 26.249125,36.5 25.9375,36.5 l -2.875,0 C 22.750875,36.5 22.5,36.750875 22.5,37.0625 l 0,0.875"
+ id="path7197"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:url(#linearGradient7482);stroke-width:0.419319;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="M 21.5,25.0625 C 21.5,24.750875 21.249125,24.5 20.9375,24.5 l -0.90625,0 -1.96875,0 C 17.750875,24.5 17.5,24.750875 17.5,25.0625 l 0,0.875"
+ id="path7191"
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path7311"
+ d="M 26.5,25.0625 C 26.5,24.750875 26.249125,24.5 25.9375,24.5 l -2.875,0 C 22.750875,24.5 22.5,24.750875 22.5,25.0625 l 0,0.875"
+ style="fill:none;stroke:url(#linearGradient7479);stroke-width:0.419319;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ id="path7313"
+ d="M 31.5,25.0625 C 31.5,24.750875 31.249125,24.5 30.9375,24.5 l -1.96875,0 -0.90625,0 C 27.750875,24.5 27.5,24.750875 27.5,25.0625 l 0,0.875"
+ style="fill:none;stroke:url(#linearGradient7476);stroke-width:0.419319;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:url(#linearGradient7473);stroke-width:0.419319;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="M 21.5,28.0625 C 21.5,27.750875 21.249125,27.5 20.9375,27.5 l -0.90625,0 -1.96875,0 C 17.750875,27.5 17.5,27.750875 17.5,28.0625 l 0,0.875"
+ id="path7341"
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path7343"
+ d="M 26.5,28.0625 C 26.5,27.750875 26.249125,27.5 25.9375,27.5 l -2.875,0 C 22.750875,27.5 22.5,27.750875 22.5,28.0625 l 0,0.875"
+ style="fill:none;stroke:url(#linearGradient7470);stroke-width:0.419319;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ id="path7345"
+ d="M 31.5,28.0625 C 31.5,27.750875 31.249125,27.5 30.9375,27.5 l -1.96875,0 -0.90625,0 C 27.750875,27.5 27.5,27.750875 27.5,28.0625 l 0,0.875"
+ style="fill:none;stroke:url(#linearGradient7467);stroke-width:0.419319;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:url(#linearGradient7464);stroke-width:0.419319;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="M 21.5,31.0625 C 21.5,30.750875 21.249125,30.5 20.9375,30.5 l -2.875,0 c -0.179784,0 -0.334665,0.08826 -0.4375,0.21875 0.04378,0.602024 0.08702,1.187395 0.15625,1.71875"
+ id="path7353"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:url(#linearGradient7461);stroke-width:0.419319;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="M 31.375,30.71875 C 31.272165,30.588256 31.117284,30.5 30.9375,30.5 l -2.875,0 C 27.750875,30.5 27.5,30.750875 27.5,31.0625 l 0,0.875"
+ id="path7355"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:url(#linearGradient7458);stroke-width:0.419319;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 31.03125,33.5 c -0.03116,-0.0053 -0.06103,0 -0.09375,0 l -2.875,0 C 27.750875,33.5 27.5,33.750875 27.5,34.0625 l 0,0.875"
+ id="path7361"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:url(#linearGradient7455);stroke-width:0.419319;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="M 21.5,34.0625 C 21.5,33.750875 21.249125,33.5 20.9375,33.5 l -2.875,0 c -0.03272,0 -0.06259,-0.0053 -0.09375,0 0.134459,0.748868 0.283222,1.421542 0.46875,2"
+ id="path7363"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:url(#linearGradient7452);stroke-width:0.419319;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="M 21.5,37.0625 C 21.5,36.750875 21.296218,36.5 21.0625,36.5 l -2.125,0 c -0.04719,0 -0.08168,0.01236 -0.125,0.03125"
+ id="path7369"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:url(#linearGradient7449);stroke-width:0.419319;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="M 30.1875,36.53125 C 30.144179,36.512357 30.109693,36.5 30.0625,36.5 l -2.125,0 C 27.703781,36.5 27.5,36.750875 27.5,37.0625 l 0,0.875"
+ id="path7371"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="translate(0,1)"
+ style="fill:#555753;stroke-linecap:round;stroke-linejoin:round"
+ id="g7135" />
+ <path
+ id="path6112"
+ d="M 24.5,8.558522 24.5,7.5"
+ style="fill:none;stroke:url(#linearGradient6116);stroke-width:0.419319px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path6114"
+ d="m 22.5,8.558522 0,-1"
+ style="fill:none;stroke:url(#linearGradient6118);stroke-width:0.419319px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path6120"
+ d="M 26.5,8.558522 26.5,7.5"
+ style="fill:none;stroke:url(#linearGradient6122);stroke-width:0.419319px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="matrix(1.45152,0,0,1.45152,706,462.89113)"
+ id="g5044"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <g
+ id="g5046"
+ inkscape:label="Layer 1"
+ style="stroke-linecap:round;stroke-linejoin:round;display:inline">
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.2;fill:url(#radialGradient5236);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path5048"
+ sodipodi:cx="23.9375"
+ sodipodi:cy="42.6875"
+ sodipodi:rx="23.75956"
+ sodipodi:ry="5.8835783"
+ d="m 47.69706,42.6875 c 0,3.249411 -10.637518,5.883578 -23.75956,5.883578 -13.122042,0 -23.75955963,-2.634167 -23.75955963,-5.883578 0,-3.249411 10.63751763,-5.883578 23.75955963,-5.883578 13.122042,0 23.75956,2.634167 23.75956,5.883578 z"
+ transform="matrix(0.968245,0,0,0.863797,1.44763,-0.747418)" />
+ <g
+ id="g5050"
+ transform="translate(-25,0)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ style="opacity:0.20786498;fill:none;stroke:url(#linearGradient5238);stroke-width:0.688932;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+ d="M 66.13085,41.787912 C 57.847275,31.229854 73.566661,39.498791 71.897463,35.839689 70.26171,32.253903 51.343195,36.513864 53.3325,30.513864"
+ id="path5052"
+ sodipodi:nodetypes="czz"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="czz"
+ id="path5054"
+ d="M 65.675044,41.213388 C 57.656634,30.125 72.913568,39.404152 71.161327,35 69.172021,30 52.551603,36.027728 53.480248,30.116116"
+ style="fill:none;stroke:#729fcf;stroke-width:0.688932;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5056"
+ transform="matrix(0.811017,0,0,0.811017,4.53606,4.14478)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ style="color:#000000;fill:url(#linearGradient5240);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.84946603;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m 14.375479,32.558794 c 0,0 1.216876,4.898976 -3.856329,4.944966 -2.4302757,0.02175 -1.9324777,4.006021 -1.9324777,4.006021 l 30.8464667,-0.03115 c 0,0 0.418438,-3.867241 -2.022217,-3.912581 -4.987467,-0.09147 -3.810529,-5.06955 -3.810529,-5.06955 l -19.224914,0.06229 z"
+ id="path5058"
+ sodipodi:nodetypes="csccscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:0.5;fill:url(#linearGradient5242);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 13.926195,33.027451 c 0.08401,2.172549 -0.28454,2.911443 -1.640464,3.675231 L 36,38 c -0.952992,-1.168628 -2.339163,-2.933334 -1.961117,-4.988235 l -20.112688,0.01569 z"
+ id="path5060"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path5062"
+ d="m 10.436202,38.661601 c 6.564263,0.002 27.126435,0 27.126435,0"
+ style="fill:none;stroke:#8d8d8f;stroke-width:0.84946603px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.43902402"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#ffffff;stroke-width:0.84946603px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ d="m 9.647928,39.660187 c 6.706693,0.002 28.719861,0 28.719861,0"
+ id="path5064"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <rect
+ style="fill:none;stroke:none"
+ id="rect5066"
+ width="48"
+ height="48"
+ x="0"
+ y="-2.84375" />
+ <path
+ style="fill:url(#linearGradient5244);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.688932;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
+ d="m 4.8882799,0.5019965 38.1022591,0 c 2.023707,0 3.498537,1.4255519 3.498537,3.6208005 l 0.01094,25.165237 C 46.500019,30.977609 45.97204,31.5 44.466781,31.5 L 3.5326624,31.481093 C 2.3542134,31.452343 1.5154744,30.987161 1.4996519,29.464764 L 1.5148181,3.935329 c 0,-1.7712136 1.5383348,-3.4333325 3.3734618,-3.4333325 z"
+ id="path5068"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="fill:url(#radialGradient5246);fill-opacity:1;fill-rule:evenodd;stroke:#204a87;stroke-width:0.688932px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ id="rect5070"
+ width="37"
+ height="23"
+ x="5.5"
+ y="4.5" />
+ <path
+ style="opacity:0.75;fill:url(#linearGradient5248);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="M 6,4.9921565 6,23 C 22.444445,21.645751 28.598693,12.887581 41.968627,11.972548 l 1e-6,-7.011764 L 6,4.9921565 z"
+ id="path5072"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <rect
+ y="-2.84375"
+ x="0"
+ height="48"
+ width="48"
+ id="rect5074"
+ style="fill:none;stroke:none" />
+ <rect
+ style="fill:none;stroke:none"
+ id="rect5076"
+ width="48"
+ height="48"
+ x="0"
+ y="-2.84375" />
+ <path
+ style="fill:none;stroke:#ffffff;stroke-width:0.68893099;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
+ d="m 4.9838392,1.4949272 c -1.2994875,0 -2.4838385,1.2815188 -2.4838385,2.5365102 L 2.5,29.355478 c 0.00622,0.597159 0.1447546,0.782572 0.2794318,0.897058 0.1346773,0.114486 0.419191,0.204825 0.9003915,0.216531 L 44.352677,30.5 c 0.646964,0 0.851442,-0.1 0.931439,-0.185598 0.08,-0.0856 0.217336,-0.396637 0.217336,-1.144523 l 10e-7,-24.9528433 c 0,-1.7888213 -1.004252,-2.7221085 -2.60803,-2.7221085 l -37.9095838,0 z"
+ id="path5078"
+ sodipodi:nodetypes="cccsccscccc"
+ inkscape:connector-curvature="0" />
+ <g
+ style="opacity:0.4;stroke-linecap:round;stroke-linejoin:round"
+ id="g5080"
+ transform="translate(0,13)">
+ <rect
+ style="fill:url(#radialGradient5250);fill-opacity:1;stroke:none"
+ id="rect5082"
+ width="4"
+ height="4.5"
+ x="0"
+ y="30.5" />
+ <rect
+ style="fill:url(#radialGradient5252);fill-opacity:1;stroke:none;display:inline"
+ id="rect5084"
+ width="4"
+ height="4.5"
+ x="-48"
+ y="-35"
+ transform="scale(-1,-1)" />
+ <rect
+ style="fill:url(#linearGradient5254);fill-opacity:1;stroke:none"
+ id="rect5086"
+ width="40"
+ height="4.5"
+ x="4"
+ y="30.5" />
+ </g>
+ <g
+ id="g5088"
+ transform="translate(48,0)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ style="fill:url(#linearGradient5256);fill-opacity:1;stroke:#888a85;stroke-width:0.68893403;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
+ d="m -42.6875,40.49166 c -0.967886,0 -1.847763,0.285348 -2.4375,1.247229 l -1.8125,2.918046 c -0.808653,1.054721 -0.156385,1.859077 2.59375,1.859077 l 40.4375,0 c 2.750135,0 3.402403,-0.804356 2.59375,-1.859077 L -3.125,41.738889 C -3.714737,40.777008 -4.594614,40.49166 -5.5625,40.49166 l -37.125,0 z"
+ id="path5090"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(1,0,0,0.666668,-48,15.8333)"
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="-1"
+ inkscape:original="M 5.3125 37.5 C 4.344614 37.5 3.4647369 37.878926 2.875 39.15625 L 1.0625 43.03125 C 0.253847 44.43186 0.90611493 45.5 3.65625 45.5 L 44.09375 45.5 C 46.843885 45.5 47.496153 44.43186 46.6875 43.03125 L 44.875 39.15625 C 44.285263 37.878926 43.405386 37.5 42.4375 37.5 L 5.3125 37.5 z "
+ style="fill:none;stroke:#ffffff;stroke-width:0.843768;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;display:inline"
+ id="path5092"
+ d="m 5.3125,38.5 c -0.7068869,0 -1.0686379,0.06052 -1.53125,1.0625 a 1.0001,1.0001 0 0 1 0,0.03125 l -1.8125,3.875 a 1.0001,1.0001 0 0 1 -0.03125,0.0625 c -0.1455374,0.252075 -0.1851561,0.42743 -0.1875,0.5 -0.00234,0.07257 -0.035314,0.05527 0,0.09375 0.070629,0.07696 0.6606476,0.375 1.90625,0.375 l 40.4375,0 c 1.245602,0 1.835621,-0.298042 1.90625,-0.375 0.03531,-0.03848 0.0023,-0.02118 0,-0.09375 -0.0023,-0.07257 -0.04196,-0.247925 -0.1875,-0.5 a 1.0001,1.0001 0 0 1 -0.03125,-0.0625 l -1.8125,-3.875 a 1.0001,1.0001 0 0 1 0,-0.03125 C 43.506138,38.560518 43.144387,38.5 42.4375,38.5 l -37.125,0 z" />
+ </g>
+ <g
+ transform="translate(-102,13.1809)"
+ inkscape:label="Shadow"
+ id="g5094"
+ style="stroke-linecap:round;stroke-linejoin:round" />
+ <g
+ id="g5096"
+ inkscape:label="Shadow"
+ transform="translate(-102,28.2469)"
+ style="stroke-linecap:round;stroke-linejoin:round" />
+ <g
+ id="g5098"
+ inkscape:label="Lavoro"
+ style="stroke-linecap:round;stroke-linejoin:round;display:inline"
+ transform="translate(-102,28.2469)" />
+ <g
+ id="g5100"
+ transform="translate(48,0)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ style="color:#000000;fill:url(#linearGradient5258);fill-opacity:1;fill-rule:nonzero;stroke:#babdb6;stroke-width:0.68893099;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m -41.565234,39.500963 c -0.003,0.0031 0.0028,0.02359 0,0.026 -0.01467,0.0041 -0.05022,0.02021 -0.06523,0.02601 -0.005,0.0021 -0.02762,-0.0023 -0.03262,0 -0.005,0.0025 -0.02769,0.0233 -0.03262,0.026 -0.0097,0.0058 -0.02321,0.01943 -0.03262,0.026 -0.0046,0.0035 -0.02815,0.02233 -0.03262,0.02601 -0.0043,0.0039 -0.02844,0.02193 -0.03262,0.02601 -0.06487,0.075 -0.133186,0.205396 -0.228319,0.364081 l -2.22755,3.952895 c 0,0.0049 -2.28e-4,0.02105 0,0.026 4.53e-4,0.005 -6.74e-4,0.02104 0,0.026 8.91e-4,0.005 -0.0011,0.02106 0,0.02601 0.0026,0.0099 0.02917,0.04222 0.03262,0.05201 0.0019,0.0049 -0.0021,0.02117 0,0.02601 0.0069,0.01439 0.02403,0.03804 0.03262,0.05201 0.0091,0.0138 0.02197,0.03881 0.03262,0.05201 0.0037,0.0043 0.02875,0.02176 0.03262,0.026 0.004,0.0042 0.02844,0.02194 0.03262,0.02601 0.02595,0.02385 0.06703,0.05818 0.09785,0.07802 0.0053,0.0032 0.02724,0.02296 0.03262,0.02601 0.0165,0.0079 0.04736,0.01884 0.06523,0.026 0.120228,0.04402 0.279283,0.07802 0.42402,0.07802 l 23.114643,0 -0.09785,-4.993121 -20.789242,-6e-6 c -0.06851,0 -0.143762,-0.0019 -0.195701,0 -0.01215,5.7e-5 -0.05203,5.11e-4 -0.06523,0 -0.004,2.5e-5 -0.02896,-2.14e-4 -0.03262,0 -0.0028,0.0024 -0.02957,-0.0031 -0.03262,0 z m 23.039809,6e-6 0.09785,1.664375 5.642726,0 -0.260935,-1.664375 -5.479641,0 z m 7.436655,0 1.17421,4.993121 5.218705,0 c 0.144736,0 0.303792,-0.034 0.42402,-0.07802 0.017877,-0.0072 0.048735,-0.0181 0.065233,-0.026 0.00538,-0.003 0.027357,-0.02283 0.032617,-0.02601 0.030821,-0.01983 0.071897,-0.05416 0.097851,-0.07802 0.00418,-0.0041 0.028592,-0.02185 0.032616,-0.02601 0.00387,-0.0042 0.028906,-0.02168 0.032618,-0.026 0.010648,-0.0132 0.023496,-0.03821 0.032617,-0.05201 0.00859,-0.01397 0.025688,-0.03762 0.032617,-0.05201 0.00212,-0.0048 -0.00192,-0.02114 0,-0.02601 0.00345,-0.0098 0.029987,-0.04214 0.032617,-0.05201 0.0011,-0.005 -8.92e-4,-0.02105 0,-0.02601 6.73e-4,-0.005 -4.54e-4,-0.02104 0,-0.026 2.29e-4,-0.005 0,-0.02106 0,-0.026 l -1.826015,-3.9529 C -5.834197,39.862396 -5.902512,39.732002 -5.967383,39.656999 -5.971557,39.652925 -5.99567,39.634868 -6,39.630993 c -0.00447,-0.0037 -0.028021,-0.02252 -0.032617,-0.02601 -0.00941,-0.0066 -0.022876,-0.02021 -0.032617,-0.026 -0.00493,-0.0027 -0.027643,-0.0235 -0.032616,-0.026 -0.005,-0.0023 -0.027608,0.0021 -0.032617,0 -0.015014,-0.0058 -0.050564,-0.02192 -0.065234,-0.02601 -0.016117,-0.0031 -0.041567,-0.02056 -0.065235,-0.026 -0.011875,-0.0025 -0.054353,0.0014 -0.065233,0 -0.05194,-0.0019 -0.127187,0 -0.195701,0 l -4.5669,6e-6 z m -6.131978,3.328747 -1.043741,1.664374 6.001511,0 -1.304677,-1.664374 -3.653093,0 z"
+ id="path5102"
+ sodipodi:nodetypes="csssssssccssssssssssssccccssscccccccccssssssssssssccsssssssssccccccc"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g5104"
+ style="fill:url(#radialGradient5380);fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-48,-0.00589)">
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="39"
+ x="7"
+ height="1"
+ width="1"
+ id="rect5106"
+ style="color:#000000;fill:url(#radialGradient5260);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="39"
+ x="9"
+ height="1"
+ width="1"
+ id="rect5108"
+ style="color:#000000;fill:url(#radialGradient5262);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="39"
+ x="11"
+ height="1"
+ width="1"
+ id="rect5110"
+ style="color:#000000;fill:url(#radialGradient5264);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="39"
+ x="13"
+ height="1"
+ width="1"
+ id="rect5112"
+ style="color:#000000;fill:url(#radialGradient5266);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="39"
+ x="15"
+ height="1"
+ width="1"
+ id="rect5114"
+ style="color:#000000;fill:url(#radialGradient5268);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="39"
+ x="17"
+ height="1"
+ width="1"
+ id="rect5116"
+ style="color:#000000;fill:url(#radialGradient5270);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="39"
+ x="19"
+ height="1"
+ width="1"
+ id="rect5118"
+ style="color:#000000;fill:url(#radialGradient5272);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="39"
+ x="21"
+ height="1"
+ width="1"
+ id="rect5120"
+ style="color:#000000;fill:url(#radialGradient5274);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="40"
+ x="6"
+ height="1"
+ width="1"
+ id="rect5122"
+ style="color:#000000;fill:url(#radialGradient5276);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="40"
+ x="8"
+ height="1"
+ width="1"
+ id="rect5124"
+ style="color:#000000;fill:url(#radialGradient5278);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="40"
+ x="10"
+ height="1"
+ width="1"
+ id="rect5126"
+ style="color:#000000;fill:url(#radialGradient5280);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="40"
+ x="12"
+ height="1"
+ width="1"
+ id="rect5128"
+ style="color:#000000;fill:url(#radialGradient5282);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="40"
+ x="14"
+ height="1"
+ width="1"
+ id="rect5130"
+ style="color:#000000;fill:url(#radialGradient5284);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="40"
+ x="16"
+ height="1"
+ width="1"
+ id="rect5132"
+ style="color:#000000;fill:url(#radialGradient5286);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="40"
+ x="18"
+ height="1"
+ width="1"
+ id="rect5134"
+ style="color:#000000;fill:url(#radialGradient5288);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="40"
+ x="20"
+ height="1"
+ width="1"
+ id="rect5136"
+ style="color:#000000;fill:url(#radialGradient5290);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="41"
+ x="7"
+ height="1"
+ width="1"
+ id="rect5138"
+ style="color:#000000;fill:url(#radialGradient5292);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="41"
+ x="9"
+ height="1"
+ width="1"
+ id="rect5140"
+ style="color:#000000;fill:url(#radialGradient5294);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="41"
+ x="11"
+ height="1"
+ width="1"
+ id="rect5142"
+ style="color:#000000;fill:url(#radialGradient5296);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="41"
+ x="13"
+ height="1"
+ width="1"
+ id="rect5144"
+ style="color:#000000;fill:url(#radialGradient5298);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="41"
+ x="15"
+ height="1"
+ width="1"
+ id="rect5146"
+ style="color:#000000;fill:url(#radialGradient5300);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="41"
+ x="17"
+ height="1"
+ width="1"
+ id="rect5148"
+ style="color:#000000;fill:url(#radialGradient5302);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="41"
+ x="19"
+ height="1"
+ width="1"
+ id="rect5150"
+ style="color:#000000;fill:url(#radialGradient5304);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="41"
+ x="21"
+ height="1"
+ width="1"
+ id="rect5152"
+ style="color:#000000;fill:url(#radialGradient5306);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="42"
+ x="6"
+ height="1"
+ width="1"
+ id="rect5154"
+ style="color:#000000;fill:url(#radialGradient5308);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="42"
+ x="8"
+ height="1"
+ width="1"
+ id="rect5156"
+ style="color:#000000;fill:url(#radialGradient5310);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="42"
+ x="10"
+ height="1"
+ width="1"
+ id="rect5158"
+ style="color:#000000;fill:url(#radialGradient5312);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="42"
+ x="12"
+ height="1"
+ width="1"
+ id="rect5160"
+ style="color:#000000;fill:url(#radialGradient5314);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="42"
+ x="14"
+ height="1"
+ width="1"
+ id="rect5162"
+ style="color:#000000;fill:url(#radialGradient5316);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="42"
+ x="16"
+ height="1"
+ width="1"
+ id="rect5164"
+ style="color:#000000;fill:url(#radialGradient5318);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="42"
+ x="18"
+ height="1"
+ width="1"
+ id="rect5166"
+ style="color:#000000;fill:url(#radialGradient5320);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="42"
+ x="20"
+ height="1"
+ width="1"
+ id="rect5168"
+ style="color:#000000;fill:url(#radialGradient5322);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="43"
+ x="5"
+ height="1"
+ width="1"
+ id="rect5170"
+ style="color:#000000;fill:url(#radialGradient5324);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="43"
+ x="7"
+ height="1"
+ width="1"
+ id="rect5172"
+ style="color:#000000;fill:url(#radialGradient5326);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="42"
+ x="22"
+ height="1"
+ width="1"
+ id="rect5174"
+ style="color:#000000;fill:url(#radialGradient5328);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="41"
+ x="23"
+ height="1"
+ width="1"
+ id="rect5176"
+ style="color:#000000;fill:url(#radialGradient5330);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="40"
+ x="22"
+ height="1"
+ width="1"
+ id="rect5178"
+ style="color:#000000;fill:url(#radialGradient5332);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="39"
+ x="23"
+ height="1"
+ width="1"
+ id="rect5180"
+ style="color:#000000;fill:url(#radialGradient5334);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="40"
+ x="24"
+ height="1"
+ width="1"
+ id="rect5182"
+ style="color:#000000;fill:url(#radialGradient5336);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="39"
+ x="25"
+ height="1"
+ width="1"
+ id="rect5184"
+ style="color:#000000;fill:url(#radialGradient5338);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="40"
+ x="26"
+ height="1"
+ width="1"
+ id="rect5186"
+ style="color:#000000;fill:url(#radialGradient5340);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="41"
+ x="25"
+ height="1"
+ width="1"
+ id="rect5188"
+ style="color:#000000;fill:url(#radialGradient5342);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="42"
+ x="24"
+ height="1"
+ width="1"
+ id="rect5190"
+ style="color:#000000;fill:url(#radialGradient5344);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="42"
+ x="26"
+ height="1"
+ width="1"
+ id="rect5192"
+ style="color:#000000;fill:url(#radialGradient5346);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="43"
+ x="25"
+ height="1"
+ width="1"
+ id="rect5194"
+ style="color:#000000;fill:url(#radialGradient5348);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="43"
+ x="23"
+ height="1"
+ width="1"
+ id="rect5196"
+ style="color:#000000;fill:url(#radialGradient5350);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="43"
+ x="31"
+ height="1"
+ width="1"
+ id="rect5198"
+ style="color:#000000;fill:url(#radialGradient5352);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="43"
+ x="33"
+ height="1"
+ width="1"
+ id="rect5200"
+ style="color:#000000;fill:url(#radialGradient5354);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="39"
+ x="31"
+ height="1"
+ width="1"
+ id="rect5202"
+ style="color:#000000;fill:url(#radialGradient5356);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="39"
+ x="33"
+ height="1"
+ width="1"
+ id="rect5204"
+ style="color:#000000;fill:url(#radialGradient5358);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="39"
+ x="37"
+ height="1"
+ width="1"
+ id="rect5206"
+ style="color:#000000;fill:url(#radialGradient5360);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="40"
+ x="38"
+ height="1"
+ width="1"
+ id="rect5208"
+ style="color:#000000;fill:url(#radialGradient5362);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="39"
+ x="39"
+ height="1"
+ width="1"
+ id="rect5210"
+ style="color:#000000;fill:url(#radialGradient5364);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="41"
+ x="41"
+ height="1"
+ width="1"
+ id="rect5212"
+ style="color:#000000;fill:url(#radialGradient5366);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="41"
+ x="39"
+ height="1"
+ width="1"
+ id="rect5214"
+ style="color:#000000;fill:url(#radialGradient5368);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="42"
+ x="38"
+ height="1"
+ width="1"
+ id="rect5216"
+ style="color:#000000;fill:url(#radialGradient5370);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="42"
+ x="40"
+ height="1"
+ width="1"
+ id="rect5218"
+ style="color:#000000;fill:url(#radialGradient5372);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="43"
+ x="41"
+ height="1"
+ width="1"
+ id="rect5220"
+ style="color:#000000;fill:url(#radialGradient5374);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="40"
+ x="40"
+ height="1"
+ width="1"
+ id="rect5222"
+ style="color:#000000;fill:url(#radialGradient5376);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0.18268055"
+ rx="0.18268055"
+ y="43"
+ x="43"
+ height="1"
+ width="1"
+ id="rect5224"
+ style="color:#000000;fill:url(#radialGradient5378);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ </g>
+ </g>
+ </g>
+ <g
+ id="g5226"
+ inkscape:label="tastiera"
+ style="stroke-linecap:round;stroke-linejoin:round;display:inline">
+ <g
+ id="g5228"
+ inkscape:label="Shadow"
+ transform="translate(-54,0.18088)"
+ style="stroke-linecap:round;stroke-linejoin:round" />
+ <g
+ transform="translate(-54,15.2469)"
+ inkscape:label="Shadow"
+ id="g5230"
+ style="stroke-linecap:round;stroke-linejoin:round" />
+ <g
+ transform="translate(-54,15.2469)"
+ style="stroke-linecap:round;stroke-linejoin:round;display:inline"
+ inkscape:label="Lavoro"
+ id="g5232" />
+ </g>
+ <g
+ id="g5234"
+ inkscape:label="tasti"
+ style="stroke-linecap:round;stroke-linejoin:round;display:inline" />
+ </g>
+ <g
+ transform="matrix(2.07029,0,0,2.07029,681.54,9.03133)"
+ id="layer2-5"
+ inkscape:label="phone"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <g
+ id="g2366"
+ transform="matrix(1.00031,0,0,1,-0.002355,-7.00001)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ sodipodi:nodetypes="ccczccccccccccz"
+ id="rect2276"
+ d="m 8.2474619,14.5 7.7498701,-2.999994 16,0 L 39.741876,14.5 c 0.256803,0.06883 0.747462,1.333368 0.747462,1.747462 l 0,2.505076 c 0,0.414094 -0.333368,0.747462 -0.747462,0.747462 l -5.752538,0 -2,-4 -15.5,0 -2.5,4 -5.7418761,0 C 7.833368,19.5 7.5,19.166632 7.5,18.752538 l 0,-2.505076 C 7.5,15.833368 7.9909958,14.568741 8.2474619,14.5 z"
+ style="color:#000000;fill:url(#radialGradient4024);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3404);stroke-width:0.48294699;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ style="opacity:0.6;color:#000000;fill:none;stroke:url(#radialGradient4068);stroke-width:0.48294699;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="M 16.1875,12.46875 8.8125,15.3125 C 8.770706,15.38818 8.740325,15.496831 8.6875,15.625 8.559965,15.934436 8.46875,16.429219 8.46875,16.25 l 0,2.28125 5,0 c 0.858697,-1.529381 1.128913,-2.553892 3.03125,-2 l 15.5,0 c 0.859584,0.447471 1.469779,-1.114201 2.625,2 l 4.90625,0 0,-2.28125 c 0,0.178953 -0.09127,-0.31563 -0.21875,-0.625 -0.0528,-0.128142 -0.08323,-0.236865 -0.125,-0.3125 l -7.375,-2.84375 -15.625,0 z"
+ id="path4056"
+ sodipodi:nodetypes="ccsccccccccsccc"
+ transform="matrix(1.00031,0,0,1,-0.002355,-7.00001)"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g4065"
+ transform="matrix(1,0,0,1.0625,0,-1.3125)"
+ style="opacity:0.8;stroke-linecap:round;stroke-linejoin:round">
+ <rect
+ y="21"
+ x="9.5"
+ height="8"
+ width="4"
+ id="rect4030"
+ style="fill:url(#radialGradient4070);fill-opacity:1;stroke:none" />
+ <rect
+ transform="scale(-1,-1)"
+ y="-29"
+ x="-38.5"
+ height="8"
+ width="4"
+ id="rect4041"
+ style="fill:url(#radialGradient4072);fill-opacity:1;stroke:none" />
+ <rect
+ y="21"
+ x="13.5"
+ height="8"
+ width="21"
+ id="rect4045"
+ style="fill:url(#linearGradient4074);fill-opacity:1;stroke:none" />
+ </g>
+ <path
+ style="color:#000000;fill:url(#linearGradient1614);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient1616);stroke-width:0.48302299;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m 17.509407,7.5 2,0 0.5,2 8.002512,0 0.497488,-2 2,0 c 1.123656,0 1.740719,0.9709838 2.03297,2 l 3.976136,13.999994 0.02763,2 c 0,1.060896 -0.904604,2 -2.02826,2 l -21.006594,0 c -1.123656,0 -1.972996,-0.939104 -1.972996,-2 l -0.02763,-2 L 15.509407,9.5 c 0.293822,-1.0286979 0.876344,-2 2,-2 z"
+ id="rect2236"
+ sodipodi:nodetypes="ccccccsccccccsc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:0.24324299;color:#000000;fill:url(#linearGradient1601);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m 30.504082,8 -1.588859,0.022097 -0.592,2 L 19.632583,9.955806 19.044665,8.022097 17.5,8 c -1.078709,0 -1.426702,0.8189946 -1.687047,1.789079 l -2.4042,8.958396 -1.157183,3.752519 c 6.001884,-7.205882 17.755181,4 21.876475,-5.73172 L 32.164603,9.789079 C 31.892547,8.8220351 31.582792,8 30.504082,8 z"
+ id="path2297"
+ sodipodi:nodetypes="ccccccscccsc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:0.6;color:#000000;fill:none;stroke:url(#linearGradient1598);stroke-width:0.48302299;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m 17.500314,8.5 1.234521,0 0.497174,2 9.444768,-0.0221 0.654679,-1.9779 1.17294,0 c 0.500157,0 0.739705,0.088799 1.000314,1 l 4.004082,13.999994 0,1.5 c 0,1.5 0,1.5 -1.500471,1.5 l -20.00628,0 c -1.500471,0 -1.500471,0 -1.500471,-1.5 l 0,-1.5 L 16.5,9.5 c 0.260325,-0.911495 0.500157,-1 1.000314,-1 z"
+ id="path2279"
+ sodipodi:nodetypes="ccccccsccccccsc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient2960);fill-opacity:1;stroke:none"
+ d="m 18.67949,9.4999962 10.64178,0 c 0.597659,0 1.078805,0.4882234 1.078805,1.0946718 L 32,21.40532 c 0,0.606448 -0.481147,1.094672 -1.078807,1.094672 l -13.853815,-0.01237 c -0.59766,0 -1.078807,-0.488223 -1.078807,-1.094671 l 1.612114,-10.798283 c 0,-0.6064484 0.481147,-1.0946718 1.078805,-1.0946718 z"
+ id="rect4094"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g3067"
+ transform="translate(0,0.5)"
+ style="fill:url(#linearGradient9568);fill-opacity:1;stroke-linecap:round;stroke-linejoin:round">
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path3043"
+ d="m 18.558806,13 2.221403,0.01105 c 0.30958,0 0.574433,0.228459 0.558808,0.512241 l -0.04285,0.964469 C 21.280538,14.771541 21.046935,15 20.737355,15 l -2.32218,0 c -0.309579,0 -0.605683,-0.228459 -0.558808,-0.512241 l 0.143631,-0.975518 C 18.031248,13.236272 18.249227,13 18.558806,13 z"
+ style="fill:url(#linearGradient6299);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path3045"
+ d="m 22.891192,13 2.209799,0 c 0.30958,0 0.558808,0.228459 0.558808,0.512241 l 0.03906,0.975518 C 25.698861,14.771541 25.449633,15 25.140053,15 l -2.287924,0 c -0.309579,0 -0.558808,-0.228459 -0.558808,-0.512241 l 0.03906,-0.975518 C 22.332384,13.228459 22.581613,13 22.891192,13 z"
+ style="fill:url(#linearGradient6301);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path3047"
+ d="m 27.223578,13 2.217611,0 c 0.30958,0 0.519745,0.244084 0.558808,0.512241 l 0.140625,0.975518 C 30.187497,14.775447 29.891394,15 29.581814,15 l -2.315267,0 c -0.309579,0 -0.54709,-0.228459 -0.558808,-0.512241 L 26.66477,13.512241 C 26.649145,13.228459 26.913999,13 27.223578,13 z"
+ style="fill:url(#linearGradient6303);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path3049"
+ d="m 19.012241,10 1.942372,0 c 0.283782,0 0.535679,0.228459 0.512241,0.512241 l -0.04419,0.975518 C 21.42266,11.771541 21.194201,12 20.910419,12 l -2.074955,0 c -0.283782,0 -0.512241,-0.228459 -0.512241,-0.512241 L 18.5,10.512241 C 18.5,10.228459 18.728459,10 19.012241,10 z"
+ style="fill:url(#linearGradient6305);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path3051"
+ d="m 22.980991,10 2.030206,0 c 0.283782,0 0.512241,0.228459 0.512241,0.512241 l 0.03125,0.975518 C 25.554688,11.771541 25.326229,12 25.042447,12 l -2.100519,0 c -0.283782,0 -0.512241,-0.228459 -0.512241,-0.512241 l 0.03906,-0.975518 C 22.46875,10.228459 22.697209,10 22.980991,10 z"
+ style="fill:url(#linearGradient6307);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path3053"
+ d="m 27.035679,10 1.975518,0 c 0.283782,0 0.469272,0.224553 0.512241,0.512241 l 0.160156,0.975518 C 29.722656,11.771541 29.455135,12 29.171353,12 l -2.092706,0 c -0.283782,0 -0.496616,-0.228459 -0.512241,-0.512241 l -0.04297,-0.975518 C 26.507813,10.228459 26.751897,10 27.035679,10 z"
+ style="fill:url(#linearGradient6309);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path3055"
+ d="m 18.140535,16 2.455797,0 c 0.335378,0 0.624907,0.232365 0.605376,0.512241 l -0.04297,0.975518 C 21.143114,17.767635 20.888741,18 20.553363,18 l -2.561265,0 C 17.65672,18 17.343754,17.771541 17.386723,17.487759 L 17.53516,16.512241 C 17.578129,16.232365 17.805157,16 18.140535,16 z"
+ style="fill:url(#linearGradient6311);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path3057"
+ d="m 22.801401,16 2.389391,0 c 0.335378,0 0.605376,0.228459 0.605376,0.512241 l 0.03906,0.975518 C 25.83523,17.771541 25.565232,18 25.229854,18 l -2.459703,0 c -0.335378,0 -0.605375,-0.228459 -0.605375,-0.512241 l 0.03125,-0.975518 C 22.196026,16.228459 22.466023,16 22.801401,16 z"
+ style="fill:url(#linearGradient6313);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path3059"
+ d="m 27.399767,16 2.447984,0 c 0.335378,0 0.566313,0.228459 0.605376,0.512241 l 0.144531,0.975518 C 30.64844,17.775447 30.32766,18 29.992282,18 l -2.549547,0 c -0.335378,0 -0.58975,-0.232365 -0.605375,-0.512241 L 26.79439,16.512241 C 26.782673,16.228459 27.064389,16 27.399767,16 z"
+ style="fill:url(#linearGradient6315);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path3061"
+ d="m 17.730073,19 2.678359,0 c 0.361176,0 0.667568,0.236272 0.651943,0.512241 l -0.03125,0.975518 C 21.0135,20.763728 20.738358,21 20.377182,21 l -2.803359,0 c -0.361176,0 -0.683192,-0.228459 -0.651942,-0.512241 l 0.15625,-0.975518 C 17.109381,19.232365 17.368897,19 17.730073,19 z"
+ style="fill:url(#linearGradient6317);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path3063"
+ d="m 22.723326,19 2.553357,0 c 0.361176,0 0.651943,0.228459 0.651943,0.512241 l 0.04297,0.975518 C 25.971595,20.771541 25.680828,21 25.319652,21 l -2.643201,0 c -0.361177,0 -0.651943,-0.228459 -0.651943,-0.512241 l 0.04687,-0.975518 C 22.071383,19.228459 22.362149,19 22.723326,19 z"
+ style="fill:url(#linearGradient6319);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path3065"
+ d="m 27.583765,19 2.674451,0 c 0.361176,0 0.616787,0.228459 0.651943,0.512241 l 0.15625,0.975518 C 31.109378,20.767635 30.775642,21 30.414466,21 l -2.783826,0 c -0.361177,0 -0.644131,-0.228459 -0.651943,-0.512241 l -0.04687,-0.975518 C 26.920103,19.228459 27.222588,19 27.583765,19 z"
+ style="fill:url(#linearGradient6321);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ style="fill:url(#radialGradient2987);fill-opacity:1;stroke:none"
+ d="m 18.558806,13 2.221403,0.01105 c 0.30958,0 0.574433,0.228459 0.558808,0.512241 l -0.04285,0.964469 C 21.280538,14.771541 21.046935,15 20.737355,15 l -2.32218,0 c -0.309579,0 -0.605683,-0.228459 -0.558808,-0.512241 l 0.143631,-0.975518 C 18.031248,13.236272 18.249227,13 18.558806,13 z"
+ id="use6266"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#radialGradient2983);fill-opacity:1;stroke:none"
+ d="m 22.891192,13 2.209799,0 c 0.30958,0 0.558808,0.228459 0.558808,0.512241 l 0.03906,0.975518 C 25.698861,14.771541 25.449633,15 25.140053,15 l -2.287924,0 c -0.309579,0 -0.558808,-0.228459 -0.558808,-0.512241 l 0.03906,-0.975518 C 22.332384,13.228459 22.581613,13 22.891192,13 z"
+ id="use6268"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#radialGradient2979);fill-opacity:1;stroke:none"
+ d="m 27.223578,13 2.217611,0 c 0.30958,0 0.519745,0.244084 0.558808,0.512241 l 0.140625,0.975518 C 30.187497,14.775447 29.891394,15 29.581814,15 l -2.315267,0 c -0.309579,0 -0.54709,-0.228459 -0.558808,-0.512241 L 26.66477,13.512241 C 26.649145,13.228459 26.913999,13 27.223578,13 z"
+ id="use6270"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#radialGradient6264);fill-opacity:1;stroke:none"
+ d="m 19.012241,10 1.942372,0 c 0.283782,0 0.535679,0.228459 0.512241,0.512241 l -0.04419,0.975518 C 21.42266,11.771541 21.194201,12 20.910419,12 l -2.074955,0 c -0.283782,0 -0.512241,-0.228459 -0.512241,-0.512241 L 18.5,10.512241 C 18.5,10.228459 18.728459,10 19.012241,10 z"
+ id="rect5016"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#radialGradient2968);fill-opacity:1;stroke:none"
+ d="m 22.980991,10 2.030206,0 c 0.283782,0 0.512241,0.228459 0.512241,0.512241 l 0.03125,0.975518 C 25.554688,11.771541 25.326229,12 25.042447,12 l -2.100519,0 c -0.283782,0 -0.512241,-0.228459 -0.512241,-0.512241 l 0.03906,-0.975518 C 22.46875,10.228459 22.697209,10 22.980991,10 z"
+ id="use6252"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#radialGradient2972);fill-opacity:1;stroke:none"
+ d="m 27.035679,10 1.975518,0 c 0.283782,0 0.469272,0.224553 0.512241,0.512241 l 0.160156,0.975518 C 29.722656,11.771541 29.455135,12 29.171353,12 l -2.092706,0 c -0.283782,0 -0.496616,-0.228459 -0.512241,-0.512241 l -0.04297,-0.975518 C 26.507813,10.228459 26.751897,10 27.035679,10 z"
+ id="use6254"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#radialGradient3002);fill-opacity:1;stroke:none"
+ d="m 18.140535,16 2.455797,0 c 0.335378,0 0.624907,0.232365 0.605376,0.512241 l -0.04297,0.975518 C 21.143114,17.767635 20.888741,18 20.553363,18 l -2.561265,0 C 17.65672,18 17.343754,17.771541 17.386723,17.487759 L 17.53516,16.512241 C 17.578129,16.232365 17.805157,16 18.140535,16 z"
+ id="use6279"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#radialGradient2998);fill-opacity:1;stroke:none"
+ d="m 22.801401,16 2.389391,0 c 0.335378,0 0.605376,0.228459 0.605376,0.512241 l 0.03906,0.975518 C 25.83523,17.771541 25.565232,18 25.229854,18 l -2.459703,0 c -0.335378,0 -0.605375,-0.228459 -0.605375,-0.512241 l 0.03125,-0.975518 C 22.196026,16.228459 22.466023,16 22.801401,16 z"
+ id="use6281"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#radialGradient2994);fill-opacity:1;stroke:none"
+ d="m 27.399767,16 2.447984,0 c 0.335378,0 0.566313,0.228459 0.605376,0.512241 l 0.144531,0.975518 C 30.64844,17.775447 30.32766,18 29.992282,18 l -2.549547,0 c -0.335378,0 -0.58975,-0.232365 -0.605375,-0.512241 L 26.79439,16.512241 C 26.782673,16.228459 27.064389,16 27.399767,16 z"
+ id="use6283"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#radialGradient3017);fill-opacity:1;stroke:none"
+ d="m 17.730073,19 2.678359,0 c 0.361176,0 0.667568,0.236272 0.651943,0.512241 l -0.03125,0.975518 C 21.0135,20.763728 20.738358,21 20.377182,21 l -2.803359,0 c -0.361176,0 -0.683192,-0.228459 -0.651942,-0.512241 l 0.15625,-0.975518 C 17.109381,19.232365 17.368897,19 17.730073,19 z"
+ id="use6287"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#radialGradient3013);fill-opacity:1;stroke:none"
+ d="m 22.723326,19 2.553357,0 c 0.361176,0 0.651943,0.228459 0.651943,0.512241 l 0.04297,0.975518 C 25.971595,20.771541 25.680828,21 25.319652,21 l -2.643201,0 c -0.361177,0 -0.651943,-0.228459 -0.651943,-0.512241 l 0.04687,-0.975518 C 22.071383,19.228459 22.362149,19 22.723326,19 z"
+ id="use6289"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#radialGradient3009);fill-opacity:1;stroke:none"
+ d="m 27.583765,19 2.674451,0 c 0.361176,0 0.616787,0.228459 0.651943,0.512241 l 0.15625,0.975518 C 31.109378,20.767635 30.775642,21 30.414466,21 l -2.783826,0 c -0.361177,0 -0.644131,-0.228459 -0.651943,-0.512241 l -0.04687,-0.975518 C 26.920103,19.228459 27.222588,19 27.583765,19 z"
+ id="use6291"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g3105"
+ style="fill:#cccccc;fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(1,0.370117)">
+ <text
+ id="text6117"
+ y="11.364"
+ x="19.6092"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black"
+ y="11.364"
+ x="19.6092"
+ id="tspan6119"
+ sodipodi:role="line">1</tspan></text>
+ <text
+ id="text6121"
+ y="11.364"
+ x="23.675301"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black"
+ y="11.364"
+ x="23.675301"
+ id="tspan6123"
+ sodipodi:role="line">2</tspan></text>
+ <text
+ id="text6125"
+ y="11.3579"
+ x="27.7743"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black"
+ y="11.3579"
+ x="27.7743"
+ id="tspan6127"
+ sodipodi:role="line">3</tspan></text>
+ <text
+ id="text6129"
+ y="14.364"
+ x="19.2623"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black"
+ y="14.364"
+ x="19.2623"
+ id="tspan6131"
+ sodipodi:role="line">4</tspan></text>
+ <text
+ id="text6133"
+ y="14.364"
+ x="23.675301"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black"
+ y="14.364"
+ x="23.675301"
+ id="tspan6135"
+ sodipodi:role="line">5</tspan></text>
+ <text
+ id="text6137"
+ y="14.3579"
+ x="28.0679"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black"
+ y="14.3579"
+ x="28.0679"
+ id="tspan6139"
+ sodipodi:role="line">6</tspan></text>
+ <text
+ id="text6141"
+ y="17.357901"
+ x="18.958"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black"
+ y="17.357901"
+ x="18.958"
+ id="tspan6143"
+ sodipodi:role="line">7</tspan></text>
+ <text
+ id="text6145"
+ y="17.364"
+ x="23.675301"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black"
+ y="17.364"
+ x="23.675301"
+ id="tspan6147"
+ sodipodi:role="line">8</tspan></text>
+ <text
+ id="text6149"
+ y="17.357901"
+ x="28.3689"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black"
+ y="17.357901"
+ x="28.3689"
+ id="tspan6151"
+ sodipodi:role="line">9</tspan></text>
+ <text
+ id="text6153"
+ y="20.3582"
+ x="18.662001"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black"
+ y="20.3582"
+ x="18.662001"
+ id="tspan6155"
+ sodipodi:role="line">#</tspan></text>
+ <text
+ id="text6157"
+ y="20.357901"
+ x="23.6665"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black"
+ y="20.357901"
+ x="23.6665"
+ id="tspan6159"
+ sodipodi:role="line">0</tspan></text>
+ <text
+ id="text6161"
+ y="20.8827"
+ x="28.5483"
+ style="font-size:1.73081005px;font-weight:bold;fill:#cccccc;fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ xml:space="preserve"><tspan
+ style="font-size:1.73081005px;font-weight:bold;fill:#cccccc;fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ y="20.8827"
+ x="28.5483"
+ id="tspan6163"
+ sodipodi:role="line">*</tspan></text>
+ </g>
+ </g>
+ <g
+ transform="matrix(1.48173,0,0,1.48173,666.859,95.8056)"
+ id="layer1-4"
+ inkscape:label="Layer 1"
+ style="stroke-linecap:round;stroke-linejoin:round" />
+ <g
+ id="layer1-3"
+ inkscape:label="Vrstva 1"
+ transform="matrix(2.3886831,0,0,2.3886831,123.70512,135.22227)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <g
+ transform="matrix(0.82988027,0,0,1.5027223,5.04861,-1.193873)"
+ id="g7115"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ style="fill:url(#linearGradient7121);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient6985);stroke-width:0.443748px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ d="m 24,13 -16,31 3.5,0 2.5625,-5.3125 21.625,3.625 L 36.5,44 40,44 24,13 z m 0,4.96875 4,8.34375 -7.09375,-1.84375 3.09375,-6.5 z m -4,8.34375 7.28125,1.875 L 16.625,33.375 20,26.3125 z m 9.65625,3.46875 4.4375,9.21875 -17.4375,-2.90625 13,-6.3125 z"
+ id="path7060"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#ffffff;stroke-width:0.443748px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ d="M 38.40625,43.03125 24,15.125 9.59375,43.03125"
+ id="path7092"
+ sodipodi:nodetypes="ccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#ffffff;stroke-width:0.443748px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ d="M 15.78125,34.90625 28.8125,28.5625"
+ id="path7097"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#ffffff;stroke-width:0.443748px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ d="M 15.09375,36.84375 34.75,40.125"
+ id="path7099"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ <text
+ id="text9682"
+ y="317.64258"
+ x="182.09781"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Serif"
+ xml:space="preserve"><tspan
+ y="317.64258"
+ x="182.09781"
+ sodipodi:role="line"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;font-family:DejaVu Sans"
+ id="tspan6595">BTS: Base</tspan><tspan
+ y="335.14258"
+ x="182.09781"
+ sodipodi:role="line"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;font-family:DejaVu Sans"
+ id="tspan6603">Transceiver</tspan><tspan
+ y="352.64258"
+ x="182.09781"
+ sodipodi:role="line"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;font-family:DejaVu Sans"
+ id="tspan6599">Station</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ x="326.67023"
+ y="295.97589"
+ id="text9686"><tspan
+ sodipodi:role="line"
+ id="tspan9688"
+ x="326.67023"
+ y="295.97589">BSC:</tspan><tspan
+ sodipodi:role="line"
+ x="326.67023"
+ y="313.47589"
+ id="tspan6587">Base Station</tspan><tspan
+ sodipodi:role="line"
+ x="326.67023"
+ y="330.97589"
+ id="tspan6591">Controller</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ x="483.98407"
+ y="283.42673"
+ id="text9694"><tspan
+ sodipodi:role="line"
+ id="tspan9696"
+ x="483.98407"
+ y="283.42673">CS-MGW</tspan></text>
+ <text
+ id="text9698"
+ y="400.69357"
+ x="480.37714"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ xml:space="preserve"><tspan
+ y="400.69357"
+ x="480.37714"
+ id="tspan9700"
+ sodipodi:role="line">SGSN</tspan></text>
+ <g
+ id="g9791"
+ transform="matrix(0.69916804,0,0,0.69916804,255.60783,39.383069)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <g
+ transform="matrix(1.48173,0,0,1.48173,755.762,95.8056)"
+ id="g6053"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round;display:inline"
+ id="g6055"
+ transform="matrix(0.0201927,0,0,0.0170832,-17.5399,42.4025)">
+ <rect
+ y="-150.69685"
+ x="-1559.2523"
+ height="478.35718"
+ width="1339.6335"
+ id="rect6057"
+ style="opacity:0.39195999;color:#000000;fill:url(#linearGradient9874);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path6059"
+ d="m -219.61876,-150.68038 c 0,0 0,478.33079 0,478.33079 142.874166,0.90045 345.40022,-107.16966 345.40014,-239.196175 0,-132.026537 -159.436816,-239.134595 -345.40014,-239.134615 z"
+ style="opacity:0.40206197;color:#000000;fill:url(#radialGradient9876);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:0.40206197;color:#000000;fill:url(#radialGradient9878);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m -1559.2523,-150.68038 c 0,0 0,478.33079 0,478.33079 -142.8742,0.90045 -345.4002,-107.16966 -345.4002,-239.196175 0,-132.026537 159.4368,-239.134595 345.4002,-239.134615 z"
+ id="path6061"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g6063"
+ transform="translate(-60,30)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ id="path6065"
+ d="m 14.345337,8.5060394 c -0.64368,2.2113336 -3.112797,4.0060386 -5.5114231,4.0060386 -2.3986256,0 -3.8229293,-1.794705 -3.1792494,-4.0060386 0.64368,-2.2113336 3.1127974,-4.0060393 5.5114235,-4.0060393 2.398625,0 3.822929,1.7947057 3.179249,4.0060393 z"
+ style="fill:none;stroke:url(#radialGradient9880);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(0.870121,0,-0.333994,1.14742,4.78365,-1.84455)"
+ d="m 14.451495,9.0207386 c 0,1.9282134 -2.235864,3.4913394 -4.9939421,3.4913394 -2.7580779,0 -4.9939418,-1.563126 -4.9939418,-3.4913394 0,-1.9282137 2.2358639,-3.4913397 4.9939418,-3.4913397 2.7580781,0 4.9939421,1.563126 4.9939421,3.4913397 z"
+ sodipodi:ry="3.4913397"
+ sodipodi:rx="4.9939418"
+ sodipodi:cy="9.0207386"
+ sodipodi:cx="9.4575529"
+ id="path6067"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90639138;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g6070"
+ transform="translate(-60,24)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ id="path6072"
+ d="m 14.345337,8.5060394 c -0.64368,2.2113336 -3.112797,4.0060386 -5.5114231,4.0060386 -2.3986256,0 -3.8229293,-1.794705 -3.1792494,-4.0060386 0.64368,-2.2113336 3.1127974,-4.0060393 5.5114235,-4.0060393 2.398625,0 3.822929,1.7947057 3.179249,4.0060393 z"
+ style="fill:none;stroke:url(#radialGradient9882);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(0.870121,0,-0.333994,1.14742,4.78365,-1.84455)"
+ d="m 14.451495,9.0207386 c 0,1.9282134 -2.235864,3.4913394 -4.9939421,3.4913394 -2.7580779,0 -4.9939418,-1.563126 -4.9939418,-3.4913394 0,-1.9282137 2.2358639,-3.4913397 4.9939418,-3.4913397 2.7580781,0 4.9939421,1.563126 4.9939421,3.4913397 z"
+ sodipodi:ry="3.4913397"
+ sodipodi:rx="4.9939418"
+ sodipodi:cy="9.0207386"
+ sodipodi:cx="9.4575529"
+ id="path6074"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90639138;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g6076"
+ transform="translate(-60,18)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ id="path6078"
+ d="m 14.345337,8.5060394 c -0.64368,2.2113336 -3.112797,4.0060386 -5.5114231,4.0060386 -2.3986256,0 -3.8229293,-1.794705 -3.1792494,-4.0060386 0.64368,-2.2113336 3.1127974,-4.0060393 5.5114235,-4.0060393 2.398625,0 3.822929,1.7947057 3.179249,4.0060393 z"
+ style="fill:none;stroke:url(#radialGradient9884);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(0.870121,0,-0.333994,1.14742,4.78365,-1.84455)"
+ d="m 14.451495,9.0207386 c 0,1.9282134 -2.235864,3.4913394 -4.9939421,3.4913394 -2.7580779,0 -4.9939418,-1.563126 -4.9939418,-3.4913394 0,-1.9282137 2.2358639,-3.4913397 4.9939418,-3.4913397 2.7580781,0 4.9939421,1.563126 4.9939421,3.4913397 z"
+ sodipodi:ry="3.4913397"
+ sodipodi:rx="4.9939418"
+ sodipodi:cy="9.0207386"
+ sodipodi:cx="9.4575529"
+ id="path6080"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90639138;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g6082"
+ transform="translate(-60,12)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ id="path6084"
+ d="m 14.345337,8.5060394 c -0.64368,2.2113336 -3.112797,4.0060386 -5.5114231,4.0060386 -2.3986256,0 -3.8229293,-1.794705 -3.1792494,-4.0060386 0.64368,-2.2113336 3.1127974,-4.0060393 5.5114235,-4.0060393 2.398625,0 3.822929,1.7947057 3.179249,4.0060393 z"
+ style="fill:none;stroke:url(#radialGradient9886);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(0.870121,0,-0.333994,1.14742,4.78365,-1.84455)"
+ d="m 14.451495,9.0207386 c 0,1.9282134 -2.235864,3.4913394 -4.9939421,3.4913394 -2.7580779,0 -4.9939418,-1.563126 -4.9939418,-3.4913394 0,-1.9282137 2.2358639,-3.4913397 4.9939418,-3.4913397 2.7580781,0 4.9939421,1.563126 4.9939421,3.4913397 z"
+ sodipodi:ry="3.4913397"
+ sodipodi:rx="4.9939418"
+ sodipodi:cy="9.0207386"
+ sodipodi:cx="9.4575529"
+ id="path6086"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90639138;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g6088"
+ transform="translate(-60,6)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ id="path6090"
+ d="m 14.345337,8.5060394 c -0.64368,2.2113336 -3.112797,4.0060386 -5.5114231,4.0060386 -2.3986256,0 -3.8229293,-1.794705 -3.1792494,-4.0060386 0.64368,-2.2113336 3.1127974,-4.0060393 5.5114235,-4.0060393 2.398625,0 3.822929,1.7947057 3.179249,4.0060393 z"
+ style="fill:none;stroke:url(#radialGradient9888);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(0.870121,0,-0.333994,1.14742,4.78365,-1.84455)"
+ d="m 14.451495,9.0207386 c 0,1.9282134 -2.235864,3.4913394 -4.9939421,3.4913394 -2.7580779,0 -4.9939418,-1.563126 -4.9939418,-3.4913394 0,-1.9282137 2.2358639,-3.4913397 4.9939418,-3.4913397 2.7580781,0 4.9939421,1.563126 4.9939421,3.4913397 z"
+ sodipodi:ry="3.4913397"
+ sodipodi:rx="4.9939418"
+ sodipodi:cy="9.0207386"
+ sodipodi:cx="9.4575529"
+ id="path6092"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90639138;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g6094"
+ transform="translate(-60,0)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ id="path6096"
+ d="m 14.345337,8.5060394 c -0.64368,2.2113336 -3.112797,4.0060386 -5.5114231,4.0060386 -2.3986256,0 -3.8229293,-1.794705 -3.1792494,-4.0060386 0.64368,-2.2113336 3.1127974,-4.0060393 5.5114235,-4.0060393 2.398625,0 3.822929,1.7947057 3.179249,4.0060393 z"
+ style="fill:none;stroke:url(#radialGradient9890);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(0.870121,0,-0.333994,1.14742,4.78365,-1.84455)"
+ d="m 14.451495,9.0207386 c 0,1.9282134 -2.235864,3.4913394 -4.9939421,3.4913394 -2.7580779,0 -4.9939418,-1.563126 -4.9939418,-3.4913394 0,-1.9282137 2.2358639,-3.4913397 4.9939418,-3.4913397 2.7580781,0 4.9939421,1.563126 4.9939421,3.4913397 z"
+ sodipodi:ry="3.4913397"
+ sodipodi:rx="4.9939418"
+ sodipodi:cy="9.0207386"
+ sodipodi:cx="9.4575529"
+ id="path6098"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90639138;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ </g>
+ <rect
+ style="fill:#3465a4;fill-opacity:1;stroke:#204a87;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect6100"
+ width="29.999998"
+ height="39.999996"
+ x="-50.5"
+ y="1.5"
+ rx="1.616383"
+ ry="1.6702623" />
+ <g
+ id="g6102"
+ transform="translate(-62,1)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ sodipodi:nodetypes="cccccc"
+ id="path6104"
+ d="M 14,3 39.182408,3 40,3.6961651 40,25 14,25 14,3 z"
+ style="fill:#d3d7cf;fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path6106"
+ d="m 14,3 25.65625,0 c 1.055682,1.0277742 -0.49011,2.0151389 -2,2 L 12.625,5 C 14.126385,5 15.015732,3.4971845 14,3 z"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ </g>
+ <rect
+ style="fill:url(#radialGradient9892);fill-opacity:1;stroke:#4e9a06;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect6108"
+ width="5"
+ height="10"
+ x="-20.5"
+ y="9.5"
+ rx="0.83513117"
+ ry="0.75161809" />
+ <path
+ style="opacity:0.2;fill:none;stroke:#ffffff;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-dashoffset:0"
+ d="m -48.079373,2.53125 c -0.800828,0 -1.389377,0.6089338 -1.389377,1.4375 l 0,35.0625 c 0,0.828566 0.588549,1.4375 1.389377,1.4375 l 25.189997,0 c 0.800828,0 1.389377,-0.608935 1.389377,-1.4375 l 0,-35.0625 c 0,-0.8285661 -0.58855,-1.4375 -1.389377,-1.4375 l -25.189997,0 z"
+ id="path6110"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="-0.99302852"
+ inkscape:original="M 39.75 29.5 C 39.06446 29.5 38.5 30.064461 38.5 30.75 L 38.5 38.25 C 38.5 38.93554 39.064459 39.5 39.75 39.5 L 45.25 39.5 C 45.93554 39.5 46.5 38.935541 46.5 38.25 L 46.5 30.75 C 46.5 30.06446 45.935541 29.5 45.25 29.5 L 39.75 29.5 z "
+ style="opacity:0.5;fill:none;stroke:url(#linearGradient9894);stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path6112-2"
+ d="m 39.75,30.5 c -0.140446,0 -0.25,0.109555 -0.25,0.25 l 0,7.5 c 0,0.140448 0.109551,0.25 0.25,0.25 l 5.5,0 c 0.140448,0 0.25,-0.109551 0.25,-0.25 l 0,-7.5 c 0,-0.140448 -0.109551,-0.25 -0.25,-0.25 l -5.5,0 z"
+ transform="translate(-62,-20)" />
+ <rect
+ style="fill:url(#radialGradient9896);fill-opacity:1;stroke:#c4a000;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect6114"
+ width="8"
+ height="10"
+ x="-22.5"
+ y="19.5"
+ rx="0.83513117"
+ ry="0.83513117" />
+ <rect
+ style="fill:url(#radialGradient9898);fill-opacity:1;stroke:#ce5c00;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect6116"
+ width="8"
+ height="10"
+ x="-21.5"
+ y="29.5"
+ rx="0.83513117"
+ ry="0.83513117" />
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="-0.99302852"
+ inkscape:original="M 39.75 29.5 C 39.06446 29.5 38.5 30.064461 38.5 30.75 L 38.5 38.25 C 38.5 38.93554 39.064459 39.5 39.75 39.5 L 45.25 39.5 C 45.93554 39.5 46.5 38.935541 46.5 38.25 L 46.5 30.75 C 46.5 30.06446 45.935541 29.5 45.25 29.5 L 39.75 29.5 z "
+ style="opacity:0.5;fill:none;stroke:url(#linearGradient9900);stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path6118"
+ d="m 39.75,30.5 c -0.140446,0 -0.25,0.109555 -0.25,0.25 l 0,7.5 c 0,0.140448 0.109551,0.25 0.25,0.25 l 5.5,0 c 0.140448,0 0.25,-0.109551 0.25,-0.25 l 0,-7.5 c 0,-0.140448 -0.109551,-0.25 -0.25,-0.25 l -5.5,0 z"
+ transform="translate(-61,-10)" />
+ <rect
+ style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:none"
+ id="rect6120"
+ width="6.8125"
+ height="10"
+ x="-24.8125"
+ y="19" />
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="-0.99302852"
+ inkscape:original="M 39.75 29.5 C 39.06446 29.5 38.5 30.064461 38.5 30.75 L 38.5 38.25 C 38.5 38.93554 39.064459 39.5 39.75 39.5 L 45.25 39.5 C 45.93554 39.5 46.5 38.935541 46.5 38.25 L 46.5 30.75 C 46.5 30.06446 45.935541 29.5 45.25 29.5 L 39.75 29.5 z "
+ style="opacity:0.5;fill:none;stroke:url(#linearGradient9902);stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path6122"
+ d="m 39.75,30.5 c -0.140446,0 -0.25,0.109555 -0.25,0.25 l 0,7.5 c 0,0.140448 0.109551,0.25 0.25,0.25 l 5.5,0 c 0.140448,0 0.25,-0.109551 0.25,-0.25 l 0,-7.5 c 0,-0.140448 -0.109551,-0.25 -0.25,-0.25 l -5.5,0 z"
+ transform="translate(-60,0)" />
+ <rect
+ style="opacity:0.1;fill:#000000;fill-opacity:1;stroke:none"
+ id="rect6124"
+ width="6.8125"
+ height="11"
+ x="-24.8125"
+ y="29" />
+ <rect
+ style="opacity:0.15517201;fill:#000000;fill-opacity:1;stroke:none"
+ id="rect6126"
+ width="7"
+ height="10"
+ x="-25"
+ y="9" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="rect6128"
+ d="m -49.025126,6.5 27.050252,0 C -20.603794,6.5 -19.5,7.6037937 -19.5,8.9748738 l 0,34.0502482 c 0,1.37108 -1.103794,2.474874 -2.474874,2.474874 l -27.050252,0 c -1.37108,0 -2.474874,-1.103794 -2.474874,-2.474874 l 0,-34.0502482 C -51.5,7.6037937 -50.396206,6.5 -49.025126,6.5 z"
+ style="fill:url(#linearGradient9904);fill-opacity:1;stroke:#204a87;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path6130"
+ d="M 10.96875,7 C 9.866556,7 9,7.8665563 9,8.96875 l 0,34.0625 C 9,44.133444 9.8665564,45 10.96875,45 l 27.0625,0 C 39.133444,45 40,44.133443 40,43.03125 L 40,8.96875 C 40,7.8665562 39.133443,7 38.03125,7 l -27.0625,0 z"
+ style="fill:url(#linearGradient9906);fill-opacity:1;stroke:none"
+ transform="translate(-60,0)"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="translate(-60,0)"
+ sodipodi:nodetypes="ccccccccc"
+ id="path6132"
+ d="m 10.96875,7.53125 c -0.828566,0 -1.4375,0.6089338 -1.4375,1.4375 l 0,34.0625 c 0,0.828566 0.608934,1.4375 1.4375,1.4375 l 27.0625,0 c 0.828566,0 1.4375,-0.608935 1.4375,-1.4375 l 0,-34.0625 c 0,-0.8285661 -0.608935,-1.4375 -1.4375,-1.4375 l -27.0625,0 z"
+ style="opacity:0.46120701;fill:none;stroke:url(#linearGradient9908);stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#204a87;stroke-width:0.93560952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path6134"
+ sodipodi:cx="11.91033"
+ sodipodi:cy="11.959651"
+ sodipodi:rx="1.524699"
+ sodipodi:ry="1.6130873"
+ d="m 13.435029,11.959651 c 0,0.890884 -0.682631,1.613087 -1.524699,1.613087 -0.842068,0 -1.524699,-0.722203 -1.524699,-1.613087 0,-0.890884 0.682631,-1.613087 1.524699,-1.613087 0.842068,0 1.524699,0.722203 1.524699,1.613087 z"
+ transform="matrix(0.983801,0,0,0.95244,-59.7174,30.1455)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#204a87;stroke-width:0.93560952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path6136"
+ sodipodi:cx="11.91033"
+ sodipodi:cy="11.959651"
+ sodipodi:rx="1.524699"
+ sodipodi:ry="1.6130873"
+ d="m 13.435029,11.959651 c 0,0.890884 -0.682631,1.613087 -1.524699,1.613087 -0.842068,0 -1.524699,-0.722203 -1.524699,-1.613087 0,-0.890884 0.682631,-1.613087 1.524699,-1.613087 0.842068,0 1.524699,0.722203 1.524699,1.613087 z"
+ transform="matrix(0.983801,0,0,0.95244,-59.7174,24.1455)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#204a87;stroke-width:0.93560952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path6138"
+ sodipodi:cx="11.91033"
+ sodipodi:cy="11.959651"
+ sodipodi:rx="1.524699"
+ sodipodi:ry="1.6130873"
+ d="m 13.435029,11.959651 c 0,0.890884 -0.682631,1.613087 -1.524699,1.613087 -0.842068,0 -1.524699,-0.722203 -1.524699,-1.613087 0,-0.890884 0.682631,-1.613087 1.524699,-1.613087 0.842068,0 1.524699,0.722203 1.524699,1.613087 z"
+ transform="matrix(0.983801,0,0,0.95244,-59.7174,18.1455)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#204a87;stroke-width:0.93560952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path6140"
+ sodipodi:cx="11.91033"
+ sodipodi:cy="11.959651"
+ sodipodi:rx="1.524699"
+ sodipodi:ry="1.6130873"
+ d="m 13.435029,11.959651 c 0,0.890884 -0.682631,1.613087 -1.524699,1.613087 -0.842068,0 -1.524699,-0.722203 -1.524699,-1.613087 0,-0.890884 0.682631,-1.613087 1.524699,-1.613087 0.842068,0 1.524699,0.722203 1.524699,1.613087 z"
+ transform="matrix(0.983801,0,0,0.95244,-59.7174,6.14552)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#204a87;stroke-width:0.93560952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path6142"
+ sodipodi:cx="11.91033"
+ sodipodi:cy="11.959651"
+ sodipodi:rx="1.524699"
+ sodipodi:ry="1.6130873"
+ d="m 13.435029,11.959651 c 0,0.890884 -0.682631,1.613087 -1.524699,1.613087 -0.842068,0 -1.524699,-0.722203 -1.524699,-1.613087 0,-0.890884 0.682631,-1.613087 1.524699,-1.613087 0.842068,0 1.524699,0.722203 1.524699,1.613087 z"
+ transform="matrix(0.983801,0,0,0.95244,-59.7174,12.1455)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#204a87;stroke-width:0.93560952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path6144"
+ sodipodi:cx="11.91033"
+ sodipodi:cy="11.959651"
+ sodipodi:rx="1.524699"
+ sodipodi:ry="1.6130873"
+ d="m 13.435029,11.959651 c 0,0.890884 -0.682631,1.613087 -1.524699,1.613087 -0.842068,0 -1.524699,-0.722203 -1.524699,-1.613087 0,-0.890884 0.682631,-1.613087 1.524699,-1.613087 0.842068,0 1.524699,0.722203 1.524699,1.613087 z"
+ transform="matrix(0.983801,0,0,0.95244,-59.7174,0.145517)" />
+ <g
+ id="g6146"
+ transform="translate(-60,30)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ sodipodi:nodetypes="csc"
+ id="path6148"
+ d="m 5.65625,8.5 c -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ style="fill:none;stroke:url(#radialGradient9910);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cssc"
+ id="path6150"
+ d="m 6.84375,6.5 c -0.5475716,0.5922996 -0.9735778,1.2650799 -1.1875,2 -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(1.37143,0,0,0.932039,-1.73659,0.313359)"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ sodipodi:ry="0.8046875"
+ sodipodi:rx="0.546875"
+ sodipodi:cy="8.2578125"
+ sodipodi:cx="5.265625"
+ id="path6152"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.37143,0,0,0.932039,4.09704,3.71631)"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ sodipodi:ry="0.8046875"
+ sodipodi:rx="0.546875"
+ sodipodi:cy="8.2578125"
+ sodipodi:cx="5.265625"
+ id="path6154"
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g6156"
+ transform="translate(-60,24)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ sodipodi:nodetypes="csc"
+ id="path6158"
+ d="m 5.65625,8.5 c -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ style="fill:none;stroke:url(#radialGradient9912);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cssc"
+ id="path6160"
+ d="m 6.84375,6.5 c -0.5475716,0.5922996 -0.9735778,1.2650799 -1.1875,2 -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(1.37143,0,0,0.932039,-1.73659,0.313359)"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ sodipodi:ry="0.8046875"
+ sodipodi:rx="0.546875"
+ sodipodi:cy="8.2578125"
+ sodipodi:cx="5.265625"
+ id="path6162"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.37143,0,0,0.932039,4.09704,3.71631)"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ sodipodi:ry="0.8046875"
+ sodipodi:rx="0.546875"
+ sodipodi:cy="8.2578125"
+ sodipodi:cx="5.265625"
+ id="path6164"
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g6166"
+ transform="translate(-60,18)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ sodipodi:nodetypes="csc"
+ id="path6168"
+ d="m 5.65625,8.5 c -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ style="fill:none;stroke:url(#radialGradient9914);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cssc"
+ id="path6170"
+ d="m 6.84375,6.5 c -0.5475716,0.5922996 -0.9735778,1.2650799 -1.1875,2 -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(1.37143,0,0,0.932039,-1.73659,0.313359)"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ sodipodi:ry="0.8046875"
+ sodipodi:rx="0.546875"
+ sodipodi:cy="8.2578125"
+ sodipodi:cx="5.265625"
+ id="path6172"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.37143,0,0,0.932039,4.09704,3.71631)"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ sodipodi:ry="0.8046875"
+ sodipodi:rx="0.546875"
+ sodipodi:cy="8.2578125"
+ sodipodi:cx="5.265625"
+ id="path6174"
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g6176"
+ transform="translate(-60,12)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ sodipodi:nodetypes="csc"
+ id="path6178"
+ d="m 5.65625,8.5 c -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ style="fill:none;stroke:url(#radialGradient9916);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cssc"
+ id="path6180"
+ d="m 6.84375,6.5 c -0.5475716,0.5922996 -0.9735778,1.2650799 -1.1875,2 -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(1.37143,0,0,0.932039,-1.73659,0.313359)"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ sodipodi:ry="0.8046875"
+ sodipodi:rx="0.546875"
+ sodipodi:cy="8.2578125"
+ sodipodi:cx="5.265625"
+ id="path6182"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.37143,0,0,0.932039,4.09704,3.71631)"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ sodipodi:ry="0.8046875"
+ sodipodi:rx="0.546875"
+ sodipodi:cy="8.2578125"
+ sodipodi:cx="5.265625"
+ id="path6184"
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g6186"
+ transform="translate(-60,6)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ sodipodi:nodetypes="csc"
+ id="path6188"
+ d="m 5.65625,8.5 c -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ style="fill:none;stroke:url(#radialGradient9918);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cssc"
+ id="path6190"
+ d="m 6.84375,6.5 c -0.5475716,0.5922996 -0.9735778,1.2650799 -1.1875,2 -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(1.37143,0,0,0.932039,-1.73659,0.313359)"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ sodipodi:ry="0.8046875"
+ sodipodi:rx="0.546875"
+ sodipodi:cy="8.2578125"
+ sodipodi:cx="5.265625"
+ id="path6192"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.37143,0,0,0.932039,4.09704,3.71631)"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ sodipodi:ry="0.8046875"
+ sodipodi:rx="0.546875"
+ sodipodi:cy="8.2578125"
+ sodipodi:cx="5.265625"
+ id="path6194"
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <path
+ style="font-size:23.55380058px;font-style:normal;font-weight:normal;fill:#8fbceb;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ d="m -36.126698,24.53508 c -9e-6,0.958803 0.196069,1.714927 0.588236,2.268374 0.399687,0.553456 0.938903,0.830181 1.617647,0.830178 0.671179,3e-6 1.206623,-0.276722 1.606334,-0.830178 0.399685,-0.561242 0.599535,-1.317366 0.599548,-2.268374 -1.3e-5,-0.943199 -0.203634,-1.68763 -0.61086,-2.233296 -0.399711,-0.553442 -0.938926,-0.830168 -1.617647,-0.830178 -0.663661,10e-6 -1.195335,0.276736 -1.595022,0.830178 -0.392167,0.545666 -0.588245,1.290097 -0.588236,2.233296 m 4.63801,3.519487 c -0.226258,0.553454 -0.59202,0.986082 -1.097286,1.297885 -0.49775,0.304009 -1.082214,0.456014 -1.753393,0.456013 -1.297144,10e-7 -2.352951,-0.483295 -3.167421,-1.449888 -0.806945,-0.974385 -1.210414,-2.241087 -1.210407,-3.800111 -7e-6,-1.559012 0.407232,-2.825714 1.221719,-3.800111 0.814471,-0.974376 1.866506,-1.461569 3.156109,-1.461581 0.671179,1.2e-5 1.255643,0.155913 1.753393,0.467706 0.505266,0.311815 0.871028,0.744442 1.097286,1.297884 l 0,-1.531736 2.364252,0 0,8.103004 c 0.935127,-0.148103 1.67042,-0.611911 2.205883,-1.391425 0.535426,-0.7873 0.803148,-1.792866 0.803167,-3.016703 -1.9e-5,-0.779502 -0.10937,-1.508343 -0.328054,-2.186526 -0.218722,-0.685957 -0.550546,-1.313463 -0.995475,-1.882516 -0.716458,-0.950989 -1.613892,-1.683728 -2.692308,-2.198218 -1.070904,-0.514461 -2.23229,-0.7717 -3.484163,-0.771714 -0.874822,1.4e-5 -1.711925,0.120838 -2.511312,0.362472 -0.799405,0.233867 -1.538469,0.580748 -2.217194,1.040646 -1.116145,0.763932 -1.987185,1.753908 -2.613122,2.969932 -0.618405,1.208249 -0.927606,2.517824 -0.927602,3.92873 -4e-6,1.161475 0.199846,2.252787 0.599547,3.273942 0.407236,1.013364 0.9917,1.9098 1.753395,2.689308 0.754141,0.76392 1.617639,1.344654 2.590496,1.742205 0.980384,0.405343 2.024878,0.608015 3.133485,0.608017 0.950214,-2e-6 1.900439,-0.183186 2.850678,-0.549554 0.950212,-0.36637 1.760919,-0.861359 2.432127,-1.484966 l 1.210407,1.894209 c -0.942701,0.756122 -1.972113,1.332959 -3.088235,1.730512 -1.108611,0.405341 -2.236061,0.608013 -3.382353,0.608018 -1.395184,-5e-6 -2.71117,-0.257243 -3.947964,-0.771715 -1.236809,-0.506684 -2.337863,-1.247218 -3.303167,-2.221603 -0.965312,-0.974388 -1.700606,-2.100778 -2.205882,-3.379176 -0.50528,-1.286188 -0.757919,-2.665919 -0.757918,-4.139197 -10e-7,-1.4187 0.256408,-2.771149 0.769231,-4.057349 0.512817,-1.286179 1.244339,-2.416468 2.194569,-3.390868 0.950221,-0.966578 2.055046,-1.714906 3.31448,-2.244989 1.266959,-0.53005 2.579175,-0.795082 3.936651,-0.795099 1.689278,1.7e-5 3.223967,0.335205 4.604072,1.005567 1.380073,0.662599 2.533919,1.621395 3.461539,2.876391 0.565591,0.763933 0.991683,1.59411 1.27828,2.490534 0.294097,0.888651 0.441155,1.824062 0.441177,2.806237 -2.2e-5,2.112476 -0.614651,3.753344 -1.843891,4.922604 -1.22928,1.169266 -2.963818,1.753899 -5.203621,1.753898 l -0.441175,0 0,-1.800669"
+ id="path6196"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g6198"
+ transform="translate(-60,0)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ sodipodi:nodetypes="csc"
+ id="path6200"
+ d="m 5.65625,8.5 c -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ style="fill:none;stroke:url(#radialGradient9920);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cssc"
+ id="path6202"
+ d="m 6.84375,6.5 c -0.5475716,0.5922996 -0.9735778,1.2650799 -1.1875,2 -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(1.37143,0,0,0.932039,-1.73659,0.313359)"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ sodipodi:ry="0.8046875"
+ sodipodi:rx="0.546875"
+ sodipodi:cy="8.2578125"
+ sodipodi:cx="5.265625"
+ id="path6204"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.37143,0,0,0.932039,4.09704,3.71631)"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ sodipodi:ry="0.8046875"
+ sodipodi:rx="0.546875"
+ sodipodi:cy="8.2578125"
+ sodipodi:cx="5.265625"
+ id="path6206"
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ </g>
+ <text
+ id="text4945"
+ y="145.17384"
+ x="42.19397"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ xml:space="preserve"><tspan
+ y="145.17384"
+ x="42.19397"
+ id="tspan4947"
+ sodipodi:role="line">MT/TE</tspan></text>
+ <g
+ inkscape:label="Calque 1"
+ id="g4250"
+ transform="matrix(0.122312,0,0,0.122312,-30.085582,252.55201)"
+ style="stroke-linecap:round;stroke-linejoin:round;display:inline">
+ <path
+ style="fill:url(#linearGradient4274);fill-opacity:1;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ d="m 730.20369,448.19592 c 14.27042,0 25.78125,11.47958 25.78125,25.75 l 0,117.21875 -59.09375,59.0625 -241.4375,0 c -14.27043,0 -25.74999,-11.4796 -25.75,-25.75 l 0,-150.53125 c 0,-14.27043 11.47956,-25.75 25.75,-25.75 l 274.75,0 z"
+ id="path4252"
+ inkscape:connector-curvature="0" />
+ <rect
+ rx="25.75889"
+ style="fill:url(#linearGradient4276);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect4254"
+ width="149.5023"
+ height="142.93658"
+ x="460.77066"
+ y="478.50421"
+ ry="25.75889" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.01707006px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ d="m 461.22302,514.31577 48.47024,0 0,35.54048 -48.47024,0"
+ id="path4256"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path4258"
+ d="m 461.22302,549.8871 48.47024,0 0,35.54046 -48.47024,0"
+ style="fill:none;stroke:#000000;stroke-width:1.01707006px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path4260"
+ d="m 509.69326,478.78318 0,35.54048"
+ style="fill:none;stroke:#000000;stroke-width:1.01707006px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ style="fill:none;stroke:#000000;stroke-width:1.01707006px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ d="m 509.69326,585.40475 0,35.54048"
+ id="path4262"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path4264"
+ d="m 609.69326,514.31577 -48.47024,0 0,35.54048 48.47024,0"
+ style="fill:none;stroke:#000000;stroke-width:1.01707006px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.01707006px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ d="m 609.69326,549.8871 -48.47024,0 0,35.54046 48.47024,0"
+ id="path4266"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path4268"
+ d="m 561.22364,585.40475 0,35.54048"
+ style="fill:none;stroke:#000000;stroke-width:1.01707006px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <text
+ id="text4270"
+ y="348.54425"
+ x="42.505005"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ xml:space="preserve"><tspan
+ id="tspan4272"
+ y="348.54425"
+ x="42.505005"
+ sodipodi:role="line">SIM</tspan></text>
+ <g
+ inkscape:label="Layer 1"
+ id="layer1-37"
+ transform="matrix(1.5182985,0,0,1.5182985,443.71238,314.74052)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <g
+ style="opacity:0.6;stroke-linecap:round;stroke-linejoin:round;display:inline"
+ transform="matrix(0.01477517,0,0,0.02195012,36.14156,38.80781)"
+ id="g3952">
+ <rect
+ style="opacity:0.40206185;color:#000000;fill:url(#linearGradient6715);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ id="rect3954"
+ width="1339.6335"
+ height="478.35718"
+ x="-1559.2523"
+ y="-150.69685" />
+ <path
+ style="opacity:0.40206185;color:#000000;fill:url(#radialGradient6717);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m -219.61876,-150.68038 c 0,0 0,478.33079 0,478.33079 142.874166,0.90045 345.40022,-107.16966 345.40014,-239.196175 0,-132.026537 -159.436816,-239.134595 -345.40014,-239.134615 z"
+ id="path3956"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path3958"
+ d="m -1559.2523,-150.68038 c 0,0 0,478.33079 0,478.33079 -142.8742,0.90045 -345.4002,-107.16966 -345.4002,-239.196175 0,-132.026537 159.4368,-239.134595 345.4002,-239.134615 z"
+ style="opacity:0.40206185;color:#000000;fill:url(#radialGradient6719);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path6845"
+ d="m 46.5,25.5 -10.000004,0 0,1.999997 10.000004,0"
+ style="fill:url(#linearGradient6847);fill-opacity:1;stroke:url(#linearGradient6849);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(0.761905,0,0,0.761905,7.388392,5.500001)"
+ d="m 38.25,27.5625 c 0,1.449747 -1.175253,2.625 -2.625,2.625 -1.449747,0 -2.625,-1.175253 -2.625,-2.625 0,-1.449747 1.175253,-2.625 2.625,-2.625 1.449747,0 2.625,1.175253 2.625,2.625 z"
+ sodipodi:ry="2.625"
+ sodipodi:rx="2.625"
+ sodipodi:cy="27.5625"
+ sodipodi:cx="35.625"
+ id="path6851"
+ style="fill:#d0d0ca;fill-opacity:1;stroke:#729fcf;stroke-width:1.31249964;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="rect6804"
+ d="M 1.4999956,25.5 11.5,25.5 l 0,1.999997 -10.0000044,0"
+ style="fill:url(#linearGradient6835);fill-opacity:1;stroke:url(#linearGradient6843-4);stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccccccc"
+ id="path2371"
+ d="m 18.125,2.5 c -0.744057,0 -1.39865,0.3133048 -1.875,0.8125 l -4.21875,5.25 C 11.703624,9.146009 11.5,9.811876 11.5,10.53125 l 0,28.9375 c 0,2.233312 1.797934,4.031249 4.03125,4.03125 l 14.9375,0 C 32.70207,43.499999 34.5,41.702062 34.5,39.46875 l 0,-28.9375 C 34.5,9.811876 34.29638,9.146009 33.96875,8.5625 L 29.75,3.3125 C 29.27365,2.8133048 28.61906,2.5 27.875,2.5 l -9.75,0 z"
+ style="color:#000000;fill:url(#linearGradient2339);fill-opacity:1;fill-rule:nonzero;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.4;marker:none;visibility:visible;display:inline;overflow:visible"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="translate(-40,-1)"
+ d="M 58.125,4.5 C 57.67221,4.5 57.301304,4.6939871 57,5 l -0.03125,0 -4.0625,5.0625 C 52.651026,10.51706 52.5,11.000581 52.5,11.53125 l 0,25.9375 c 0,1.69661 1.334636,3.031249 3.03125,3.03125 l 14.9375,0 C 72.165369,40.499999 73.5,39.165361 73.5,37.46875 l 0,-25.9375 c 0,-0.530673 -0.151026,-1.014195 -0.40625,-1.46875 L 69.03125,5 C 69.024311,4.9927285 69.00702,5.0071301 69,5 68.698695,4.6939857 68.327794,4.5 67.875,4.5 l -9.75,0 z"
+ id="path4329"
+ style="opacity:0.7;color:#000000;fill:none;stroke:#f9f9f9;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.4;marker:none;visibility:visible;display:inline;overflow:visible"
+ inkscape:original="M 58.125 3.5 C 57.380943 3.5 56.72635 3.8133048 56.25 4.3125 L 52.03125 9.5625 C 51.703624 10.146009 51.5 10.811876 51.5 11.53125 L 51.5 37.46875 C 51.5 39.702062 53.297934 41.499999 55.53125 41.5 L 70.46875 41.5 C 72.70207 41.499999 74.5 39.702062 74.5 37.46875 L 74.5 11.53125 C 74.5 10.811876 74.29638 10.146009 73.96875 9.5625 L 69.75 4.3125 C 69.27365 3.8133048 68.61906 3.5 67.875 3.5 L 58.125 3.5 z "
+ inkscape:radius="-1"
+ sodipodi:type="inkscape:offset" />
+ <path
+ style="color:#000000;fill:url(#linearGradient2335);fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:1.4;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m 15.528487,7.5000019 14.942993,0 c 1.677787,0 3.028495,1.3507087 3.028495,3.0284951 l 0,28.943041 c 0,1.677786 -1.350708,3.028494 -3.028495,3.028494 l -14.942993,0 c -1.677786,0 -3.028495,-1.350708 -3.028495,-3.028494 l 0,-28.943041 c 0,-1.6777864 1.350709,-3.0284951 3.028495,-3.0284951 z"
+ id="rect2377"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <rect
+ ry="0"
+ rx="0"
+ y="10.500004"
+ x="15.500004"
+ height="5.0000067"
+ width="14.999999"
+ id="rect4183"
+ style="color:#000000;fill:url(#linearGradient2332);fill-opacity:1;fill-rule:nonzero;stroke:#babdb6;stroke-width:1.00000048;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ ry="0"
+ rx="0"
+ y="17.500006"
+ x="15.500004"
+ height="5.0000067"
+ width="14.999999"
+ id="rect4187"
+ style="fill:url(#linearGradient2329);fill-opacity:1;stroke:#babdb6;stroke-width:1.00000048;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ transform="matrix(0.954546,0,0,0.954547,0.77272,3.181783)"
+ d="m 18.571429,26 c 0,0.867876 -0.703553,1.571429 -1.571429,1.571429 -0.867876,0 -1.571429,-0.703553 -1.571429,-1.571429 0,-0.867876 0.703553,-1.571429 1.571429,-1.571429 0.867876,0 1.571429,0.703553 1.571429,1.571429 z"
+ sodipodi:ry="1.5714285"
+ sodipodi:rx="1.5714285"
+ sodipodi:cy="26"
+ sodipodi:cx="17"
+ id="path4191"
+ style="fill:#d0d0ca;fill-opacity:1;stroke:#555753;stroke-width:1.04761803;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <rect
+ ry="2.4999907"
+ rx="2.4999905"
+ y="25.49999"
+ x="14.500004"
+ height="4.9999981"
+ width="5.000001"
+ id="rect4193"
+ style="fill:none;stroke:url(#linearGradient2325);stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057" />
+ <rect
+ ry="0"
+ rx="0"
+ y="26.500006"
+ x="21.5"
+ height="3.0000033"
+ width="10.000003"
+ id="rect4195"
+ style="fill:#eeeeec;fill-opacity:1;stroke:#babdb6;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ transform="matrix(0.942803,0,0,1.077485,0.8126,-0.100478)"
+ d="m 17.169437,25.61565 c 0,0.256282 -0.237437,0.464039 -0.53033,0.464039 -0.292893,0 -0.53033,-0.207757 -0.53033,-0.464039 0,-0.256281 0.237437,-0.464039 0.53033,-0.464039 0.292893,0 0.53033,0.207758 0.53033,0.464039 z"
+ sodipodi:ry="0.46403882"
+ sodipodi:rx="0.53033012"
+ sodipodi:cy="25.61565"
+ sodipodi:cx="16.639107"
+ id="path4197"
+ style="fill:#f7f7f7;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.942803,0,0,1.008364,0.8126,1.670102)"
+ d="m 17.169437,25.61565 c 0,0.256282 -0.237437,0.464039 -0.53033,0.464039 -0.292893,0 -0.53033,-0.207757 -0.53033,-0.464039 0,-0.256281 0.237437,-0.464039 0.53033,-0.464039 0.292893,0 0.53033,0.207758 0.53033,0.464039 z"
+ sodipodi:ry="0.46403882"
+ sodipodi:rx="0.53033012"
+ sodipodi:cy="25.61565"
+ sodipodi:cx="16.639107"
+ id="path4213"
+ style="fill:#f7f7f7;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <rect
+ ry="2.0110888"
+ rx="2.0110888"
+ y="8.499999"
+ x="13.499996"
+ height="33"
+ width="18.999966"
+ id="rect2379"
+ style="opacity:0.8;color:#000000;fill:none;stroke:url(#linearGradient2319);stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.4;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <g
+ transform="translate(-40,2)"
+ style="opacity:0.19699246;stroke-linecap:round;stroke-linejoin:round"
+ id="g4307">
+ <rect
+ style="color:#000000;fill:url(#linearGradient2341);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ id="rect4239"
+ width="1.0130863"
+ height="8.000001"
+ x="57"
+ y="31" />
+ <rect
+ style="color:#000000;fill:url(#linearGradient2343);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ id="rect4249"
+ width="1.0130863"
+ height="8.000001"
+ x="59"
+ y="31" />
+ <rect
+ style="color:#000000;fill:url(#linearGradient2345);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ id="rect4253"
+ width="1.0130863"
+ height="8.000001"
+ x="61"
+ y="31" />
+ <rect
+ style="color:#000000;fill:url(#linearGradient2347);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ id="rect4257"
+ width="1.0130863"
+ height="8.000001"
+ x="63"
+ y="31" />
+ <rect
+ style="color:#000000;fill:url(#linearGradient2349);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ id="rect4261"
+ width="1.0130863"
+ height="8.000001"
+ x="65"
+ y="31" />
+ <rect
+ style="color:#000000;fill:url(#linearGradient2351);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ id="rect4265"
+ width="1.0130863"
+ height="8.000001"
+ x="67"
+ y="31" />
+ </g>
+ </g>
+ <g
+ id="g6494"
+ transform="matrix(1.5232404,0,0,1.5232404,278.85448,197.45627)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path7013"
+ d="m 5,12 3,0 2,0 -3,0 -2,0 z"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(1.1559927,0,0,1.1167882,-1.4892394,-5.8125919)"
+ d="m 23.157747,34.785942 c 0,3.343864 -3.937494,6.054602 -8.79464,6.054602 -4.8571461,0 -8.7946408,-2.710738 -8.7946408,-6.054602 0,-3.343864 3.9374947,-6.054602 8.7946408,-6.054602 4.857146,0 8.79464,2.710738 8.79464,6.054602 z"
+ sodipodi:ry="6.0546017"
+ sodipodi:rx="8.7946405"
+ sodipodi:cy="34.785942"
+ sodipodi:cx="14.363107"
+ id="path7820"
+ style="opacity:0.45895523;fill:url(#radialGradient6685);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <rect
+ transform="matrix(1.015625,0,0,1.015625,-0.4902344,-0.2714844)"
+ ry="3.7225697"
+ rx="3.7225697"
+ y="2.875"
+ x="15.375001"
+ height="29"
+ width="32.000004"
+ id="rect7696"
+ style="opacity:0.1204819;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter5386)" />
+ <rect
+ ry="2.780735"
+ rx="2.8766227"
+ y="1.5"
+ x="14.500001"
+ height="29"
+ width="32.000004"
+ id="rect5925"
+ style="fill:url(#linearGradient6687);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.94973111;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:0.99236642;stroke-dasharray:none;stroke-dashoffset:0.69999992" />
+ <path
+ transform="matrix(2.1428572,0,0,2.0867798,44.428572,-0.6301697)"
+ d="m -12.5,1.5 c -0.572952,0 -1,0.4270471 -1,1 l 0,11 c 0,0.572953 0.427046,1 1,1 l 12,0 c 0.57295344,0 1,-0.427046 1,-1 l 0,-11 c 0,-0.5729532 -0.42704686,-1 -1,-1 l -12,0 z"
+ id="path6964"
+ style="fill:none;stroke:url(#linearGradient6689);stroke-width:0.44912341;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:0.99236642;stroke-dasharray:none;stroke-dashoffset:0.69999992"
+ inkscape:original="M -12.5 0.5 C -13.608449 0.5 -14.5 1.3915505 -14.5 2.5 L -14.5 13.5 C -14.5 14.608449 -13.60845 15.5 -12.5 15.5 L -0.5 15.5 C 0.60844948 15.5 1.5 14.60845 1.5 13.5 L 1.5 2.5 C 1.5 1.3915505 0.60844948 0.5 -0.5 0.5 L -12.5 0.5 z "
+ inkscape:radius="-0.99866015"
+ sodipodi:type="inkscape:offset" />
+ <path
+ transform="translate(0.25,-0.625)"
+ d="M 14.6875,31 A 0.50950812,0.50950812 0 0 0 14.5,31.09375 c 0,0 -4.304771,3.322239 -8.21875,6.5625 C 4.316376,39.282908 2.5162731,40.913519 1.4375,42.5625 0.91466802,43.361686 0.33442463,44.404861 0.71875,45.75 0.9275427,46.480774 1.4549221,47.109726 2.0625,47.46875 2.6167319,47.796251 3.1674141,47.932778 3.75,48 c 2.2711642,0.262057 4.9083138,-0.390694 8.03125,-1.28125 3.130284,-0.892651 6.703348,-2.114543 10.28125,-3.28125 3.577446,-1.166558 7.199429,-2.282374 10.3125,-2.96875 3.10701,-0.685039 5.758895,-0.841526 7.125,-0.5 0.218805,0.0547 0.263413,0.06213 0.34375,0.09375 -0.01958,0.106035 -0.05666,0.225872 -0.15625,0.4375 -0.490105,1.041473 -2.143138,2.981849 -4.0625,4.78125 -3.845148,3.604826 -8.78125,7.09375 -8.78125,7.09375 a 0.50950812,0.50950812 0 0 0 -0.125,0.71875 l 1.75,2.4375 a 0.50950812,0.50950812 0 0 0 0.6875,0.09375 c 0,0 5.064738,-3.511863 9.21875,-7.40625 2.073974,-1.94435 3.950551,-3.933984 4.9375,-6.03125 0.49266,-1.046902 0.845293,-2.339698 0.34375,-3.65625 -0.510066,-1.338925 -1.773956,-2.154427 -3.15625,-2.5 -2.605897,-0.651474 -5.670788,-0.209671 -9.03125,0.53125 -3.366179,0.742181 -7.042948,1.884249 -10.65625,3.0625 -3.612491,1.177986 -7.118824,2.370401 -10.09375,3.21875 -2.1807601,0.621879 -3.8918327,0.927529 -5.125,1.03125 0.7851691,-0.875391 1.8772687,-1.957308 3.25,-3.09375 3.711358,-3.072518 7.96875,-6.375 7.96875,-6.375 a 0.50950812,0.50950812 0 0 0 0.125,-0.6875 l -1.6875,-2.5 A 0.50950812,0.50950812 0 0 0 14.6875,31 z"
+ id="path7678"
+ style="opacity:0.31927712;fill:url(#linearGradient6691);fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter5406)"
+ inkscape:original="M 14.8125 31.5 C 14.8125 31.5 10.498126 34.830189 6.59375 38.0625 C 4.6415622 39.678655 2.8956918 41.28355 1.875 42.84375 C 1.3646541 43.62385 0.8878846 44.466971 1.21875 45.625 C 1.3841827 46.204014 1.8301355 46.746216 2.3125 47.03125 C 2.7948645 47.316284 3.2706533 47.437479 3.8125 47.5 C 5.9363798 47.745063 8.5434834 47.106406 11.65625 46.21875 C 14.769017 45.331094 18.325496 44.136387 21.90625 42.96875 C 25.487004 41.801113 29.102635 40.662687 32.25 39.96875 C 35.397365 39.274813 38.085104 39.083776 39.625 39.46875 C 40.353931 39.650983 40.370552 39.769574 40.375 39.78125 C 40.379448 39.792926 40.439577 40.11668 40.15625 40.71875 C 39.589596 41.92289 37.911115 43.835283 35.96875 45.65625 C 32.08402 49.298184 27.125 52.78125 27.125 52.78125 L 28.875 55.21875 C 28.875 55.21875 33.91598 51.701816 38.03125 47.84375 C 40.088885 45.914717 41.910404 43.95211 42.84375 41.96875 C 43.310423 40.97707 43.620552 39.855512 43.1875 38.71875 C 42.754448 37.581988 41.646069 36.849017 40.375 36.53125 C 37.914896 35.916224 34.93076 36.32675 31.59375 37.0625 C 28.25674 37.79825 24.575496 38.917637 20.96875 40.09375 C 17.362004 41.269863 13.840358 42.489218 10.84375 43.34375 C 7.9314529 44.174239 5.5458184 44.563842 4.375 44.46875 C 4.9949332 43.521138 6.6709378 41.915095 8.53125 40.375 C 12.251874 37.294811 16.5 34 16.5 34 L 14.8125 31.5 z "
+ inkscape:radius="0.50945717"
+ sodipodi:type="inkscape:offset" />
+ <g
+ transform="translate(20,0)"
+ id="g7542"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <g
+ id="g7162"
+ transform="matrix(1.1666667,0,0,1.2,-3.833333,-36.2)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ sodipodi:nodetypes="cccccccccccscc"
+ id="rect6100-9"
+ d="m -2.34375,51 c -0.2047699,0 -0.3811572,0.101237 -0.5,0.25 l -4.015625,4 C -6.8943841,55.381797 -6.9584881,55.521336 -7,55.65625 l 0,5.520833 c 0,0.363563 0.2965189,0.65625 0.65625,0.65625 l 6.6875,0 c 0.17986547,0 0.3513829,-0.06888 0.46875,-0.1875 l 4,-4 C 4.9298671,57.527216 5,57.358864 5,57.177083 L 5,51.65625 C 5,51.474469 4.9298671,51.306117 4.8125,51.1875 4.6934039,51.068883 4.5236156,51 4.34375,51 l -6.6875,0 z"
+ style="fill:url(#linearGradient6693);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path6105"
+ d="m -6.3738568,55.166667 6.46199924,0 c 0.34688337,0 0.62614331,0.284557 0.62614331,0.638021 l 0,5.390624 c 0,0.353464 -0.27925994,0.638021 -0.62614331,0.638021 l -6.46199924,0 C -6.7207401,61.833333 -7,61.548776 -7,61.195312 l 0,-5.390624 c 0,-0.353464 0.2792599,-0.638021 0.6261432,-0.638021 z"
+ style="fill:url(#linearGradient6695);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ style="opacity:0.12313436;fill:url(#linearGradient6697);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m -5,25 -5,5 4,0 5,-5 -4,0"
+ id="path7253"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#babdb6;fill-rule:evenodd;stroke:none"
+ d="m -1,25 -9.5,4 3.5,0 5,-3 1,-1"
+ id="path6126"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:0.53358208;fill:none;stroke:#ffffff;stroke-width:0.94973099;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0.69999992"
+ d="m -6.5625,25.5 c -0.023832,0 -0.054614,0.0064 -0.15625,0.125 -0.030011,0.02263 -0.061314,0.0435 -0.09375,0.0625 -0.019872,0.02177 -0.040727,0.04263 -0.0625,0.0625 -0.019872,0.02177 -0.040727,0.04263 -0.0625,0.0625 l -0.03125,0 c -0.019872,0.02177 -0.040727,0.04263 -0.0625,0.0625 l -0.1875,0.1875 c -0.106843,0.100345 -0.235062,0.175139 -0.375,0.21875 l -4.25,1.21875 c -0.400496,0.208356 -0.534035,0.34932 -0.59375,0.46875 -8.88e-4,0.0018 0.03402,0.134571 0,0.09375 0.08185,0.09822 0.360373,0.252244 0.84375,0.34375 0.339897,0.06887 0.617058,0.314167 0.726728,0.643174 0.109669,0.329008 0.03512,0.691541 -0.195478,0.950576 l -0.34375,0.375 c -0.01981,0.08756 -0.05384,0.170084 -0.09375,0.3125 -0.0075,0.0266 0.0082,0.03523 0,0.0625 l 0,6.5 c 0,0.05419 3.76e-4,0.115539 0.0625,0.1875 0.03149,0.03648 0.103253,0.0625 0.15625,0.0625 l 7.84375,0 c 0.092572,0 0.168439,-0.0102 0.21875,-0.0625 -1.68e-4,-0.01042 -1.68e-4,-0.02083 0,-0.03125 L 1.4375,32.59375 C 1.489686,32.539502 1.5,32.514607 1.5,32.40625 l 0,-6.625 C 1.5,25.6729 1.489688,25.616751 1.4375,25.5625 1.400675,25.524775 1.282521,25.5 1.25,25.5 l -7.8125,0 z"
+ id="path7235"
+ sodipodi:nodetypes="csssccccccssssccsccsccsccccscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#555753;stroke-width:0.94973099;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0.69999992"
+ d="m -6.5625,24.53125 c -0.387741,0 -0.691692,0.218481 -0.90625,0.46875 L -7.5,24.96875 l -0.03125,0.0625 -0.34375,0.3125 -4.25,1.21875 c -0.03226,0.0071 -0.06369,0.01756 -0.09375,0.03125 -0.548914,0.274457 -0.902027,0.554054 -1.09375,0.9375 -0.191723,0.383446 -0.116521,0.866425 0.125,1.15625 0.328077,0.393692 0.857606,0.552388 1.40625,0.65625 l -0.40625,0.4375 c -0.05629,0.05141 -0.0992,0.115766 -0.125,0.1875 -0.03135,0.121381 -0.0699,0.315787 -0.125,0.5 -0.01612,0.04003 -0.02664,0.08209 -0.03125,0.125 l 0,6.65625 c 0,0.29887 0.113231,0.581675 0.3125,0.8125 0.199269,0.230825 0.510866,0.40625 0.875,0.40625 l 7.84375,0 c 0.323633,0 0.656893,-0.115787 0.90625,-0.375 L 2.125,33.28125 c 0.22588,-0.234805 0.34375,-0.539646 0.34375,-0.875 l 0,-6.625 c 0,-0.335353 -0.117873,-0.640195 -0.34375,-0.875 -0.223656,-0.229118 -0.551364,-0.375 -0.875,-0.375 l -7.8125,0 z"
+ id="path7229"
+ sodipodi:nodetypes="ccccccsssccssccsccccccscc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient6699);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m -1,25 -11,2.5 2,1.5 3,0 5,-3 1,-1"
+ id="path7184"
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient6701);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m -5,25 -7,2 4,0 7,-2 -4,0"
+ id="path7171"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient6703);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="M -12,27 -8.2868349,27 -8,27 c -2,1 -0.5,2 1,2 l -4,0 c -1.5,0 -3,-1 -1,-2 z"
+ id="rect7173"
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path7275"
+ d="m -9.5941664,32 4.1883324,0 C -5.181002,32 -5,32.195125 -5,32.4375 l 0,3.125 C -5,35.804876 -5.181002,36 -5.405834,36 l -4.1883324,0 C -9.8189979,36 -10,35.804876 -10,35.5625 l 0,-3.125 C -10,32.195125 -9.8189979,32 -9.5941664,32 z"
+ style="fill:url(#linearGradient6705);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ sodipodi:nodetypes="ccccccccccccccccc"
+ id="rect7327"
+ d="m 29.480478,10.068145 c -0.639015,0 -1.155458,0.515912 -1.155458,1.154269 l 0,0.287788 c 0,0.293222 -0.229312,0.543185 -0.543745,0.543185 l -1.563267,0 c -0.639015,0 -1.155458,0.703412 -1.155458,1.341769 l 0,6.44493 c 0,0.638358 0.516444,1.154269 1.155458,1.154269 l 8.563984,0 c 0.639015,0 1.155458,-0.515912 1.155458,-1.154269 l 0,-6.44493 c 0,-0.638358 -0.516442,-1.341769 -1.155458,-1.341769 l -1.563267,0 c -0.261777,0.01767 -0.543745,-0.186296 -0.543745,-0.526211 l 0,-0.304762 c 0,-0.638358 -0.516444,-1.154269 -1.155458,-1.154269 l -2.039044,0 z"
+ style="fill:url(#linearGradient6707);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccccccc"
+ id="path7350"
+ d="m 29.5625,9.4375 c -1.109356,0 -1.984686,0.908013 -2.0625,2 l -0.9375,0 c -1.15908,0 -2.125,0.965921 -2.125,2.125 l 0,5.875 c 0,1.15908 0.965921,2.125 2.125,2.125 l 7.875,0 c 1.15908,0 2.125,-0.965921 2.125,-2.125 l 0,-5.875 c 0,-1.159077 -0.965921,-2.125 -2.125,-2.125 l -0.9375,0 c -0.07781,-1.091988 -0.953145,-2 -2.0625,-2 l -1.875,0 z"
+ style="fill:none;stroke:url(#linearGradient6709);stroke-width:0.94973099;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0.69999992"
+ inkscape:connector-curvature="0" />
+ <g
+ transform="translate(1,-8)"
+ style="fill-opacity:1;stroke:url(#linearGradient7060);stroke-width:0.94973099;stroke-linecap:round;stroke-linejoin:round"
+ id="g7393">
+ <path
+ style="fill:none;stroke:url(#linearGradient6711);stroke-width:0.94973099px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ d="m 26.5,26.5 0,-2"
+ id="path7352"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:url(#linearGradient6713);stroke-width:0.94973099px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ d="m 28.5,26.5 0,-2"
+ id="path7362"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:url(#linearGradient6716);stroke-width:0.94973099px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ d="m 30.5,26.5 0,-2"
+ id="path7364"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:url(#linearGradient6718);stroke-width:0.94973099px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ d="m 32.5,26.5 0,-2"
+ id="path7366"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ sodipodi:nodetypes="cssssssssssssccssssssscscc"
+ id="path7506"
+ d="m 14.6875,30.5625 c 0,0 -4.189374,3.267689 -8.09375,6.5 -1.9521878,1.616155 -3.6980582,3.22105 -4.71875,4.78125 -0.5103459,0.7801 -0.9871154,1.623221 -0.65625,2.78125 0.1654327,0.579014 0.6113855,1.121216 1.09375,1.40625 0.4823645,0.285034 0.9581533,0.406229 1.5,0.46875 2.1238798,0.245063 4.7309834,-0.393594 7.84375,-1.28125 3.112767,-0.887656 6.669246,-2.082363 10.25,-3.25 3.580754,-1.167637 7.196385,-2.306063 10.34375,-3 3.147365,-0.693937 5.835104,-0.884974 7.375,-0.5 0.728931,0.182233 0.745552,0.300824 0.75,0.3125 0.0044,0.01168 0.06458,0.33543 -0.21875,0.9375 -0.566654,1.20414 -2.245135,3.116533 -4.1875,4.9375 -3.88473,3.641934 -8.84375,7.125 -8.84375,7.125 l 1.75,2.4375 c 0,0 5.04098,-3.516934 9.15625,-7.375 2.057635,-1.929033 3.879154,-3.89164 4.8125,-5.875 0.466673,-0.99168 0.776802,-2.113238 0.34375,-3.25 -0.433052,-1.136762 -1.541431,-1.869733 -2.8125,-2.1875 -2.460104,-0.615026 -5.44424,-0.2045 -8.78125,0.53125 -3.33701,0.73575 -7.018254,1.855137 -10.625,3.03125 -3.606746,1.176113 -7.128392,2.395468 -10.125,3.25 C 7.9314529,43.174239 5.5458184,43.563842 4.375,43.46875 4.9949332,42.521138 6.6709378,40.915095 8.53125,39.375 12.251874,36.294811 16.5,33 16.5,33 l -1.8125,-2.4375 z"
+ style="fill:url(#linearGradient6722);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient6724);stroke-width:0.94973099;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cssc"
+ id="path7502"
+ d="m 15.672335,31.269607 c 0,0 -18.4375,12.6875 -11.9375,13.4375 6.5,0.75 28,-10 36,-8 8,2 -12,16 -12,16"
+ style="opacity:0.19029852;fill:none;stroke:url(#linearGradient6726);stroke-width:0.94973099px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path7512"
+ d="m 10.088769,30.03125 0.317481,2 4.1875,0 c 0.224832,0 0.40625,0.195125 0.40625,0.4375 l 0,3.125 2,-0.3125 0,-4.46875 c 0,-0.424157 -0.314054,-0.78125 -0.71875,-0.78125 l -6.192481,0 z"
+ style="fill:url(#linearGradient6728);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="translate(20,0)"
+ id="path7810"
+ d="m -9.5941664,32 4.1883324,0 C -5.181002,32 -5,32.195125 -5,32.4375 l 0,3.125 C -5,35.804876 -5.181002,36 -5.405834,36 l -4.1883324,0 C -9.8189979,36 -10,35.804876 -10,35.5625 l 0,-3.125 C -10,32.195125 -9.8189979,32 -9.5941664,32 z"
+ style="opacity:0.35447759;fill:url(#linearGradient6730);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ x="626.40234"
+ y="435.07227"
+ id="text6960"><tspan
+ sodipodi:role="line"
+ id="tspan6962"
+ x="626.40234"
+ y="435.07227">GGSN</tspan></text>
+ <g
+ transform="matrix(1.4099377,0,0,1.4099377,561.86433,356.84118)"
+ id="g6964"
+ inkscape:label="Layer 1"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <g
+ id="g6966"
+ transform="matrix(0.01477517,0,0,0.02195012,36.14156,38.80781)"
+ style="opacity:0.6;stroke-linecap:round;stroke-linejoin:round;display:inline">
+ <rect
+ y="-150.69685"
+ x="-1559.2523"
+ height="478.35718"
+ width="1339.6335"
+ id="rect6968"
+ style="opacity:0.40206185;color:#000000;fill:url(#linearGradient7016);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path6970"
+ d="m -219.61876,-150.68038 c 0,0 0,478.33079 0,478.33079 142.874166,0.90045 345.40022,-107.16966 345.40014,-239.196175 0,-132.026537 -159.436816,-239.134595 -345.40014,-239.134615 z"
+ style="opacity:0.40206185;color:#000000;fill:url(#radialGradient7018);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:0.40206185;color:#000000;fill:url(#radialGradient7020);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m -1559.2523,-150.68038 c 0,0 0,478.33079 0,478.33079 -142.8742,0.90045 -345.4002,-107.16966 -345.4002,-239.196175 0,-132.026537 159.4368,-239.134595 345.4002,-239.134615 z"
+ id="path6972"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ style="fill:url(#linearGradient7022);fill-opacity:1;stroke:url(#linearGradient7024);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 46.5,25.5 -10.000004,0 0,1.999997 10.000004,0"
+ id="path6974"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#d0d0ca;fill-opacity:1;stroke:#729fcf;stroke-width:1.31249964;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path6976"
+ sodipodi:cx="35.625"
+ sodipodi:cy="27.5625"
+ sodipodi:rx="2.625"
+ sodipodi:ry="2.625"
+ d="m 38.25,27.5625 c 0,1.449747 -1.175253,2.625 -2.625,2.625 -1.449747,0 -2.625,-1.175253 -2.625,-2.625 0,-1.449747 1.175253,-2.625 2.625,-2.625 1.449747,0 2.625,1.175253 2.625,2.625 z"
+ transform="matrix(0.761905,0,0,0.761905,7.388392,5.500001)" />
+ <path
+ style="fill:url(#linearGradient7026);fill-opacity:1;stroke:url(#linearGradient7028);stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
+ d="M 1.4999956,25.5 11.5,25.5 l 0,1.999997 -10.0000044,0"
+ id="path6978"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:url(#linearGradient7030);fill-opacity:1;fill-rule:nonzero;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.4;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m 18.125,2.5 c -0.744057,0 -1.39865,0.3133048 -1.875,0.8125 l -4.21875,5.25 C 11.703624,9.146009 11.5,9.811876 11.5,10.53125 l 0,28.9375 c 0,2.233312 1.797934,4.031249 4.03125,4.03125 l 14.9375,0 C 32.70207,43.499999 34.5,41.702062 34.5,39.46875 l 0,-28.9375 C 34.5,9.811876 34.29638,9.146009 33.96875,8.5625 L 29.75,3.3125 C 29.27365,2.8133048 28.61906,2.5 27.875,2.5 l -9.75,0 z"
+ id="path6980"
+ sodipodi:nodetypes="ccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="-1"
+ inkscape:original="M 58.125 3.5 C 57.380943 3.5 56.72635 3.8133048 56.25 4.3125 L 52.03125 9.5625 C 51.703624 10.146009 51.5 10.811876 51.5 11.53125 L 51.5 37.46875 C 51.5 39.702062 53.297934 41.499999 55.53125 41.5 L 70.46875 41.5 C 72.70207 41.499999 74.5 39.702062 74.5 37.46875 L 74.5 11.53125 C 74.5 10.811876 74.29638 10.146009 73.96875 9.5625 L 69.75 4.3125 C 69.27365 3.8133048 68.61906 3.5 67.875 3.5 L 58.125 3.5 z "
+ style="opacity:0.7;color:#000000;fill:none;stroke:#f9f9f9;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.4;marker:none;visibility:visible;display:inline;overflow:visible"
+ id="path6982"
+ d="M 58.125,4.5 C 57.67221,4.5 57.301304,4.6939871 57,5 l -0.03125,0 -4.0625,5.0625 C 52.651026,10.51706 52.5,11.000581 52.5,11.53125 l 0,25.9375 c 0,1.69661 1.334636,3.031249 3.03125,3.03125 l 14.9375,0 C 72.165369,40.499999 73.5,39.165361 73.5,37.46875 l 0,-25.9375 c 0,-0.530673 -0.151026,-1.014195 -0.40625,-1.46875 L 69.03125,5 C 69.024311,4.9927285 69.00702,5.0071301 69,5 68.698695,4.6939857 68.327794,4.5 67.875,4.5 l -9.75,0 z"
+ transform="translate(-40,-1)" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path6984"
+ d="m 15.528487,7.5000019 14.942993,0 c 1.677787,0 3.028495,1.3507087 3.028495,3.0284951 l 0,28.943041 c 0,1.677786 -1.350708,3.028494 -3.028495,3.028494 l -14.942993,0 c -1.677786,0 -3.028495,-1.350708 -3.028495,-3.028494 l 0,-28.943041 c 0,-1.6777864 1.350709,-3.0284951 3.028495,-3.0284951 z"
+ style="color:#000000;fill:url(#linearGradient7032);fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:1.4;marker:none;visibility:visible;display:inline;overflow:visible"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="color:#000000;fill:url(#linearGradient7034);fill-opacity:1;fill-rule:nonzero;stroke:#babdb6;stroke-width:1.00000048;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ id="rect6986"
+ width="14.999999"
+ height="5.0000067"
+ x="15.500004"
+ y="10.500004"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:url(#linearGradient7036);fill-opacity:1;stroke:#babdb6;stroke-width:1.00000048;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect6988"
+ width="14.999999"
+ height="5.0000067"
+ x="15.500004"
+ y="17.500006"
+ rx="0"
+ ry="0" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#d0d0ca;fill-opacity:1;stroke:#555753;stroke-width:1.04761803;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path6990"
+ sodipodi:cx="17"
+ sodipodi:cy="26"
+ sodipodi:rx="1.5714285"
+ sodipodi:ry="1.5714285"
+ d="m 18.571429,26 c 0,0.867876 -0.703553,1.571429 -1.571429,1.571429 -0.867876,0 -1.571429,-0.703553 -1.571429,-1.571429 0,-0.867876 0.703553,-1.571429 1.571429,-1.571429 0.867876,0 1.571429,0.703553 1.571429,1.571429 z"
+ transform="matrix(0.954546,0,0,0.954547,0.77272,3.181783)" />
+ <rect
+ style="fill:none;stroke:url(#linearGradient7038);stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057"
+ id="rect6992"
+ width="5.000001"
+ height="4.9999981"
+ x="14.500004"
+ y="25.49999"
+ rx="2.4999905"
+ ry="2.4999907" />
+ <rect
+ style="fill:#eeeeec;fill-opacity:1;stroke:#babdb6;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect6994"
+ width="10.000003"
+ height="3.0000033"
+ x="21.5"
+ y="26.500006"
+ rx="0"
+ ry="0" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#f7f7f7;fill-opacity:1;stroke:none"
+ id="path6996"
+ sodipodi:cx="16.639107"
+ sodipodi:cy="25.61565"
+ sodipodi:rx="0.53033012"
+ sodipodi:ry="0.46403882"
+ d="m 17.169437,25.61565 c 0,0.256282 -0.237437,0.464039 -0.53033,0.464039 -0.292893,0 -0.53033,-0.207757 -0.53033,-0.464039 0,-0.256281 0.237437,-0.464039 0.53033,-0.464039 0.292893,0 0.53033,0.207758 0.53033,0.464039 z"
+ transform="matrix(0.942803,0,0,1.077485,0.8126,-0.100478)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#f7f7f7;fill-opacity:1;stroke:none"
+ id="path6998"
+ sodipodi:cx="16.639107"
+ sodipodi:cy="25.61565"
+ sodipodi:rx="0.53033012"
+ sodipodi:ry="0.46403882"
+ d="m 17.169437,25.61565 c 0,0.256282 -0.237437,0.464039 -0.53033,0.464039 -0.292893,0 -0.53033,-0.207757 -0.53033,-0.464039 0,-0.256281 0.237437,-0.464039 0.53033,-0.464039 0.292893,0 0.53033,0.207758 0.53033,0.464039 z"
+ transform="matrix(0.942803,0,0,1.008364,0.8126,1.670102)" />
+ <rect
+ style="opacity:0.8;color:#000000;fill:none;stroke:url(#linearGradient7040);stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.4;marker:none;visibility:visible;display:inline;overflow:visible"
+ id="rect7000"
+ width="18.999966"
+ height="33"
+ x="13.499996"
+ y="8.499999"
+ rx="2.0110888"
+ ry="2.0110888" />
+ <g
+ id="g7002"
+ style="opacity:0.19699246;stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-40,2)">
+ <rect
+ y="31"
+ x="57"
+ height="8.000001"
+ width="1.0130863"
+ id="rect7004"
+ style="color:#000000;fill:url(#linearGradient7042);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ y="31"
+ x="59"
+ height="8.000001"
+ width="1.0130863"
+ id="rect7006"
+ style="color:#000000;fill:url(#linearGradient7044);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ y="31"
+ x="61"
+ height="8.000001"
+ width="1.0130863"
+ id="rect7008"
+ style="color:#000000;fill:url(#linearGradient7046);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ y="31"
+ x="63"
+ height="8.000001"
+ width="1.0130863"
+ id="rect7010"
+ style="color:#000000;fill:url(#linearGradient7048);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ y="31"
+ x="65"
+ height="8.000001"
+ width="1.0130863"
+ id="rect7012"
+ style="color:#000000;fill:url(#linearGradient7050);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ y="31"
+ x="67"
+ height="8.000001"
+ width="1.0130863"
+ id="rect7014"
+ style="color:#000000;fill:url(#linearGradient7052);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ </g>
+ </g>
+ <text
+ id="text7066"
+ y="101.53799"
+ x="748.39716"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ xml:space="preserve"><tspan
+ y="101.53799"
+ x="748.39716"
+ sodipodi:role="line"
+ id="tspan7070">VLR</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ x="747.76483"
+ y="340.22113"
+ id="text7293"><tspan
+ id="tspan7297"
+ sodipodi:role="line"
+ x="747.76483"
+ y="340.22113">EIR</tspan></text>
+ <text
+ id="text8171"
+ y="283.42673"
+ x="598.02264"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ xml:space="preserve"><tspan
+ y="283.42673"
+ x="598.02264"
+ sodipodi:role="line"
+ id="tspan7511">MSC server</tspan></text>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round;display:inline"
+ id="g7865"
+ transform="matrix(1.6839963,0,0,1.6839963,440.2001,197.34288)">
+ <g
+ inkscape:label="Layer 1"
+ id="layer1-7"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <g
+ style="opacity:0.4;stroke-linecap:round;stroke-linejoin:round"
+ transform="matrix(1,0,0,1.6875,-6,-5.5625)"
+ id="g5310">
+ <rect
+ style="fill:url(#radialGradient5318-5);fill-opacity:1;stroke:none"
+ id="rect5312"
+ width="4"
+ height="8"
+ x="9.5"
+ y="21" />
+ <rect
+ style="fill:url(#radialGradient5320-2);fill-opacity:1;stroke:none"
+ id="rect5314"
+ width="4"
+ height="8"
+ x="-50.5"
+ y="-29"
+ transform="scale(-1,-1)" />
+ <rect
+ style="fill:url(#linearGradient5322);fill-opacity:1;stroke:none"
+ id="rect5316"
+ width="33"
+ height="8"
+ x="13.5"
+ y="21" />
+ </g>
+ <path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ id="path2495"
+ d="m 10.0625,22.504459 c -0.01534,0.003 -0.04893,0.02718 -0.0625,0.03125 -0.00435,0.0015 -0.027066,-0.0016 -0.03125,0 -0.00388,0.0019 -0.027502,0.02926 -0.03125,0.03125 -0.00351,0.0023 -0.027847,-0.0024 -0.03125,0 -0.138974,0.106837 -0.205623,0.359232 -0.5625,0.8125 L 7,30.191959 c 1.93e-4,0.0075 -3.84e-4,0.02381 0,0.03125 -0.010751,0.01212 0.010461,0.05012 0,0.0625 -0.298139,0.35285 -0.5,0.781029 -0.5,1.28125 L 6.53125,38.5 c 0,1.123303 0.907948,2.031251 2.03125,2.03125 l 30.9375,0 c 1.123303,0 2.03125,-0.907947 2.03125,-2.03125 L 41.5,31.566959 c 0,-0.500221 -0.201861,-0.9284 -0.5,-1.28125 7.6e-4,-0.0073 -5.73e-4,-0.02386 0,-0.03125 -0.0053,-0.0061 0.0054,-0.02519 0,-0.03125 3.84e-4,-0.0074 -1.93e-4,-0.02376 0,-0.03125 l -2.5,-6.8125 c -0.378776,-0.468361 -0.44102,-0.710816 -0.59375,-0.8125 -0.0037,-0.002 -0.0274,-0.02934 -0.03125,-0.03125 -0.004,-0.0018 -0.0271,0.0016 -0.03125,0 -0.05842,-0.01816 -0.149481,-0.03125 -0.25,-0.03125 l -27.34375,0 c -0.07732,0 -0.13637,-0.01005 -0.1875,0 z"
+ style="color:#000000;fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2164);stroke-width:1.1919533;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ sodipodi:nodetypes="cssssccssccccccsssccsssccc"
+ inkscape:connector-curvature="0" />
+ <rect
+ ry="1.6088903"
+ rx="1.5195075"
+ y="31"
+ x="7"
+ height="9"
+ width="34"
+ id="rect4028"
+ style="fill:url(#linearGradient4975);fill-opacity:1;stroke:none" />
+ <rect
+ ry="2.4999917"
+ rx="2.49999"
+ y="33.500023"
+ x="8.4999924"
+ height="4.9999833"
+ width="5.000011"
+ id="rect5179"
+ style="fill:none;stroke:url(#linearGradient5193);stroke-width:1.19195378;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057" />
+ <rect
+ ry="1.4999907"
+ rx="1.4999907"
+ y="34.500027"
+ x="9.5"
+ height="2.9999814"
+ width="3"
+ id="rect5059"
+ style="fill:url(#linearGradient5091);fill-opacity:1;stroke:#4e9a06;stroke-width:1.19195378;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057" />
+ <rect
+ ry="1.4999987"
+ rx="1.4999987"
+ y="34.500015"
+ x="15.5"
+ height="2.9999974"
+ width="3"
+ id="rect5093"
+ style="fill:url(#linearGradient5095);fill-opacity:1;stroke:#c4a000;stroke-width:1.19195366;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057" />
+ <rect
+ ry="1.4999987"
+ rx="1.4999987"
+ y="34.500015"
+ x="21.5"
+ height="2.9999974"
+ width="3"
+ id="rect5099"
+ style="fill:url(#linearGradient5101);fill-opacity:1;stroke:#ce5c00;stroke-width:1.19195366;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057" />
+ <path
+ transform="translate(0.75,0.25)"
+ d="M 10,35.25 C 10,35.388071 9.8880712,35.5 9.75,35.5 9.6119288,35.5 9.5,35.388071 9.5,35.25 9.5,35.111929 9.6119288,35 9.75,35 9.8880712,35 10,35.111929 10,35.25 z"
+ sodipodi:ry="0.25"
+ sodipodi:rx="0.25"
+ sodipodi:cy="35.25"
+ sodipodi:cx="9.75"
+ id="path5117"
+ style="opacity:0.75675677;fill:#f57900;fill-opacity:1;stroke:#ffffff;stroke-width:1.19195342;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057"
+ sodipodi:type="arc" />
+ <path
+ transform="translate(6.75,0.25)"
+ d="M 10,35.25 C 10,35.388071 9.8880712,35.5 9.75,35.5 9.6119288,35.5 9.5,35.388071 9.5,35.25 9.5,35.111929 9.6119288,35 9.75,35 9.8880712,35 10,35.111929 10,35.25 z"
+ sodipodi:ry="0.25"
+ sodipodi:rx="0.25"
+ sodipodi:cy="35.25"
+ sodipodi:cx="9.75"
+ id="path5119"
+ style="opacity:0.85675677;fill:#f57900;fill-opacity:1;stroke:#ffffff;stroke-width:1.19195342;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057"
+ sodipodi:type="arc" />
+ <path
+ transform="translate(12.75,0.25)"
+ d="M 10,35.25 C 10,35.388071 9.8880712,35.5 9.75,35.5 9.6119288,35.5 9.5,35.388071 9.5,35.25 9.5,35.111929 9.6119288,35 9.75,35 9.8880712,35 10,35.111929 10,35.25 z"
+ sodipodi:ry="0.25"
+ sodipodi:rx="0.25"
+ sodipodi:cy="35.25"
+ sodipodi:cx="9.75"
+ id="path5121"
+ style="opacity:0.75675677;fill:#f57900;fill-opacity:1;stroke:#ffffff;stroke-width:1.19195342;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057"
+ sodipodi:type="arc" />
+ <rect
+ ry="2.4999917"
+ rx="2.49999"
+ y="33.500023"
+ x="14.499992"
+ height="4.9999833"
+ width="5.000011"
+ id="rect5195"
+ style="fill:none;stroke:url(#linearGradient5197);stroke-width:1.19195378;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057" />
+ <rect
+ ry="2.4999917"
+ rx="2.49999"
+ y="33.500023"
+ x="20.499992"
+ height="4.9999833"
+ width="5.000011"
+ id="rect5199"
+ style="fill:none;stroke:url(#linearGradient5201);stroke-width:1.19195378;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057" />
+ <g
+ transform="translate(-1,0)"
+ style="fill:url(#linearGradient8534);fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ id="g5288">
+ <g
+ style="fill:url(#linearGradient8522);fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ id="g4999"
+ transform="translate(-2,0)">
+ <rect
+ ry="0.5"
+ rx="0.5"
+ y="34"
+ x="33"
+ height="4.5"
+ width="1"
+ id="rect4979"
+ style="fill:url(#linearGradient2057);fill-opacity:1;stroke:none" />
+ </g>
+ <g
+ style="fill:url(#linearGradient8524);fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ id="g5007">
+ <rect
+ ry="0.5"
+ rx="0.5"
+ y="34"
+ x="33"
+ height="4.5"
+ width="1"
+ id="rect5011"
+ style="fill:url(#linearGradient2061);fill-opacity:1;stroke:none" />
+ </g>
+ <g
+ style="fill:url(#linearGradient8526);fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ id="g5017"
+ transform="translate(2,0)">
+ <rect
+ ry="0.5"
+ rx="0.5"
+ y="34"
+ x="33"
+ height="4.5"
+ width="1"
+ id="rect5021"
+ style="fill:url(#linearGradient2065);fill-opacity:1;stroke:none" />
+ </g>
+ <g
+ style="fill:url(#linearGradient8528);fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ id="g5027"
+ transform="translate(4,0)">
+ <rect
+ ry="0.5"
+ rx="0.5"
+ y="34"
+ x="33"
+ height="4.5"
+ width="1"
+ id="rect5031"
+ style="fill:url(#linearGradient2069);fill-opacity:1;stroke:none" />
+ </g>
+ <g
+ style="fill:url(#linearGradient8530);fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ id="g5037"
+ transform="translate(6,0)">
+ <rect
+ ry="0.5"
+ rx="0.5"
+ y="34"
+ x="33"
+ height="4.5"
+ width="1"
+ id="rect5041"
+ style="fill:url(#linearGradient2073);fill-opacity:1;stroke:none" />
+ </g>
+ <g
+ style="fill:url(#linearGradient8532);fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ id="g5230-2"
+ transform="translate(-4,0)">
+ <rect
+ ry="0.5"
+ rx="0.5"
+ y="34"
+ x="33"
+ height="4.5"
+ width="1"
+ id="rect5234"
+ style="fill:url(#linearGradient2077);fill-opacity:1;stroke:none" />
+ </g>
+ </g>
+ <path
+ d="m 10.4375,23.46875 c -0.05668,0.09312 -0.124527,0.211556 -0.21875,0.34375 l -2.25,6.46875 a 0.97236903,0.97236903 0 0 1 0,0.03125 0.97236903,0.97236903 0 0 1 0,0.0625 c -0.00269,0.03459 0.0088,0.04902 0,0.09375 -0.011731,0.05964 -0.028776,0.110654 -0.0625,0.1875 -0.00985,0.02245 -0.043668,0.03169 -0.0625,0.0625 -0.04563,0.07466 -0.093287,0.186952 -0.09375,0.1875 -0.1875108,0.221921 -0.28125,0.417598 -0.28125,0.65625 L 7.5,38.5 c 0,0.599388 0.4631135,1.062501 1.0625,1.0625 l 30.9375,0 c 0.599389,0 1.0625,-0.463111 1.0625,-1.0625 l -0.03125,-6.9375 c 0,-0.238652 -0.09374,-0.434329 -0.28125,-0.65625 a 0.97236903,0.97236903 0 0 1 0,-0.03125 0.97236903,0.97236903 0 0 1 -0.09375,-0.125 0.97236903,0.97236903 0 0 1 0,-0.03125 A 0.97236903,0.97236903 0 0 1 40.0625,30.5 c -0.0031,-0.0063 0.002,-0.02721 0,-0.03125 -0.0029,-0.0061 -0.03123,-0.03115 -0.03125,-0.03125 -5.7e-5,-2.8e-4 0.0019,-0.04282 0,-0.0625 l 0,-0.03125 -2.375,-6.5 c -0.110187,-0.147962 -0.219199,-0.277139 -0.28125,-0.375 l -26.9375,0 z"
+ id="path2966"
+ style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1.1919533;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ inkscape:original="M 10.0625 22.5 C 10.047161 22.503014 10.013575 22.527184 10 22.53125 C 9.995651 22.532728 9.972934 22.529649 9.96875 22.53125 C 9.964867 22.533108 9.941248 22.560511 9.9375 22.5625 C 9.933992 22.564763 9.909653 22.560098 9.90625 22.5625 C 9.767276 22.669337 9.700627 22.921732 9.34375 23.375 L 7 30.1875 C 7.000193 30.194989 6.999616 30.211311 7 30.21875 C 6.989249 30.230871 7.010461 30.268869 7 30.28125 C 6.701861 30.6341 6.5 31.062279 6.5 31.5625 L 6.53125 38.5 C 6.53125 39.623303 7.439198 40.531251 8.5625 40.53125 L 39.5 40.53125 C 40.623303 40.53125 41.53125 39.623303 41.53125 38.5 L 41.5 31.5625 C 41.5 31.062279 41.298139 30.6341 41 30.28125 C 41.00076 30.273915 40.999427 30.257389 41 30.25 C 40.994697 30.243874 41.005375 30.224811 41 30.21875 C 41.000384 30.211311 40.999807 30.194989 41 30.1875 L 38.5 23.375 C 38.121224 22.906639 38.05898 22.664184 37.90625 22.5625 C 37.902538 22.560463 37.878847 22.533156 37.875 22.53125 C 37.871006 22.529474 37.8479 22.532897 37.84375 22.53125 C 37.785333 22.513087 37.694269 22.5 37.59375 22.5 L 10.25 22.5 C 10.172677 22.5 10.11363 22.489952 10.0625 22.5 z "
+ inkscape:radius="-0.9722718"
+ sodipodi:type="inkscape:offset" />
+ </g>
+ <g
+ inkscape:label="phone"
+ id="layer2-3"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <g
+ transform="matrix(1.000314,0,0,1,-0.002355,-7.00001)"
+ id="g2366-0"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ style="color:#000000;fill:url(#radialGradient4024-0);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3404-2);stroke-width:1.1917665;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m 8.2474619,14.5 7.7498701,-2.999994 16,0 L 39.741876,14.5 c 0.256803,0.06883 0.747462,1.333368 0.747462,1.747462 l 0,2.505076 c 0,0.414094 -0.333368,0.747462 -0.747462,0.747462 l -5.752538,0 -2,-4 -15.5,0 -2.5,4 -5.7418761,0 C 7.833368,19.5 7.5,19.166632 7.5,18.752538 l 0,-2.505076 C 7.5,15.833368 7.9909958,14.568741 8.2474619,14.5 z"
+ id="rect2276-4"
+ sodipodi:nodetypes="ccczccccccccccz"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ transform="matrix(1.000314,0,0,1,-0.002355,-7.00001)"
+ sodipodi:nodetypes="ccsccccccccsccc"
+ id="path4056-4"
+ d="M 16.1875,12.46875 8.8125,15.3125 C 8.770706,15.38818 8.740325,15.496831 8.6875,15.625 8.559965,15.934436 8.46875,16.429219 8.46875,16.25 l 0,2.28125 5,0 c 0.858697,-1.529381 1.128913,-2.553892 3.03125,-2 l 15.5,0 c 0.859584,0.447471 1.469779,-1.114201 2.625,2 l 4.90625,0 0,-2.28125 c 0,0.178953 -0.09127,-0.31563 -0.21875,-0.625 -0.0528,-0.128142 -0.08323,-0.236865 -0.125,-0.3125 l -7.375,-2.84375 -15.625,0 z"
+ style="opacity:0.6;color:#000000;fill:none;stroke:url(#radialGradient4068-8);stroke-width:1.19176626;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ inkscape:connector-curvature="0" />
+ <g
+ style="opacity:0.8;stroke-linecap:round;stroke-linejoin:round"
+ transform="matrix(1,0,0,1.0625,0,-1.3125)"
+ id="g4065-5">
+ <rect
+ style="fill:url(#radialGradient4070-6);fill-opacity:1;stroke:none"
+ id="rect4030-7"
+ width="4"
+ height="8"
+ x="9.5"
+ y="21" />
+ <rect
+ style="fill:url(#radialGradient4072-4);fill-opacity:1;stroke:none"
+ id="rect4041-8"
+ width="4"
+ height="8"
+ x="-38.5"
+ y="-29"
+ transform="scale(-1,-1)" />
+ <rect
+ style="fill:url(#linearGradient4074-1);fill-opacity:1;stroke:none"
+ id="rect4045-9"
+ width="21"
+ height="8"
+ x="13.5"
+ y="21" />
+ </g>
+ <path
+ sodipodi:nodetypes="ccccccsccccccsc"
+ id="rect2236-8"
+ d="m 17.509407,7.5 2,0 0.5,2 8.002512,0 0.497488,-2 2,0 c 1.123656,0 1.740719,0.9709838 2.03297,2 l 3.976136,13.999994 0.02763,2 c 0,1.060896 -0.904604,2 -2.02826,2 l -21.006594,0 c -1.123656,0 -1.972996,-0.939104 -1.972996,-2 l -0.02763,-2 L 15.509407,9.5 c 0.293822,-1.0286979 0.876344,-2 2,-2 z"
+ style="color:#000000;fill:url(#linearGradient1614-1);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient1616-2);stroke-width:1.19195318;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccscccsc"
+ id="path2297-7"
+ d="m 30.504082,8 -1.588859,0.022097 -0.592,2 L 19.632583,9.955806 19.044665,8.022097 17.5,8 c -1.078709,0 -1.426702,0.8189946 -1.687047,1.789079 l -2.4042,8.958396 -1.157183,3.752519 c 6.001884,-7.205882 17.755181,4 21.876475,-5.73172 L 32.164603,9.789079 C 31.892547,8.8220351 31.582792,8 30.504082,8 z"
+ style="opacity:0.24324323;color:#000000;fill:url(#linearGradient1601-3);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.9999997;marker:none;visibility:visible;display:inline;overflow:visible"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccsccccccsc"
+ id="path2279-0"
+ d="m 17.500314,8.5 1.234521,0 0.497174,2 9.444768,-0.0221 0.654679,-1.9779 1.17294,0 c 0.500157,0 0.739705,0.088799 1.000314,1 l 4.004082,13.999994 0,1.5 c 0,1.5 0,1.5 -1.500471,1.5 l -20.00628,0 c -1.500471,0 -1.500471,0 -1.500471,-1.5 l 0,-1.5 L 16.5,9.5 c 0.260325,-0.911495 0.500157,-1 1.000314,-1 z"
+ style="opacity:0.6;color:#000000;fill:none;stroke:url(#linearGradient1598-1);stroke-width:1.19195318;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="rect4094-2"
+ d="m 18.67949,9.4999962 10.64178,0 c 0.597659,0 1.078805,0.4882234 1.078805,1.0946718 L 32,21.40532 c 0,0.606448 -0.481147,1.094672 -1.078807,1.094672 l -13.853815,-0.01237 c -0.59766,0 -1.078807,-0.488223 -1.078807,-1.094671 l 1.612114,-10.798283 c 0,-0.6064484 0.481147,-1.0946718 1.078805,-1.0946718 z"
+ style="fill:url(#linearGradient2960-6);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <g
+ style="fill:url(#linearGradient8536);fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(0,0.5)"
+ id="g3067-1">
+ <path
+ style="fill:url(#linearGradient7959);fill-opacity:1;stroke:none"
+ d="m 18.558806,13 2.221403,0.01105 c 0.30958,0 0.574433,0.228459 0.558808,0.512241 l -0.04285,0.964469 C 21.280538,14.771541 21.046935,15 20.737355,15 l -2.32218,0 c -0.309579,0 -0.605683,-0.228459 -0.558808,-0.512241 l 0.143631,-0.975518 C 18.031248,13.236272 18.249227,13 18.558806,13 z"
+ id="path3043-9"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient7961);fill-opacity:1;stroke:none"
+ d="m 22.891192,13 2.209799,0 c 0.30958,0 0.558808,0.228459 0.558808,0.512241 l 0.03906,0.975518 C 25.698861,14.771541 25.449633,15 25.140053,15 l -2.287924,0 c -0.309579,0 -0.558808,-0.228459 -0.558808,-0.512241 l 0.03906,-0.975518 C 22.332384,13.228459 22.581613,13 22.891192,13 z"
+ id="path3045-8"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient7963);fill-opacity:1;stroke:none"
+ d="m 27.223578,13 2.217611,0 c 0.30958,0 0.519745,0.244084 0.558808,0.512241 l 0.140625,0.975518 C 30.187497,14.775447 29.891394,15 29.581814,15 l -2.315267,0 c -0.309579,0 -0.54709,-0.228459 -0.558808,-0.512241 L 26.66477,13.512241 C 26.649145,13.228459 26.913999,13 27.223578,13 z"
+ id="path3047-4"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient7965);fill-opacity:1;stroke:none"
+ d="m 19.012241,10 1.942372,0 c 0.283782,0 0.535679,0.228459 0.512241,0.512241 l -0.04419,0.975518 C 21.42266,11.771541 21.194201,12 20.910419,12 l -2.074955,0 c -0.283782,0 -0.512241,-0.228459 -0.512241,-0.512241 L 18.5,10.512241 C 18.5,10.228459 18.728459,10 19.012241,10 z"
+ id="path3049-5"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient7967);fill-opacity:1;stroke:none"
+ d="m 22.980991,10 2.030206,0 c 0.283782,0 0.512241,0.228459 0.512241,0.512241 l 0.03125,0.975518 C 25.554688,11.771541 25.326229,12 25.042447,12 l -2.100519,0 c -0.283782,0 -0.512241,-0.228459 -0.512241,-0.512241 l 0.03906,-0.975518 C 22.46875,10.228459 22.697209,10 22.980991,10 z"
+ id="path3051-8"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient7969);fill-opacity:1;stroke:none"
+ d="m 27.035679,10 1.975518,0 c 0.283782,0 0.469272,0.224553 0.512241,0.512241 l 0.160156,0.975518 C 29.722656,11.771541 29.455135,12 29.171353,12 l -2.092706,0 c -0.283782,0 -0.496616,-0.228459 -0.512241,-0.512241 l -0.04297,-0.975518 C 26.507813,10.228459 26.751897,10 27.035679,10 z"
+ id="path3053-0"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient7971);fill-opacity:1;stroke:none"
+ d="m 18.140535,16 2.455797,0 c 0.335378,0 0.624907,0.232365 0.605376,0.512241 l -0.04297,0.975518 C 21.143114,17.767635 20.888741,18 20.553363,18 l -2.561265,0 C 17.65672,18 17.343754,17.771541 17.386723,17.487759 L 17.53516,16.512241 C 17.578129,16.232365 17.805157,16 18.140535,16 z"
+ id="path3055-2"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient7973);fill-opacity:1;stroke:none"
+ d="m 22.801401,16 2.389391,0 c 0.335378,0 0.605376,0.228459 0.605376,0.512241 l 0.03906,0.975518 C 25.83523,17.771541 25.565232,18 25.229854,18 l -2.459703,0 c -0.335378,0 -0.605375,-0.228459 -0.605375,-0.512241 l 0.03125,-0.975518 C 22.196026,16.228459 22.466023,16 22.801401,16 z"
+ id="path3057-0"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient7975);fill-opacity:1;stroke:none"
+ d="m 27.399767,16 2.447984,0 c 0.335378,0 0.566313,0.228459 0.605376,0.512241 l 0.144531,0.975518 C 30.64844,17.775447 30.32766,18 29.992282,18 l -2.549547,0 c -0.335378,0 -0.58975,-0.232365 -0.605375,-0.512241 L 26.79439,16.512241 C 26.782673,16.228459 27.064389,16 27.399767,16 z"
+ id="path3059-5"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient7977);fill-opacity:1;stroke:none"
+ d="m 17.730073,19 2.678359,0 c 0.361176,0 0.667568,0.236272 0.651943,0.512241 l -0.03125,0.975518 C 21.0135,20.763728 20.738358,21 20.377182,21 l -2.803359,0 c -0.361176,0 -0.683192,-0.228459 -0.651942,-0.512241 l 0.15625,-0.975518 C 17.109381,19.232365 17.368897,19 17.730073,19 z"
+ id="path3061-8"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient7979);fill-opacity:1;stroke:none"
+ d="m 22.723326,19 2.553357,0 c 0.361176,0 0.651943,0.228459 0.651943,0.512241 l 0.04297,0.975518 C 25.971595,20.771541 25.680828,21 25.319652,21 l -2.643201,0 c -0.361177,0 -0.651943,-0.228459 -0.651943,-0.512241 l 0.04687,-0.975518 C 22.071383,19.228459 22.362149,19 22.723326,19 z"
+ id="path3063-6"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient7981);fill-opacity:1;stroke:none"
+ d="m 27.583765,19 2.674451,0 c 0.361176,0 0.616787,0.228459 0.651943,0.512241 l 0.15625,0.975518 C 31.109378,20.767635 30.775642,21 30.414466,21 l -2.783826,0 c -0.361177,0 -0.644131,-0.228459 -0.651943,-0.512241 l -0.04687,-0.975518 C 26.920103,19.228459 27.222588,19 27.583765,19 z"
+ id="path3065-7"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="use6266-5"
+ d="m 18.558806,13 2.221403,0.01105 c 0.30958,0 0.574433,0.228459 0.558808,0.512241 l -0.04285,0.964469 C 21.280538,14.771541 21.046935,15 20.737355,15 l -2.32218,0 c -0.309579,0 -0.605683,-0.228459 -0.558808,-0.512241 l 0.143631,-0.975518 C 18.031248,13.236272 18.249227,13 18.558806,13 z"
+ style="fill:url(#radialGradient2987-3);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="use6268-0"
+ d="m 22.891192,13 2.209799,0 c 0.30958,0 0.558808,0.228459 0.558808,0.512241 l 0.03906,0.975518 C 25.698861,14.771541 25.449633,15 25.140053,15 l -2.287924,0 c -0.309579,0 -0.558808,-0.228459 -0.558808,-0.512241 l 0.03906,-0.975518 C 22.332384,13.228459 22.581613,13 22.891192,13 z"
+ style="fill:url(#radialGradient2983-6);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="use6270-5"
+ d="m 27.223578,13 2.217611,0 c 0.30958,0 0.519745,0.244084 0.558808,0.512241 l 0.140625,0.975518 C 30.187497,14.775447 29.891394,15 29.581814,15 l -2.315267,0 c -0.309579,0 -0.54709,-0.228459 -0.558808,-0.512241 L 26.66477,13.512241 C 26.649145,13.228459 26.913999,13 27.223578,13 z"
+ style="fill:url(#radialGradient2979-8);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="rect5016-8"
+ d="m 19.012241,10 1.942372,0 c 0.283782,0 0.535679,0.228459 0.512241,0.512241 l -0.04419,0.975518 C 21.42266,11.771541 21.194201,12 20.910419,12 l -2.074955,0 c -0.283782,0 -0.512241,-0.228459 -0.512241,-0.512241 L 18.5,10.512241 C 18.5,10.228459 18.728459,10 19.012241,10 z"
+ style="fill:url(#radialGradient6264-1);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="use6252-7"
+ d="m 22.980991,10 2.030206,0 c 0.283782,0 0.512241,0.228459 0.512241,0.512241 l 0.03125,0.975518 C 25.554688,11.771541 25.326229,12 25.042447,12 l -2.100519,0 c -0.283782,0 -0.512241,-0.228459 -0.512241,-0.512241 l 0.03906,-0.975518 C 22.46875,10.228459 22.697209,10 22.980991,10 z"
+ style="fill:url(#radialGradient2968-2);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="use6254-0"
+ d="m 27.035679,10 1.975518,0 c 0.283782,0 0.469272,0.224553 0.512241,0.512241 l 0.160156,0.975518 C 29.722656,11.771541 29.455135,12 29.171353,12 l -2.092706,0 c -0.283782,0 -0.496616,-0.228459 -0.512241,-0.512241 l -0.04297,-0.975518 C 26.507813,10.228459 26.751897,10 27.035679,10 z"
+ style="fill:url(#radialGradient2972-2);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="use6279-3"
+ d="m 18.140535,16 2.455797,0 c 0.335378,0 0.624907,0.232365 0.605376,0.512241 l -0.04297,0.975518 C 21.143114,17.767635 20.888741,18 20.553363,18 l -2.561265,0 C 17.65672,18 17.343754,17.771541 17.386723,17.487759 L 17.53516,16.512241 C 17.578129,16.232365 17.805157,16 18.140535,16 z"
+ style="fill:url(#radialGradient3002-6);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="use6281-9"
+ d="m 22.801401,16 2.389391,0 c 0.335378,0 0.605376,0.228459 0.605376,0.512241 l 0.03906,0.975518 C 25.83523,17.771541 25.565232,18 25.229854,18 l -2.459703,0 c -0.335378,0 -0.605375,-0.228459 -0.605375,-0.512241 l 0.03125,-0.975518 C 22.196026,16.228459 22.466023,16 22.801401,16 z"
+ style="fill:url(#radialGradient2998-7);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="use6283-6"
+ d="m 27.399767,16 2.447984,0 c 0.335378,0 0.566313,0.228459 0.605376,0.512241 l 0.144531,0.975518 C 30.64844,17.775447 30.32766,18 29.992282,18 l -2.549547,0 c -0.335378,0 -0.58975,-0.232365 -0.605375,-0.512241 L 26.79439,16.512241 C 26.782673,16.228459 27.064389,16 27.399767,16 z"
+ style="fill:url(#radialGradient2994-4);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="use6287-7"
+ d="m 17.730073,19 2.678359,0 c 0.361176,0 0.667568,0.236272 0.651943,0.512241 l -0.03125,0.975518 C 21.0135,20.763728 20.738358,21 20.377182,21 l -2.803359,0 c -0.361176,0 -0.683192,-0.228459 -0.651942,-0.512241 l 0.15625,-0.975518 C 17.109381,19.232365 17.368897,19 17.730073,19 z"
+ style="fill:url(#radialGradient3017-3);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="use6289-5"
+ d="m 22.723326,19 2.553357,0 c 0.361176,0 0.651943,0.228459 0.651943,0.512241 l 0.04297,0.975518 C 25.971595,20.771541 25.680828,21 25.319652,21 l -2.643201,0 c -0.361177,0 -0.651943,-0.228459 -0.651943,-0.512241 l 0.04687,-0.975518 C 22.071383,19.228459 22.362149,19 22.723326,19 z"
+ style="fill:url(#radialGradient3013-2);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="use6291-3"
+ d="m 27.583765,19 2.674451,0 c 0.361176,0 0.616787,0.228459 0.651943,0.512241 l 0.15625,0.975518 C 31.109378,20.767635 30.775642,21 30.414466,21 l -2.783826,0 c -0.361177,0 -0.644131,-0.228459 -0.651943,-0.512241 l -0.04687,-0.975518 C 26.920103,19.228459 27.222588,19 27.583765,19 z"
+ style="fill:url(#radialGradient3009-6);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <g
+ transform="translate(1,0.370117)"
+ style="fill:#cccccc;fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ id="g3105-8">
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="19.609175"
+ y="11.364014"
+ id="text6117-4"><tspan
+ sodipodi:role="line"
+ id="tspan6119-3"
+ x="19.609175"
+ y="11.364014"
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="23.675293"
+ y="11.364014"
+ id="text6121-7"><tspan
+ sodipodi:role="line"
+ id="tspan6123-5"
+ x="23.675293"
+ y="11.364014"
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="27.774256"
+ y="11.35791"
+ id="text6125-6"><tspan
+ sodipodi:role="line"
+ id="tspan6127-8"
+ x="27.774256"
+ y="11.35791"
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="19.262312"
+ y="14.364014"
+ id="text6129-6"><tspan
+ sodipodi:role="line"
+ id="tspan6131-6"
+ x="19.262312"
+ y="14.364014"
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black">4</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="23.675293"
+ y="14.364014"
+ id="text6133-3"><tspan
+ sodipodi:role="line"
+ id="tspan6135-3"
+ x="23.675293"
+ y="14.364014"
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black">5</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="28.067911"
+ y="14.35791"
+ id="text6137-4"><tspan
+ sodipodi:role="line"
+ id="tspan6139-5"
+ x="28.067911"
+ y="14.35791"
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black">6</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="18.957983"
+ y="17.35791"
+ id="text6141-5"><tspan
+ sodipodi:role="line"
+ id="tspan6143-6"
+ x="18.957983"
+ y="17.35791"
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black">7</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="23.675293"
+ y="17.364014"
+ id="text6145-1"><tspan
+ sodipodi:role="line"
+ id="tspan6147-5"
+ x="23.675293"
+ y="17.364014"
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black">8</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="28.368921"
+ y="17.35791"
+ id="text6149-5"><tspan
+ sodipodi:role="line"
+ id="tspan6151-0"
+ x="28.368921"
+ y="17.35791"
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black">9</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="18.661995"
+ y="20.358154"
+ id="text6153-1"><tspan
+ sodipodi:role="line"
+ id="tspan6155-5"
+ x="18.661995"
+ y="20.358154"
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black">#</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="23.666496"
+ y="20.35791"
+ id="text6157-7"><tspan
+ sodipodi:role="line"
+ id="tspan6159-1"
+ x="23.666496"
+ y="20.35791"
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:1.73080969px;font-weight:bold;fill:#cccccc;fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ x="28.54826"
+ y="20.88273"
+ id="text6161-3"><tspan
+ sodipodi:role="line"
+ id="tspan6163-7"
+ x="28.54826"
+ y="20.88273"
+ style="font-size:1.73080969px;font-weight:bold;fill:#cccccc;fill-opacity:1;stroke-linecap:round;stroke-linejoin:round">*</tspan></text>
+ </g>
+ </g>
+ </g>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round;display:inline"
+ id="g4336"
+ transform="matrix(3.2316001,0,0,3.2316001,8.4096008,143.54304)">
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round;display:inline"
+ transform="matrix(0.50268008,0,0,0.50268008,42.066995,3.4540541)"
+ id="g4398">
+ <path
+ transform="matrix(4.55474,0,0,5.50699,-22.8285,-20.7954)"
+ d="m 14.5625,6.5 c 0,1.9329966 -1.916781,3.5 -4.28125,3.5 C 7.9167809,10 6,8.4329966 6,6.5 6,4.5670034 7.9167809,3 10.28125,3 12.645719,3 14.5625,4.5670034 14.5625,6.5 z"
+ sodipodi:ry="3.5"
+ sodipodi:rx="4.28125"
+ sodipodi:cy="6.5"
+ sodipodi:cx="10.28125"
+ id="path4400"
+ style="opacity:0.6;fill:url(#radialGradient5864-2);fill-opacity:1;stroke:url(#radialGradient5866-9);stroke-width:0.16386265;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(3.38686,0,0,4.09453,-10.8212,-11.6144)"
+ d="m 14.5625,6.5 c 0,1.9329966 -1.916781,3.5 -4.28125,3.5 C 7.9167809,10 6,8.4329966 6,6.5 6,4.5670034 7.9167809,3 10.28125,3 12.645719,3 14.5625,4.5670034 14.5625,6.5 z"
+ sodipodi:ry="3.5"
+ sodipodi:rx="4.28125"
+ sodipodi:cy="6.5"
+ sodipodi:cx="10.28125"
+ id="path4402"
+ style="opacity:0.8;fill:url(#radialGradient6930);fill-opacity:1;stroke:url(#radialGradient5870-2);stroke-width:0.22037922;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(2.21898,0,0,2.71429,1.18613,-2.64286)"
+ d="m 14.5625,6.5 c 0,1.9329966 -1.916781,3.5 -4.28125,3.5 C 7.9167809,10 6,8.4329966 6,6.5 6,4.5670034 7.9167809,3 10.28125,3 12.645719,3 14.5625,4.5670034 14.5625,6.5 z"
+ sodipodi:ry="3.5"
+ sodipodi:rx="4.28125"
+ sodipodi:cy="6.5"
+ sodipodi:cx="10.28125"
+ id="path4404"
+ style="fill:url(#radialGradient5872-8);fill-opacity:1;stroke:url(#radialGradient5874-7);stroke-width:0.33439919;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ <g
+ transform="matrix(2.23984,0,0,2.23009,-19.6769,9.38862)"
+ id="g4406"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient5876-6);fill-opacity:1;stroke:#555753;stroke-width:0.32557303;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path4408"
+ sodipodi:cx="9.203125"
+ sodipodi:cy="2.25"
+ sodipodi:rx="1.796875"
+ sodipodi:ry="1.75"
+ d="M 11,2.25 C 11,3.2164983 10.195512,4 9.203125,4 8.2107383,4 7.40625,3.2164983 7.40625,2.25 7.40625,1.2835017 8.2107383,0.5 9.203125,0.5 10.195512,0.5 11,1.2835017 11,2.25 z"
+ transform="matrix(1.11304,0,0,1.14286,9.25652,-0.0714286)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path4410"
+ sodipodi:cx="19.5"
+ sodipodi:cy="1.5"
+ sodipodi:rx="0.5"
+ sodipodi:ry="0.5"
+ d="M 20,1.5 C 20,1.7761424 19.776142,2 19.5,2 19.223858,2 19,1.7761424 19,1.5 19,1.2238576 19.223858,1 19.5,1 19.776142,1 20,1.2238576 20,1.5 z"
+ transform="matrix(1.8125,0,0,1.8125,-16.4654,-0.92882)" />
+ </g>
+ <path
+ transform="matrix(1.94783,0,0,1.99105,6.07391,10.484)"
+ d="M 11,2.25 C 11,3.2164983 10.195512,4 9.203125,4 8.2107383,4 7.40625,3.2164983 7.40625,2.25 7.40625,1.2835017 8.2107383,0.5 9.203125,0.5 10.195512,0.5 11,1.2835017 11,2.25 z"
+ sodipodi:ry="1.75"
+ sodipodi:rx="1.796875"
+ sodipodi:cy="2.25"
+ sodipodi:cx="9.203125"
+ id="path4412"
+ style="fill:none;stroke:url(#radialGradient5878-1);stroke-width:0.41672909;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ <text
+ id="text7179"
+ y="261.24701"
+ x="713.60632"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ xml:space="preserve"><tspan
+ y="261.24701"
+ x="713.60632"
+ sodipodi:role="line"
+ id="tspan7181">HLR</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ x="792.90869"
+ y="261.24017"
+ id="text7185"><tspan
+ id="tspan7187"
+ sodipodi:role="line"
+ x="792.90869"
+ y="261.24017">AuC</tspan></text>
+ <g
+ id="layer1"
+ inkscape:label="Livello 1"
+ transform="translate(723.74687,335.8565)">
+ <g
+ transform="translate(1,9.8994949)"
+ id="g10103">
+ <g
+ style="opacity:0.7;display:inline"
+ id="g10105"
+ transform="matrix(0.0221628,0,0,0.0106952,43.2123,38.1206)">
+ <rect
+ y="-150.69685"
+ x="-1559.2523"
+ height="478.35718"
+ width="1339.6335"
+ id="rect10107"
+ style="opacity:0.39195981;color:#000000;fill:url(#linearGradient10273-9);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path10109"
+ d="m -219.61876,-150.68038 c 0,0 0,478.33079 0,478.33079 142.874166,0.90045 345.40022,-107.16966 345.40014,-239.196175 0,-132.026537 -159.436816,-239.134595 -345.40014,-239.134615 z"
+ style="opacity:0.40206185;color:#000000;fill:url(#radialGradient10275-7);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:0.40206185;color:#000000;fill:url(#radialGradient10277-5);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m -1559.2523,-150.68038 c 0,0 0,478.33079 0,478.33079 -142.8742,0.90045 -345.4002,-107.16966 -345.4002,-239.196175 0,-132.026537 159.4368,-239.134595 345.4002,-239.134615 z"
+ id="path10111"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ style="fill:url(#radialGradient10279-8);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 23.5,1.5669415 c -5.522703,0 -6,0.999998 -7,2 L 5.4999996,14.566942 l 0,1.40625 0,0.187499 0,22 c 0,0.783476 0.622776,1.406253 1.40625,1.40625 l 33.1875004,0 c 0.783474,0 1.40625,-0.622776 1.40625,-1.40625 l 0,-22 0,-0.187499 0,-1.40625 -11,-11.0000005 c -1,-1 -1.5,-2.000002 -7,-2 z"
+ id="path10113"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#888a85;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:0.99236642;stroke-dashoffset:0.69999992"
+ d="m 41.5,17.160691 0,-2.593749 -11,-11.0000005 c -1,-1 -1.5,-2.000002 -7,-2 -5.522703,0 -6,0.999998 -7,2 L 5.4999996,14.566942 l 0,2.593749"
+ id="path10115"
+ sodipodi:nodetypes="ccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="-0.98534405"
+ inkscape:original="M 24.5 4.5 C 18.977297 4.5 18.5 5.499998 17.5 6.5 L 6.5 17.5 L 6.5 18.90625 L 6.5 19.09375 L 6.5 41.09375 C 6.5 41.877225 7.1227756 42.500002 7.90625 42.5 L 41.09375 42.5 C 41.877224 42.5 42.5 41.877224 42.5 41.09375 L 42.5 19.09375 L 42.5 18.90625 L 42.5 17.5 L 31.5 6.5 C 30.5 5.5 30 4.499998 24.5 4.5 z "
+ style="fill:none;stroke:#ffffff;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:0.99236642;stroke-dashoffset:0.69999992"
+ id="path10117"
+ d="M 24.5,5.5 C 21.798121,5.5 20.393246,5.7355566 19.65625,6.03125 18.919254,6.3269434 18.748198,6.6268011 18.1875,7.1875 L 7.5,17.875 l 0,1.03125 0,0.1875 0,22 c 0,0.261316 0.1449379,0.406251 0.40625,0.40625 l 33.1875,0 C 41.355064,41.5 41.5,41.355064 41.5,41.09375 l 0,-22 0,-0.1875 0,-1.03125 L 30.8125,7.1875 C 30.254438,6.6294378 30.053706,6.3277326 29.3125,6.03125 28.571294,5.7347674 27.190282,5.499999 24.5,5.5 z"
+ transform="translate(-1,-2.93306)" />
+ <path
+ style="opacity:0.07462685;fill:url(#linearGradient10281-2);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 23.5,23.066941 c -2.533586,0 -4.101342,0.284501 -5.1875,0.749992 -1.086158,0.465492 -1.65625,1.142846 -2.15625,1.714269 L 6.3749996,38.709641 c 0.3494617,0.399382 0.010369,0.357138 0.53125,0.35714 l 33.1875004,0 c 0.520882,0 0.244288,-0.314901 0.59375,-0.714279 l -9.84375,-12.8213 c -0.5,-0.571423 -1.070092,-1.248777 -2.15625,-1.714269 C 27.601342,23.351442 26.033586,23.066941 23.5,23.066941 z"
+ id="path10119"
+ sodipodi:nodetypes="csccccccsc"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g10121"
+ transform="translate(-1,-2.93306)">
+ <path
+ id="path10123"
+ d="M 10.78125,7.5 C 10.079832,7.5 9.5,8.0075514 9.5,8.65625 l 0,15.53125 7.65625,7.65625 c 0.4692,0.469201 0.933785,1.084757 1.96875,1.5 C 20.159965,33.758993 21.70847,34 24.5,34 c 2.780303,10e-7 4.337893,-0.241407 5.375,-0.65625 1.037107,-0.414843 1.498213,-1.029463 1.96875,-1.5 L 39.5,24.1875 39.5,8.65625 C 39.5,8.0075513 38.920169,7.5 38.21875,7.5 l -27.4375,0 z"
+ style="fill:url(#radialGradient10283-8);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient10285-8);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.99236642;stroke-dasharray:none;stroke-dashoffset:0.69999992"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccsssccccc"
+ id="path10126"
+ d="M 10.78125,8.5 C 10.562237,8.5 10.5,8.603444 10.5,8.65625 l 0,17.09375 7.375,7.375 c 0.545039,0.545041 0.811022,0.95467 1.625,1.28125 0.839149,0.336679 2.266027,0.59375 5,0.59375 2.722418,10e-7 4.159247,-0.257448 5,-0.59375 0.815774,-0.32631 1.077564,-0.733814 1.625,-1.28125 L 38.5,25.75 38.5,8.65625 C 38.5,8.6034427 38.437765,8.5 38.21875,8.5 l -27.4375,0 z"
+ style="fill:none;stroke:url(#linearGradient10287-3);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.99236642;stroke-dashoffset:0.69999992"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g10128">
+ <rect
+ style="fill:#d3d7cf;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="rect10131"
+ width="11"
+ height="1"
+ x="13"
+ y="11"
+ rx="0.5"
+ ry="0.5" />
+ <rect
+ style="fill:#d3d7cf;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="rect10133"
+ width="7"
+ height="1"
+ x="13"
+ y="14"
+ rx="0.5"
+ ry="0.5" />
+ <rect
+ style="fill:#d3d7cf;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="rect10135"
+ width="23"
+ height="1"
+ x="13"
+ y="18"
+ rx="0.5"
+ ry="0.5" />
+ <rect
+ style="fill:#d3d7cf;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="rect10137"
+ width="23"
+ height="1"
+ x="13"
+ y="20"
+ rx="0.5"
+ ry="0.5" />
+ <rect
+ style="fill:#d3d7cf;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="rect10139"
+ width="23"
+ height="1"
+ x="13"
+ y="22"
+ rx="0.5"
+ ry="0.5" />
+ <rect
+ style="fill:#d3d7cf;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="rect10141"
+ width="23"
+ height="1"
+ x="13"
+ y="24"
+ rx="0.5"
+ ry="0.5" />
+ <rect
+ style="fill:#d3d7cf;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="rect10143"
+ width="23"
+ height="1"
+ x="13"
+ y="26"
+ rx="0.5"
+ ry="0.5" />
+ <rect
+ style="fill:#d3d7cf;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="rect10145"
+ width="5"
+ height="1"
+ x="31"
+ y="11"
+ rx="0.5"
+ ry="0.5" />
+ </g>
+ </g>
+ <g
+ id="g10147"
+ transform="translate(-1,-2.93306)">
+ <path
+ sodipodi:nodetypes="ccssscccssscc"
+ id="path10149"
+ d="m 7.09375,21.75 10.0625,11.59375 c 0.4692,0.469201 0.933785,1.084757 1.96875,1.5 1.034965,0.415243 2.58347,0.65625 5.375,0.65625 2.780303,10e-7 4.337893,-0.241407 5.375,-0.65625 1.037107,-0.414843 1.498213,-1.029463 1.96875,-1.5 L 41.875,21.875 31.84375,31.84375 c -0.470537,0.470537 -0.931643,1.085157 -1.96875,1.5 C 28.837893,33.758593 27.280303,34.000001 24.5,34 c -2.79153,0 -4.340035,-0.241007 -5.375,-0.65625 -1.034965,-0.415243 -1.49955,-1.030799 -1.96875,-1.5 L 7.09375,21.75 z"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccssscccssscc"
+ id="path10151"
+ d="m 7.09375,21.75 10.0625,9.59375 c 0.4692,0.469201 0.933785,1.084757 1.96875,1.5 1.034965,0.415243 2.58347,0.65625 5.375,0.65625 2.780303,10e-7 4.337893,-0.241407 5.375,-0.65625 1.037107,-0.414843 1.498213,-1.029463 1.96875,-1.5 L 41.875,21.875 31.84375,31.84375 c -0.470537,0.470537 -0.931643,1.085157 -1.96875,1.5 C 28.837893,33.758593 27.280303,34.000001 24.5,34 c -2.79153,0 -4.340035,-0.241007 -5.375,-0.65625 -1.034965,-0.415243 -1.49955,-1.030799 -1.96875,-1.5 L 7.09375,21.75 z"
+ style="opacity:0.3;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="translate(1,-38)"
+ d="M 6.90625,55 C 5.8578131,55 5,55.857811 5,56.90625 L 5,58.5 a 0.50005,0.50005 0 0 0 0.15625,0.34375 l 11,11 c 0.4692,0.469201 0.933785,1.084757 1.96875,1.5 C 19.159965,71.758993 20.70847,72 23.5,72 c 2.780303,10e-7 4.337893,-0.241407 5.375,-0.65625 1.037107,-0.414843 1.498213,-1.029463 1.96875,-1.5 l 11,-11 A 0.50005,0.50005 0 0 0 42,58.5 l 0,-1.59375 C 42,55.857813 41.142189,55 40.09375,55 l -33.1875,0 z"
+ id="path10153"
+ style="opacity:0.16791047;fill:url(#linearGradient10289-0);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:original="M 6.90625 55.5 C 6.1227756 55.5 5.5 56.122774 5.5 56.90625 L 5.5 58.5 L 16.5 69.5 C 17.5 70.500002 17.977297 71.5 23.5 71.5 C 29 71.500002 29.5 70.5 30.5 69.5 L 41.5 58.5 L 41.5 56.90625 C 41.5 56.122776 40.877226 55.5 40.09375 55.5 L 6.90625 55.5 z "
+ inkscape:radius="0.5"
+ sodipodi:type="inkscape:offset" />
+ </g>
+ <path
+ style="fill:url(#radialGradient10291-7);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 23.5,26.566941 c -5,0 -6,1 -7,2 L 5.9062496,39.160691 c 0.255619,0.25562 0.608262,0.40625 1,0.40625 l 33.1875004,0 c 0.391737,0 0.74438,-0.15063 1,-0.40625 L 30.5,28.566941 c -1,-1 -2,-2 -7,-2 z"
+ id="path10155"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#888a85;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:0.99236642;stroke-dashoffset:0.69999992"
+ d="m 5.4999996,16.160691 0,22 c 0,0.783476 0.622776,1.406253 1.40625,1.40625 l 33.1875004,0 c 0.783474,0 1.40625,-0.622776 1.40625,-1.40625 l 0,-22"
+ id="path10157"
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g10159"
+ transform="matrix(1,0,0,1.03483,-57.25,-4.39571)">
+ <path
+ sodipodi:nodetypes="ccssscccccc"
+ id="path10161"
+ d="m 63.25,41.970971 10.15625,-11.34375 c 0.469373,-0.469374 0.93435,-1.084984 1.96875,-1.5 1.0344,-0.415016 2.58364,-0.65625 5.375,-0.65625 2.780132,-10e-7 4.338454,0.241631 5.375,0.65625 1.036546,0.414619 1.498047,1.029297 1.96875,1.5 L 98.25,41.970971 88.09375,31.627221 c -2.044007,-1.969594 -4.518247,-2.272157 -7.34375,-2.15625 -2.67085,0.04954 -5.464303,-3.3e-4 -7.34375,2.15625 L 63.25,41.970971 z"
+ style="fill:#888a85;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path10163"
+ d="m 63.25,41.99247 10.15625,-9.041768 c 1.879447,-2.15658 4.6729,-2.10671 7.34375,-2.15625 2.825503,-0.115907 5.299743,0.186656 7.34375,2.15625 L 98.25,41.99247 88.09375,31.64872 C 86.049743,29.679126 83.575503,29.376563 80.75,29.49247 c -2.67085,0.04954 -5.464303,-3.3e-4 -7.34375,2.15625 L 63.25,41.99247 z"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ x="748.17157"
+ y="404.88678"
+ id="text7499"><tspan
+ id="tspan7501"
+ sodipodi:role="line"
+ x="748.17157"
+ y="404.88678">SMS-GMSC</tspan></text>
+ <g
+ transform="matrix(1.6839963,0,0,1.6839963,558.28692,197.34288)"
+ id="g7831"
+ style="stroke-linecap:round;stroke-linejoin:round;display:inline">
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ id="g7833"
+ inkscape:label="Layer 1">
+ <g
+ id="g7835"
+ transform="matrix(1,0,0,1.6875,-6,-5.5625)"
+ style="opacity:0.4;stroke-linecap:round;stroke-linejoin:round">
+ <rect
+ y="21"
+ x="9.5"
+ height="8"
+ width="4"
+ id="rect7837"
+ style="fill:url(#radialGradient8019);fill-opacity:1;stroke:none" />
+ <rect
+ transform="scale(-1,-1)"
+ y="-29"
+ x="-50.5"
+ height="8"
+ width="4"
+ id="rect7839"
+ style="fill:url(#radialGradient8021);fill-opacity:1;stroke:none" />
+ <rect
+ y="21"
+ x="13.5"
+ height="8"
+ width="33"
+ id="rect7841"
+ style="fill:url(#linearGradient8023);fill-opacity:1;stroke:none" />
+ </g>
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cssssccssccccccsssccsssccc"
+ style="color:#000000;fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient8025);stroke-width:1.1919533;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m 10.0625,22.504459 c -0.01534,0.003 -0.04893,0.02718 -0.0625,0.03125 -0.00435,0.0015 -0.027066,-0.0016 -0.03125,0 -0.00388,0.0019 -0.027502,0.02926 -0.03125,0.03125 -0.00351,0.0023 -0.027847,-0.0024 -0.03125,0 -0.138974,0.106837 -0.205623,0.359232 -0.5625,0.8125 L 7,30.191959 c 1.93e-4,0.0075 -3.84e-4,0.02381 0,0.03125 -0.010751,0.01212 0.010461,0.05012 0,0.0625 -0.298139,0.35285 -0.5,0.781029 -0.5,1.28125 L 6.53125,38.5 c 0,1.123303 0.907948,2.031251 2.03125,2.03125 l 30.9375,0 c 1.123303,0 2.03125,-0.907947 2.03125,-2.03125 L 41.5,31.566959 c 0,-0.500221 -0.201861,-0.9284 -0.5,-1.28125 7.6e-4,-0.0073 -5.73e-4,-0.02386 0,-0.03125 -0.0053,-0.0061 0.0054,-0.02519 0,-0.03125 3.84e-4,-0.0074 -1.93e-4,-0.02376 0,-0.03125 l -2.5,-6.8125 c -0.378776,-0.468361 -0.44102,-0.710816 -0.59375,-0.8125 -0.0037,-0.002 -0.0274,-0.02934 -0.03125,-0.03125 -0.004,-0.0018 -0.0271,0.0016 -0.03125,0 -0.05842,-0.01816 -0.149481,-0.03125 -0.25,-0.03125 l -27.34375,0 c -0.07732,0 -0.13637,-0.01005 -0.1875,0 z"
+ id="path7843"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <rect
+ style="fill:url(#linearGradient8027);fill-opacity:1;stroke:none"
+ id="rect7845"
+ width="34"
+ height="9"
+ x="7"
+ y="31"
+ rx="1.5195075"
+ ry="1.6088903" />
+ <rect
+ style="fill:none;stroke:url(#linearGradient8029);stroke-width:1.19195378;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057"
+ id="rect7847"
+ width="5.000011"
+ height="4.9999833"
+ x="8.4999924"
+ y="33.500023"
+ rx="2.49999"
+ ry="2.4999917" />
+ <rect
+ style="fill:url(#linearGradient8031);fill-opacity:1;stroke:#4e9a06;stroke-width:1.19195378;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057"
+ id="rect7849"
+ width="3"
+ height="2.9999814"
+ x="9.5"
+ y="34.500027"
+ rx="1.4999907"
+ ry="1.4999907" />
+ <rect
+ style="fill:url(#linearGradient8033);fill-opacity:1;stroke:#c4a000;stroke-width:1.19195366;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057"
+ id="rect7851"
+ width="3"
+ height="2.9999974"
+ x="15.5"
+ y="34.500015"
+ rx="1.4999987"
+ ry="1.4999987" />
+ <rect
+ style="fill:url(#linearGradient8035);fill-opacity:1;stroke:#ce5c00;stroke-width:1.19195366;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057"
+ id="rect7853"
+ width="3"
+ height="2.9999974"
+ x="21.5"
+ y="34.500015"
+ rx="1.4999987"
+ ry="1.4999987" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.75675677;fill:#f57900;fill-opacity:1;stroke:#ffffff;stroke-width:1.19195342;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057"
+ id="path7855"
+ sodipodi:cx="9.75"
+ sodipodi:cy="35.25"
+ sodipodi:rx="0.25"
+ sodipodi:ry="0.25"
+ d="M 10,35.25 C 10,35.388071 9.8880712,35.5 9.75,35.5 9.6119288,35.5 9.5,35.388071 9.5,35.25 9.5,35.111929 9.6119288,35 9.75,35 9.8880712,35 10,35.111929 10,35.25 z"
+ transform="translate(0.75,0.25)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.85675677;fill:#f57900;fill-opacity:1;stroke:#ffffff;stroke-width:1.19195342;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057"
+ id="path7857"
+ sodipodi:cx="9.75"
+ sodipodi:cy="35.25"
+ sodipodi:rx="0.25"
+ sodipodi:ry="0.25"
+ d="M 10,35.25 C 10,35.388071 9.8880712,35.5 9.75,35.5 9.6119288,35.5 9.5,35.388071 9.5,35.25 9.5,35.111929 9.6119288,35 9.75,35 9.8880712,35 10,35.111929 10,35.25 z"
+ transform="translate(6.75,0.25)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.75675677;fill:#f57900;fill-opacity:1;stroke:#ffffff;stroke-width:1.19195342;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057"
+ id="path7859"
+ sodipodi:cx="9.75"
+ sodipodi:cy="35.25"
+ sodipodi:rx="0.25"
+ sodipodi:ry="0.25"
+ d="M 10,35.25 C 10,35.388071 9.8880712,35.5 9.75,35.5 9.6119288,35.5 9.5,35.388071 9.5,35.25 9.5,35.111929 9.6119288,35 9.75,35 9.8880712,35 10,35.111929 10,35.25 z"
+ transform="translate(12.75,0.25)" />
+ <rect
+ style="fill:none;stroke:url(#linearGradient8037);stroke-width:1.19195378;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057"
+ id="rect7861"
+ width="5.000011"
+ height="4.9999833"
+ x="14.499992"
+ y="33.500023"
+ rx="2.49999"
+ ry="2.4999917" />
+ <rect
+ style="fill:none;stroke:url(#linearGradient8039);stroke-width:1.19195378;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057"
+ id="rect7863"
+ width="5.000011"
+ height="4.9999833"
+ x="20.499992"
+ y="33.500023"
+ rx="2.49999"
+ ry="2.4999917" />
+ <g
+ id="g7866"
+ style="fill:url(#linearGradient8065);fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-1,0)">
+ <g
+ transform="translate(-2,0)"
+ id="g7868"
+ style="fill:url(#linearGradient8043);fill-opacity:1;stroke-linecap:round;stroke-linejoin:round">
+ <rect
+ style="fill:url(#linearGradient8041);fill-opacity:1;stroke:none"
+ id="rect7870"
+ width="1"
+ height="4.5"
+ x="33"
+ y="34"
+ rx="0.5"
+ ry="0.5" />
+ </g>
+ <g
+ id="g7872"
+ style="fill:url(#linearGradient8047);fill-opacity:1;stroke-linecap:round;stroke-linejoin:round">
+ <rect
+ style="fill:url(#linearGradient8045);fill-opacity:1;stroke:none"
+ id="rect7874"
+ width="1"
+ height="4.5"
+ x="33"
+ y="34"
+ rx="0.5"
+ ry="0.5" />
+ </g>
+ <g
+ transform="translate(2,0)"
+ id="g7876"
+ style="fill:url(#linearGradient8051);fill-opacity:1;stroke-linecap:round;stroke-linejoin:round">
+ <rect
+ style="fill:url(#linearGradient8049);fill-opacity:1;stroke:none"
+ id="rect7878"
+ width="1"
+ height="4.5"
+ x="33"
+ y="34"
+ rx="0.5"
+ ry="0.5" />
+ </g>
+ <g
+ transform="translate(4,0)"
+ id="g7880"
+ style="fill:url(#linearGradient8055);fill-opacity:1;stroke-linecap:round;stroke-linejoin:round">
+ <rect
+ style="fill:url(#linearGradient8053);fill-opacity:1;stroke:none"
+ id="rect7882"
+ width="1"
+ height="4.5"
+ x="33"
+ y="34"
+ rx="0.5"
+ ry="0.5" />
+ </g>
+ <g
+ transform="translate(6,0)"
+ id="g7884"
+ style="fill:url(#linearGradient8059);fill-opacity:1;stroke-linecap:round;stroke-linejoin:round">
+ <rect
+ style="fill:url(#linearGradient8057);fill-opacity:1;stroke:none"
+ id="rect7886"
+ width="1"
+ height="4.5"
+ x="33"
+ y="34"
+ rx="0.5"
+ ry="0.5" />
+ </g>
+ <g
+ transform="translate(-4,0)"
+ id="g7888"
+ style="fill:url(#linearGradient8063);fill-opacity:1;stroke-linecap:round;stroke-linejoin:round">
+ <rect
+ style="fill:url(#linearGradient8061);fill-opacity:1;stroke:none"
+ id="rect7890"
+ width="1"
+ height="4.5"
+ x="33"
+ y="34"
+ rx="0.5"
+ ry="0.5" />
+ </g>
+ </g>
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="-0.9722718"
+ inkscape:original="M 10.0625 22.5 C 10.047161 22.503014 10.013575 22.527184 10 22.53125 C 9.995651 22.532728 9.972934 22.529649 9.96875 22.53125 C 9.964867 22.533108 9.941248 22.560511 9.9375 22.5625 C 9.933992 22.564763 9.909653 22.560098 9.90625 22.5625 C 9.767276 22.669337 9.700627 22.921732 9.34375 23.375 L 7 30.1875 C 7.000193 30.194989 6.999616 30.211311 7 30.21875 C 6.989249 30.230871 7.010461 30.268869 7 30.28125 C 6.701861 30.6341 6.5 31.062279 6.5 31.5625 L 6.53125 38.5 C 6.53125 39.623303 7.439198 40.531251 8.5625 40.53125 L 39.5 40.53125 C 40.623303 40.53125 41.53125 39.623303 41.53125 38.5 L 41.5 31.5625 C 41.5 31.062279 41.298139 30.6341 41 30.28125 C 41.00076 30.273915 40.999427 30.257389 41 30.25 C 40.994697 30.243874 41.005375 30.224811 41 30.21875 C 41.000384 30.211311 40.999807 30.194989 41 30.1875 L 38.5 23.375 C 38.121224 22.906639 38.05898 22.664184 37.90625 22.5625 C 37.902538 22.560463 37.878847 22.533156 37.875 22.53125 C 37.871006 22.529474 37.8479 22.532897 37.84375 22.53125 C 37.785333 22.513087 37.694269 22.5 37.59375 22.5 L 10.25 22.5 C 10.172677 22.5 10.11363 22.489952 10.0625 22.5 z "
+ style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1.1919533;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ id="path7892"
+ d="m 10.4375,23.46875 c -0.05668,0.09312 -0.124527,0.211556 -0.21875,0.34375 l -2.25,6.46875 a 0.97236903,0.97236903 0 0 1 0,0.03125 0.97236903,0.97236903 0 0 1 0,0.0625 c -0.00269,0.03459 0.0088,0.04902 0,0.09375 -0.011731,0.05964 -0.028776,0.110654 -0.0625,0.1875 -0.00985,0.02245 -0.043668,0.03169 -0.0625,0.0625 -0.04563,0.07466 -0.093287,0.186952 -0.09375,0.1875 -0.1875108,0.221921 -0.28125,0.417598 -0.28125,0.65625 L 7.5,38.5 c 0,0.599388 0.4631135,1.062501 1.0625,1.0625 l 30.9375,0 c 0.599389,0 1.0625,-0.463111 1.0625,-1.0625 l -0.03125,-6.9375 c 0,-0.238652 -0.09374,-0.434329 -0.28125,-0.65625 a 0.97236903,0.97236903 0 0 1 0,-0.03125 0.97236903,0.97236903 0 0 1 -0.09375,-0.125 0.97236903,0.97236903 0 0 1 0,-0.03125 A 0.97236903,0.97236903 0 0 1 40.0625,30.5 c -0.0031,-0.0063 0.002,-0.02721 0,-0.03125 -0.0029,-0.0061 -0.03123,-0.03115 -0.03125,-0.03125 -5.7e-5,-2.8e-4 0.0019,-0.04282 0,-0.0625 l 0,-0.03125 -2.375,-6.5 c -0.110187,-0.147962 -0.219199,-0.277139 -0.28125,-0.375 l -26.9375,0 z" />
+ </g>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ id="g7894"
+ inkscape:label="phone">
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ id="g7896"
+ transform="matrix(1.000314,0,0,1,-0.002355,-7.00001)">
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccczccccccccccz"
+ id="path7898"
+ d="m 8.2474619,14.5 7.7498701,-2.999994 16,0 L 39.741876,14.5 c 0.256803,0.06883 0.747462,1.333368 0.747462,1.747462 l 0,2.505076 c 0,0.414094 -0.333368,0.747462 -0.747462,0.747462 l -5.752538,0 -2,-4 -15.5,0 -2.5,4 -5.7418761,0 C 7.833368,19.5 7.5,19.166632 7.5,18.752538 l 0,-2.505076 C 7.5,15.833368 7.9909958,14.568741 8.2474619,14.5 z"
+ style="color:#000000;fill:url(#radialGradient8067);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient8069);stroke-width:1.1917665;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ </g>
+ <path
+ inkscape:connector-curvature="0"
+ style="opacity:0.6;color:#000000;fill:none;stroke:url(#radialGradient8071);stroke-width:1.19176626;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="M 16.1875,12.46875 8.8125,15.3125 C 8.770706,15.38818 8.740325,15.496831 8.6875,15.625 8.559965,15.934436 8.46875,16.429219 8.46875,16.25 l 0,2.28125 5,0 c 0.858697,-1.529381 1.128913,-2.553892 3.03125,-2 l 15.5,0 c 0.859584,0.447471 1.469779,-1.114201 2.625,2 l 4.90625,0 0,-2.28125 c 0,0.178953 -0.09127,-0.31563 -0.21875,-0.625 -0.0528,-0.128142 -0.08323,-0.236865 -0.125,-0.3125 l -7.375,-2.84375 -15.625,0 z"
+ id="path7901"
+ sodipodi:nodetypes="ccsccccccccsccc"
+ transform="matrix(1.000314,0,0,1,-0.002355,-7.00001)" />
+ <g
+ id="g7903"
+ transform="matrix(1,0,0,1.0625,0,-1.3125)"
+ style="opacity:0.8;stroke-linecap:round;stroke-linejoin:round">
+ <rect
+ y="21"
+ x="9.5"
+ height="8"
+ width="4"
+ id="rect7905"
+ style="fill:url(#radialGradient8073);fill-opacity:1;stroke:none" />
+ <rect
+ transform="scale(-1,-1)"
+ y="-29"
+ x="-38.5"
+ height="8"
+ width="4"
+ id="rect7907"
+ style="fill:url(#radialGradient8075);fill-opacity:1;stroke:none" />
+ <rect
+ y="21"
+ x="13.5"
+ height="8"
+ width="21"
+ id="rect7909"
+ style="fill:url(#linearGradient8077);fill-opacity:1;stroke:none" />
+ </g>
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;fill:url(#linearGradient8079);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient8081);stroke-width:1.19195318;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m 17.509407,7.5 2,0 0.5,2 8.002512,0 0.497488,-2 2,0 c 1.123656,0 1.740719,0.9709838 2.03297,2 l 3.976136,13.999994 0.02763,2 c 0,1.060896 -0.904604,2 -2.02826,2 l -21.006594,0 c -1.123656,0 -1.972996,-0.939104 -1.972996,-2 l -0.02763,-2 L 15.509407,9.5 c 0.293822,-1.0286979 0.876344,-2 2,-2 z"
+ id="path7911"
+ sodipodi:nodetypes="ccccccsccccccsc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="opacity:0.24324323;color:#000000;fill:url(#linearGradient8083);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.9999997;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m 30.504082,8 -1.588859,0.022097 -0.592,2 L 19.632583,9.955806 19.044665,8.022097 17.5,8 c -1.078709,0 -1.426702,0.8189946 -1.687047,1.789079 l -2.4042,8.958396 -1.157183,3.752519 c 6.001884,-7.205882 17.755181,4 21.876475,-5.73172 L 32.164603,9.789079 C 31.892547,8.8220351 31.582792,8 30.504082,8 z"
+ id="path7913"
+ sodipodi:nodetypes="ccccccscccsc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="opacity:0.6;color:#000000;fill:none;stroke:url(#linearGradient8085);stroke-width:1.19195318;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m 17.500314,8.5 1.234521,0 0.497174,2 9.444768,-0.0221 0.654679,-1.9779 1.17294,0 c 0.500157,0 0.739705,0.088799 1.000314,1 l 4.004082,13.999994 0,1.5 c 0,1.5 0,1.5 -1.500471,1.5 l -20.00628,0 c -1.500471,0 -1.500471,0 -1.500471,-1.5 l 0,-1.5 L 16.5,9.5 c 0.260325,-0.911495 0.500157,-1 1.000314,-1 z"
+ id="path7915"
+ sodipodi:nodetypes="ccccccsccccccsc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient8087);fill-opacity:1;stroke:none"
+ d="m 18.67949,9.4999962 10.64178,0 c 0.597659,0 1.078805,0.4882234 1.078805,1.0946718 L 32,21.40532 c 0,0.606448 -0.481147,1.094672 -1.078807,1.094672 l -13.853815,-0.01237 c -0.59766,0 -1.078807,-0.488223 -1.078807,-1.094671 l 1.612114,-10.798283 c 0,-0.6064484 0.481147,-1.0946718 1.078805,-1.0946718 z"
+ id="path7917"
+ sodipodi:nodetypes="ccccccccc" />
+ <g
+ id="g7919"
+ transform="translate(0,0.5)"
+ style="fill:url(#linearGradient8113);fill-opacity:1;stroke-linecap:round;stroke-linejoin:round">
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccc"
+ id="path7921"
+ d="m 18.558806,13 2.221403,0.01105 c 0.30958,0 0.574433,0.228459 0.558808,0.512241 l -0.04285,0.964469 C 21.280538,14.771541 21.046935,15 20.737355,15 l -2.32218,0 c -0.309579,0 -0.605683,-0.228459 -0.558808,-0.512241 l 0.143631,-0.975518 C 18.031248,13.236272 18.249227,13 18.558806,13 z"
+ style="fill:url(#linearGradient8089);fill-opacity:1;stroke:none" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccc"
+ id="path7923"
+ d="m 22.891192,13 2.209799,0 c 0.30958,0 0.558808,0.228459 0.558808,0.512241 l 0.03906,0.975518 C 25.698861,14.771541 25.449633,15 25.140053,15 l -2.287924,0 c -0.309579,0 -0.558808,-0.228459 -0.558808,-0.512241 l 0.03906,-0.975518 C 22.332384,13.228459 22.581613,13 22.891192,13 z"
+ style="fill:url(#linearGradient8091);fill-opacity:1;stroke:none" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccc"
+ id="path7925"
+ d="m 27.223578,13 2.217611,0 c 0.30958,0 0.519745,0.244084 0.558808,0.512241 l 0.140625,0.975518 C 30.187497,14.775447 29.891394,15 29.581814,15 l -2.315267,0 c -0.309579,0 -0.54709,-0.228459 -0.558808,-0.512241 L 26.66477,13.512241 C 26.649145,13.228459 26.913999,13 27.223578,13 z"
+ style="fill:url(#linearGradient8093);fill-opacity:1;stroke:none" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccc"
+ id="path7927"
+ d="m 19.012241,10 1.942372,0 c 0.283782,0 0.535679,0.228459 0.512241,0.512241 l -0.04419,0.975518 C 21.42266,11.771541 21.194201,12 20.910419,12 l -2.074955,0 c -0.283782,0 -0.512241,-0.228459 -0.512241,-0.512241 L 18.5,10.512241 C 18.5,10.228459 18.728459,10 19.012241,10 z"
+ style="fill:url(#linearGradient8095);fill-opacity:1;stroke:none" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccc"
+ id="path7929"
+ d="m 22.980991,10 2.030206,0 c 0.283782,0 0.512241,0.228459 0.512241,0.512241 l 0.03125,0.975518 C 25.554688,11.771541 25.326229,12 25.042447,12 l -2.100519,0 c -0.283782,0 -0.512241,-0.228459 -0.512241,-0.512241 l 0.03906,-0.975518 C 22.46875,10.228459 22.697209,10 22.980991,10 z"
+ style="fill:url(#linearGradient8097);fill-opacity:1;stroke:none" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccc"
+ id="path7931"
+ d="m 27.035679,10 1.975518,0 c 0.283782,0 0.469272,0.224553 0.512241,0.512241 l 0.160156,0.975518 C 29.722656,11.771541 29.455135,12 29.171353,12 l -2.092706,0 c -0.283782,0 -0.496616,-0.228459 -0.512241,-0.512241 l -0.04297,-0.975518 C 26.507813,10.228459 26.751897,10 27.035679,10 z"
+ style="fill:url(#linearGradient8099);fill-opacity:1;stroke:none" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccc"
+ id="path7933"
+ d="m 18.140535,16 2.455797,0 c 0.335378,0 0.624907,0.232365 0.605376,0.512241 l -0.04297,0.975518 C 21.143114,17.767635 20.888741,18 20.553363,18 l -2.561265,0 C 17.65672,18 17.343754,17.771541 17.386723,17.487759 L 17.53516,16.512241 C 17.578129,16.232365 17.805157,16 18.140535,16 z"
+ style="fill:url(#linearGradient8101);fill-opacity:1;stroke:none" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccc"
+ id="path7935"
+ d="m 22.801401,16 2.389391,0 c 0.335378,0 0.605376,0.228459 0.605376,0.512241 l 0.03906,0.975518 C 25.83523,17.771541 25.565232,18 25.229854,18 l -2.459703,0 c -0.335378,0 -0.605375,-0.228459 -0.605375,-0.512241 l 0.03125,-0.975518 C 22.196026,16.228459 22.466023,16 22.801401,16 z"
+ style="fill:url(#linearGradient8103);fill-opacity:1;stroke:none" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccc"
+ id="path7937"
+ d="m 27.399767,16 2.447984,0 c 0.335378,0 0.566313,0.228459 0.605376,0.512241 l 0.144531,0.975518 C 30.64844,17.775447 30.32766,18 29.992282,18 l -2.549547,0 c -0.335378,0 -0.58975,-0.232365 -0.605375,-0.512241 L 26.79439,16.512241 C 26.782673,16.228459 27.064389,16 27.399767,16 z"
+ style="fill:url(#linearGradient8105);fill-opacity:1;stroke:none" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccc"
+ id="path7939"
+ d="m 17.730073,19 2.678359,0 c 0.361176,0 0.667568,0.236272 0.651943,0.512241 l -0.03125,0.975518 C 21.0135,20.763728 20.738358,21 20.377182,21 l -2.803359,0 c -0.361176,0 -0.683192,-0.228459 -0.651942,-0.512241 l 0.15625,-0.975518 C 17.109381,19.232365 17.368897,19 17.730073,19 z"
+ style="fill:url(#linearGradient8107);fill-opacity:1;stroke:none" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccc"
+ id="path7941"
+ d="m 22.723326,19 2.553357,0 c 0.361176,0 0.651943,0.228459 0.651943,0.512241 l 0.04297,0.975518 C 25.971595,20.771541 25.680828,21 25.319652,21 l -2.643201,0 c -0.361177,0 -0.651943,-0.228459 -0.651943,-0.512241 l 0.04687,-0.975518 C 22.071383,19.228459 22.362149,19 22.723326,19 z"
+ style="fill:url(#linearGradient8109);fill-opacity:1;stroke:none" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccc"
+ id="path7943"
+ d="m 27.583765,19 2.674451,0 c 0.361176,0 0.616787,0.228459 0.651943,0.512241 l 0.15625,0.975518 C 31.109378,20.767635 30.775642,21 30.414466,21 l -2.783826,0 c -0.361177,0 -0.644131,-0.228459 -0.651943,-0.512241 l -0.04687,-0.975518 C 26.920103,19.228459 27.222588,19 27.583765,19 z"
+ style="fill:url(#linearGradient8111);fill-opacity:1;stroke:none" />
+ </g>
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient8115);fill-opacity:1;stroke:none"
+ d="m 18.558806,13 2.221403,0.01105 c 0.30958,0 0.574433,0.228459 0.558808,0.512241 l -0.04285,0.964469 C 21.280538,14.771541 21.046935,15 20.737355,15 l -2.32218,0 c -0.309579,0 -0.605683,-0.228459 -0.558808,-0.512241 l 0.143631,-0.975518 C 18.031248,13.236272 18.249227,13 18.558806,13 z"
+ id="path7945"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient8117);fill-opacity:1;stroke:none"
+ d="m 22.891192,13 2.209799,0 c 0.30958,0 0.558808,0.228459 0.558808,0.512241 l 0.03906,0.975518 C 25.698861,14.771541 25.449633,15 25.140053,15 l -2.287924,0 c -0.309579,0 -0.558808,-0.228459 -0.558808,-0.512241 l 0.03906,-0.975518 C 22.332384,13.228459 22.581613,13 22.891192,13 z"
+ id="path7947"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient8119);fill-opacity:1;stroke:none"
+ d="m 27.223578,13 2.217611,0 c 0.30958,0 0.519745,0.244084 0.558808,0.512241 l 0.140625,0.975518 C 30.187497,14.775447 29.891394,15 29.581814,15 l -2.315267,0 c -0.309579,0 -0.54709,-0.228459 -0.558808,-0.512241 L 26.66477,13.512241 C 26.649145,13.228459 26.913999,13 27.223578,13 z"
+ id="path7949"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient8121);fill-opacity:1;stroke:none"
+ d="m 19.012241,10 1.942372,0 c 0.283782,0 0.535679,0.228459 0.512241,0.512241 l -0.04419,0.975518 C 21.42266,11.771541 21.194201,12 20.910419,12 l -2.074955,0 c -0.283782,0 -0.512241,-0.228459 -0.512241,-0.512241 L 18.5,10.512241 C 18.5,10.228459 18.728459,10 19.012241,10 z"
+ id="path7951"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient8123);fill-opacity:1;stroke:none"
+ d="m 22.980991,10 2.030206,0 c 0.283782,0 0.512241,0.228459 0.512241,0.512241 l 0.03125,0.975518 C 25.554688,11.771541 25.326229,12 25.042447,12 l -2.100519,0 c -0.283782,0 -0.512241,-0.228459 -0.512241,-0.512241 l 0.03906,-0.975518 C 22.46875,10.228459 22.697209,10 22.980991,10 z"
+ id="path7953"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient8125);fill-opacity:1;stroke:none"
+ d="m 27.035679,10 1.975518,0 c 0.283782,0 0.469272,0.224553 0.512241,0.512241 l 0.160156,0.975518 C 29.722656,11.771541 29.455135,12 29.171353,12 l -2.092706,0 c -0.283782,0 -0.496616,-0.228459 -0.512241,-0.512241 l -0.04297,-0.975518 C 26.507813,10.228459 26.751897,10 27.035679,10 z"
+ id="path7955"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient8127);fill-opacity:1;stroke:none"
+ d="m 18.140535,16 2.455797,0 c 0.335378,0 0.624907,0.232365 0.605376,0.512241 l -0.04297,0.975518 C 21.143114,17.767635 20.888741,18 20.553363,18 l -2.561265,0 C 17.65672,18 17.343754,17.771541 17.386723,17.487759 L 17.53516,16.512241 C 17.578129,16.232365 17.805157,16 18.140535,16 z"
+ id="path7957"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient8129);fill-opacity:1;stroke:none"
+ d="m 22.801401,16 2.389391,0 c 0.335378,0 0.605376,0.228459 0.605376,0.512241 l 0.03906,0.975518 C 25.83523,17.771541 25.565232,18 25.229854,18 l -2.459703,0 c -0.335378,0 -0.605375,-0.228459 -0.605375,-0.512241 l 0.03125,-0.975518 C 22.196026,16.228459 22.466023,16 22.801401,16 z"
+ id="path7959"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient8131);fill-opacity:1;stroke:none"
+ d="m 27.399767,16 2.447984,0 c 0.335378,0 0.566313,0.228459 0.605376,0.512241 l 0.144531,0.975518 C 30.64844,17.775447 30.32766,18 29.992282,18 l -2.549547,0 c -0.335378,0 -0.58975,-0.232365 -0.605375,-0.512241 L 26.79439,16.512241 C 26.782673,16.228459 27.064389,16 27.399767,16 z"
+ id="path7961"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient8133);fill-opacity:1;stroke:none"
+ d="m 17.730073,19 2.678359,0 c 0.361176,0 0.667568,0.236272 0.651943,0.512241 l -0.03125,0.975518 C 21.0135,20.763728 20.738358,21 20.377182,21 l -2.803359,0 c -0.361176,0 -0.683192,-0.228459 -0.651942,-0.512241 l 0.15625,-0.975518 C 17.109381,19.232365 17.368897,19 17.730073,19 z"
+ id="path7963"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient8135);fill-opacity:1;stroke:none"
+ d="m 22.723326,19 2.553357,0 c 0.361176,0 0.651943,0.228459 0.651943,0.512241 l 0.04297,0.975518 C 25.971595,20.771541 25.680828,21 25.319652,21 l -2.643201,0 c -0.361177,0 -0.651943,-0.228459 -0.651943,-0.512241 l 0.04687,-0.975518 C 22.071383,19.228459 22.362149,19 22.723326,19 z"
+ id="path7965"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient8137);fill-opacity:1;stroke:none"
+ d="m 27.583765,19 2.674451,0 c 0.361176,0 0.616787,0.228459 0.651943,0.512241 l 0.15625,0.975518 C 31.109378,20.767635 30.775642,21 30.414466,21 l -2.783826,0 c -0.361177,0 -0.644131,-0.228459 -0.651943,-0.512241 l -0.04687,-0.975518 C 26.920103,19.228459 27.222588,19 27.583765,19 z"
+ id="path7967"
+ sodipodi:nodetypes="ccccccccc" />
+ <g
+ id="g7969"
+ style="fill:#cccccc;fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(1,0.370117)">
+ <text
+ id="text7971"
+ y="11.364014"
+ x="19.609175"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black"
+ y="11.364014"
+ x="19.609175"
+ id="tspan7973"
+ sodipodi:role="line">1</tspan></text>
+ <text
+ id="text7975"
+ y="11.364014"
+ x="23.675293"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black"
+ y="11.364014"
+ x="23.675293"
+ id="tspan7977"
+ sodipodi:role="line">2</tspan></text>
+ <text
+ id="text7979"
+ y="11.35791"
+ x="27.774256"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black"
+ y="11.35791"
+ x="27.774256"
+ id="tspan7981"
+ sodipodi:role="line">3</tspan></text>
+ <text
+ id="text7983"
+ y="14.364014"
+ x="19.262312"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black"
+ y="14.364014"
+ x="19.262312"
+ id="tspan7985"
+ sodipodi:role="line">4</tspan></text>
+ <text
+ id="text7987"
+ y="14.364014"
+ x="23.675293"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black"
+ y="14.364014"
+ x="23.675293"
+ id="tspan7989"
+ sodipodi:role="line">5</tspan></text>
+ <text
+ id="text7991"
+ y="14.35791"
+ x="28.067911"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black"
+ y="14.35791"
+ x="28.067911"
+ id="tspan7993"
+ sodipodi:role="line">6</tspan></text>
+ <text
+ id="text7995"
+ y="17.35791"
+ x="18.957983"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black"
+ y="17.35791"
+ x="18.957983"
+ id="tspan7997"
+ sodipodi:role="line">7</tspan></text>
+ <text
+ id="text7999"
+ y="17.364014"
+ x="23.675293"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black"
+ y="17.364014"
+ x="23.675293"
+ id="tspan8001"
+ sodipodi:role="line">8</tspan></text>
+ <text
+ id="text8003"
+ y="17.35791"
+ x="28.368921"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black"
+ y="17.35791"
+ x="28.368921"
+ id="tspan8005"
+ sodipodi:role="line">9</tspan></text>
+ <text
+ id="text8007"
+ y="20.358154"
+ x="18.661995"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black"
+ y="20.358154"
+ x="18.661995"
+ id="tspan8009"
+ sodipodi:role="line">#</tspan></text>
+ <text
+ id="text8011"
+ y="20.35791"
+ x="23.666496"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black"
+ y="20.35791"
+ x="23.666496"
+ id="tspan8013"
+ sodipodi:role="line">0</tspan></text>
+ <text
+ id="text8015"
+ y="20.88273"
+ x="28.54826"
+ style="font-size:1.73080969px;font-weight:bold;fill:#cccccc;fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ xml:space="preserve"><tspan
+ style="font-size:1.73080969px;font-weight:bold;fill:#cccccc;fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ y="20.88273"
+ x="28.54826"
+ id="tspan8017"
+ sodipodi:role="line">*</tspan></text>
+ </g>
+ </g>
+ </g>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round;display:inline"
+ id="g8139"
+ transform="matrix(1.6839963,0,0,1.6839963,505.25391,86.398179)">
+ <g
+ inkscape:label="Layer 1"
+ id="g8141"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <g
+ style="opacity:0.4;stroke-linecap:round;stroke-linejoin:round"
+ transform="matrix(1,0,0,1.6875,-6,-5.5625)"
+ id="g8143">
+ <rect
+ style="fill:url(#radialGradient8325);fill-opacity:1;stroke:none"
+ id="rect8145"
+ width="4"
+ height="8"
+ x="9.5"
+ y="21" />
+ <rect
+ style="fill:url(#radialGradient8327);fill-opacity:1;stroke:none"
+ id="rect8147"
+ width="4"
+ height="8"
+ x="-50.5"
+ y="-29"
+ transform="scale(-1,-1)" />
+ <rect
+ style="fill:url(#linearGradient8329);fill-opacity:1;stroke:none"
+ id="rect8149"
+ width="33"
+ height="8"
+ x="13.5"
+ y="21" />
+ </g>
+ <path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ id="path8151"
+ d="m 10.0625,22.504459 c -0.01534,0.003 -0.04893,0.02718 -0.0625,0.03125 -0.00435,0.0015 -0.027066,-0.0016 -0.03125,0 -0.00388,0.0019 -0.027502,0.02926 -0.03125,0.03125 -0.00351,0.0023 -0.027847,-0.0024 -0.03125,0 -0.138974,0.106837 -0.205623,0.359232 -0.5625,0.8125 L 7,30.191959 c 1.93e-4,0.0075 -3.84e-4,0.02381 0,0.03125 -0.010751,0.01212 0.010461,0.05012 0,0.0625 -0.298139,0.35285 -0.5,0.781029 -0.5,1.28125 L 6.53125,38.5 c 0,1.123303 0.907948,2.031251 2.03125,2.03125 l 30.9375,0 c 1.123303,0 2.03125,-0.907947 2.03125,-2.03125 L 41.5,31.566959 c 0,-0.500221 -0.201861,-0.9284 -0.5,-1.28125 7.6e-4,-0.0073 -5.73e-4,-0.02386 0,-0.03125 -0.0053,-0.0061 0.0054,-0.02519 0,-0.03125 3.84e-4,-0.0074 -1.93e-4,-0.02376 0,-0.03125 l -2.5,-6.8125 c -0.378776,-0.468361 -0.44102,-0.710816 -0.59375,-0.8125 -0.0037,-0.002 -0.0274,-0.02934 -0.03125,-0.03125 -0.004,-0.0018 -0.0271,0.0016 -0.03125,0 -0.05842,-0.01816 -0.149481,-0.03125 -0.25,-0.03125 l -27.34375,0 c -0.07732,0 -0.13637,-0.01005 -0.1875,0 z"
+ style="color:#000000;fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient8331);stroke-width:1.1919533;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ sodipodi:nodetypes="cssssccssccccccsssccsssccc"
+ inkscape:connector-curvature="0" />
+ <rect
+ ry="1.6088903"
+ rx="1.5195075"
+ y="31"
+ x="7"
+ height="9"
+ width="34"
+ id="rect8153"
+ style="fill:url(#linearGradient8333);fill-opacity:1;stroke:none" />
+ <rect
+ ry="2.4999917"
+ rx="2.49999"
+ y="33.500023"
+ x="8.4999924"
+ height="4.9999833"
+ width="5.000011"
+ id="rect8155"
+ style="fill:none;stroke:url(#linearGradient8335);stroke-width:1.19195378;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057" />
+ <rect
+ ry="1.4999907"
+ rx="1.4999907"
+ y="34.500027"
+ x="9.5"
+ height="2.9999814"
+ width="3"
+ id="rect8157"
+ style="fill:url(#linearGradient8337);fill-opacity:1;stroke:#4e9a06;stroke-width:1.19195378;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057" />
+ <rect
+ ry="1.4999987"
+ rx="1.4999987"
+ y="34.500015"
+ x="15.5"
+ height="2.9999974"
+ width="3"
+ id="rect8159"
+ style="fill:url(#linearGradient8339);fill-opacity:1;stroke:#c4a000;stroke-width:1.19195366;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057" />
+ <rect
+ ry="1.4999987"
+ rx="1.4999987"
+ y="34.500015"
+ x="21.5"
+ height="2.9999974"
+ width="3"
+ id="rect8161"
+ style="fill:url(#linearGradient8341);fill-opacity:1;stroke:#ce5c00;stroke-width:1.19195366;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057" />
+ <path
+ transform="translate(0.75,0.25)"
+ d="M 10,35.25 C 10,35.388071 9.8880712,35.5 9.75,35.5 9.6119288,35.5 9.5,35.388071 9.5,35.25 9.5,35.111929 9.6119288,35 9.75,35 9.8880712,35 10,35.111929 10,35.25 z"
+ sodipodi:ry="0.25"
+ sodipodi:rx="0.25"
+ sodipodi:cy="35.25"
+ sodipodi:cx="9.75"
+ id="path8163"
+ style="opacity:0.75675677;fill:#f57900;fill-opacity:1;stroke:#ffffff;stroke-width:1.19195342;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057"
+ sodipodi:type="arc" />
+ <path
+ transform="translate(6.75,0.25)"
+ d="M 10,35.25 C 10,35.388071 9.8880712,35.5 9.75,35.5 9.6119288,35.5 9.5,35.388071 9.5,35.25 9.5,35.111929 9.6119288,35 9.75,35 9.8880712,35 10,35.111929 10,35.25 z"
+ sodipodi:ry="0.25"
+ sodipodi:rx="0.25"
+ sodipodi:cy="35.25"
+ sodipodi:cx="9.75"
+ id="path8165"
+ style="opacity:0.85675677;fill:#f57900;fill-opacity:1;stroke:#ffffff;stroke-width:1.19195342;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057"
+ sodipodi:type="arc" />
+ <path
+ transform="translate(12.75,0.25)"
+ d="M 10,35.25 C 10,35.388071 9.8880712,35.5 9.75,35.5 9.6119288,35.5 9.5,35.388071 9.5,35.25 9.5,35.111929 9.6119288,35 9.75,35 9.8880712,35 10,35.111929 10,35.25 z"
+ sodipodi:ry="0.25"
+ sodipodi:rx="0.25"
+ sodipodi:cy="35.25"
+ sodipodi:cx="9.75"
+ id="path8167"
+ style="opacity:0.75675677;fill:#f57900;fill-opacity:1;stroke:#ffffff;stroke-width:1.19195342;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057"
+ sodipodi:type="arc" />
+ <rect
+ ry="2.4999917"
+ rx="2.49999"
+ y="33.500023"
+ x="14.499992"
+ height="4.9999833"
+ width="5.000011"
+ id="rect8169"
+ style="fill:none;stroke:url(#linearGradient8343);stroke-width:1.19195378;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057" />
+ <rect
+ ry="2.4999917"
+ rx="2.49999"
+ y="33.500023"
+ x="20.499992"
+ height="4.9999833"
+ width="5.000011"
+ id="rect8171"
+ style="fill:none;stroke:url(#linearGradient8345);stroke-width:1.19195378;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057" />
+ <g
+ transform="translate(-1,0)"
+ style="fill:url(#linearGradient8372);fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ id="g8173">
+ <g
+ style="fill:url(#linearGradient8349);fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ id="g8175"
+ transform="translate(-2,0)">
+ <rect
+ ry="0.5"
+ rx="0.5"
+ y="34"
+ x="33"
+ height="4.5"
+ width="1"
+ id="rect8177"
+ style="fill:url(#linearGradient8347);fill-opacity:1;stroke:none" />
+ </g>
+ <g
+ style="fill:url(#linearGradient8353);fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ id="g8179">
+ <rect
+ ry="0.5"
+ rx="0.5"
+ y="34"
+ x="33"
+ height="4.5"
+ width="1"
+ id="rect8181"
+ style="fill:url(#linearGradient8351);fill-opacity:1;stroke:none" />
+ </g>
+ <g
+ style="fill:url(#linearGradient8358);fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ id="g8183"
+ transform="translate(2,0)">
+ <rect
+ ry="0.5"
+ rx="0.5"
+ y="34"
+ x="33"
+ height="4.5"
+ width="1"
+ id="rect8185"
+ style="fill:url(#linearGradient8355);fill-opacity:1;stroke:none" />
+ </g>
+ <g
+ style="fill:url(#linearGradient8362);fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ id="g8187"
+ transform="translate(4,0)">
+ <rect
+ ry="0.5"
+ rx="0.5"
+ y="34"
+ x="33"
+ height="4.5"
+ width="1"
+ id="rect8189"
+ style="fill:url(#linearGradient8360);fill-opacity:1;stroke:none" />
+ </g>
+ <g
+ style="fill:url(#linearGradient8366);fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ id="g8191"
+ transform="translate(6,0)">
+ <rect
+ ry="0.5"
+ rx="0.5"
+ y="34"
+ x="33"
+ height="4.5"
+ width="1"
+ id="rect8193"
+ style="fill:url(#linearGradient8364);fill-opacity:1;stroke:none" />
+ </g>
+ <g
+ style="fill:url(#linearGradient8370);fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ id="g8195"
+ transform="translate(-4,0)">
+ <rect
+ ry="0.5"
+ rx="0.5"
+ y="34"
+ x="33"
+ height="4.5"
+ width="1"
+ id="rect8197"
+ style="fill:url(#linearGradient8368);fill-opacity:1;stroke:none" />
+ </g>
+ </g>
+ <path
+ d="m 10.4375,23.46875 c -0.05668,0.09312 -0.124527,0.211556 -0.21875,0.34375 l -2.25,6.46875 a 0.97236903,0.97236903 0 0 1 0,0.03125 0.97236903,0.97236903 0 0 1 0,0.0625 c -0.00269,0.03459 0.0088,0.04902 0,0.09375 -0.011731,0.05964 -0.028776,0.110654 -0.0625,0.1875 -0.00985,0.02245 -0.043668,0.03169 -0.0625,0.0625 -0.04563,0.07466 -0.093287,0.186952 -0.09375,0.1875 -0.1875108,0.221921 -0.28125,0.417598 -0.28125,0.65625 L 7.5,38.5 c 0,0.599388 0.4631135,1.062501 1.0625,1.0625 l 30.9375,0 c 0.599389,0 1.0625,-0.463111 1.0625,-1.0625 l -0.03125,-6.9375 c 0,-0.238652 -0.09374,-0.434329 -0.28125,-0.65625 a 0.97236903,0.97236903 0 0 1 0,-0.03125 0.97236903,0.97236903 0 0 1 -0.09375,-0.125 0.97236903,0.97236903 0 0 1 0,-0.03125 A 0.97236903,0.97236903 0 0 1 40.0625,30.5 c -0.0031,-0.0063 0.002,-0.02721 0,-0.03125 -0.0029,-0.0061 -0.03123,-0.03115 -0.03125,-0.03125 -5.7e-5,-2.8e-4 0.0019,-0.04282 0,-0.0625 l 0,-0.03125 -2.375,-6.5 c -0.110187,-0.147962 -0.219199,-0.277139 -0.28125,-0.375 l -26.9375,0 z"
+ id="path8199"
+ style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1.1919533;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ inkscape:original="M 10.0625 22.5 C 10.047161 22.503014 10.013575 22.527184 10 22.53125 C 9.995651 22.532728 9.972934 22.529649 9.96875 22.53125 C 9.964867 22.533108 9.941248 22.560511 9.9375 22.5625 C 9.933992 22.564763 9.909653 22.560098 9.90625 22.5625 C 9.767276 22.669337 9.700627 22.921732 9.34375 23.375 L 7 30.1875 C 7.000193 30.194989 6.999616 30.211311 7 30.21875 C 6.989249 30.230871 7.010461 30.268869 7 30.28125 C 6.701861 30.6341 6.5 31.062279 6.5 31.5625 L 6.53125 38.5 C 6.53125 39.623303 7.439198 40.531251 8.5625 40.53125 L 39.5 40.53125 C 40.623303 40.53125 41.53125 39.623303 41.53125 38.5 L 41.5 31.5625 C 41.5 31.062279 41.298139 30.6341 41 30.28125 C 41.00076 30.273915 40.999427 30.257389 41 30.25 C 40.994697 30.243874 41.005375 30.224811 41 30.21875 C 41.000384 30.211311 40.999807 30.194989 41 30.1875 L 38.5 23.375 C 38.121224 22.906639 38.05898 22.664184 37.90625 22.5625 C 37.902538 22.560463 37.878847 22.533156 37.875 22.53125 C 37.871006 22.529474 37.8479 22.532897 37.84375 22.53125 C 37.785333 22.513087 37.694269 22.5 37.59375 22.5 L 10.25 22.5 C 10.172677 22.5 10.11363 22.489952 10.0625 22.5 z "
+ inkscape:radius="-0.9722718"
+ sodipodi:type="inkscape:offset" />
+ </g>
+ <g
+ inkscape:label="phone"
+ id="g8201"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <g
+ transform="matrix(1.000314,0,0,1,-0.002355,-7.00001)"
+ id="g8203"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ style="color:#000000;fill:url(#radialGradient8374);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient8376);stroke-width:1.1917665;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m 8.2474619,14.5 7.7498701,-2.999994 16,0 L 39.741876,14.5 c 0.256803,0.06883 0.747462,1.333368 0.747462,1.747462 l 0,2.505076 c 0,0.414094 -0.333368,0.747462 -0.747462,0.747462 l -5.752538,0 -2,-4 -15.5,0 -2.5,4 -5.7418761,0 C 7.833368,19.5 7.5,19.166632 7.5,18.752538 l 0,-2.505076 C 7.5,15.833368 7.9909958,14.568741 8.2474619,14.5 z"
+ id="path8205"
+ sodipodi:nodetypes="ccczccccccccccz"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ transform="matrix(1.000314,0,0,1,-0.002355,-7.00001)"
+ sodipodi:nodetypes="ccsccccccccsccc"
+ id="path8207"
+ d="M 16.1875,12.46875 8.8125,15.3125 C 8.770706,15.38818 8.740325,15.496831 8.6875,15.625 8.559965,15.934436 8.46875,16.429219 8.46875,16.25 l 0,2.28125 5,0 c 0.858697,-1.529381 1.128913,-2.553892 3.03125,-2 l 15.5,0 c 0.859584,0.447471 1.469779,-1.114201 2.625,2 l 4.90625,0 0,-2.28125 c 0,0.178953 -0.09127,-0.31563 -0.21875,-0.625 -0.0528,-0.128142 -0.08323,-0.236865 -0.125,-0.3125 l -7.375,-2.84375 -15.625,0 z"
+ style="opacity:0.6;color:#000000;fill:none;stroke:url(#radialGradient8378);stroke-width:1.19176626;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ inkscape:connector-curvature="0" />
+ <g
+ style="opacity:0.8;stroke-linecap:round;stroke-linejoin:round"
+ transform="matrix(1,0,0,1.0625,0,-1.3125)"
+ id="g8209">
+ <rect
+ style="fill:url(#radialGradient8380);fill-opacity:1;stroke:none"
+ id="rect8211"
+ width="4"
+ height="8"
+ x="9.5"
+ y="21" />
+ <rect
+ style="fill:url(#radialGradient8382);fill-opacity:1;stroke:none"
+ id="rect8213"
+ width="4"
+ height="8"
+ x="-38.5"
+ y="-29"
+ transform="scale(-1,-1)" />
+ <rect
+ style="fill:url(#linearGradient8384);fill-opacity:1;stroke:none"
+ id="rect8215"
+ width="21"
+ height="8"
+ x="13.5"
+ y="21" />
+ </g>
+ <path
+ sodipodi:nodetypes="ccccccsccccccsc"
+ id="path8217"
+ d="m 17.509407,7.5 2,0 0.5,2 8.002512,0 0.497488,-2 2,0 c 1.123656,0 1.740719,0.9709838 2.03297,2 l 3.976136,13.999994 0.02763,2 c 0,1.060896 -0.904604,2 -2.02826,2 l -21.006594,0 c -1.123656,0 -1.972996,-0.939104 -1.972996,-2 l -0.02763,-2 L 15.509407,9.5 c 0.293822,-1.0286979 0.876344,-2 2,-2 z"
+ style="color:#000000;fill:url(#linearGradient8386);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient8388);stroke-width:1.19195318;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccscccsc"
+ id="path8219"
+ d="m 30.504082,8 -1.588859,0.022097 -0.592,2 L 19.632583,9.955806 19.044665,8.022097 17.5,8 c -1.078709,0 -1.426702,0.8189946 -1.687047,1.789079 l -2.4042,8.958396 -1.157183,3.752519 c 6.001884,-7.205882 17.755181,4 21.876475,-5.73172 L 32.164603,9.789079 C 31.892547,8.8220351 31.582792,8 30.504082,8 z"
+ style="opacity:0.24324323;color:#000000;fill:url(#linearGradient8390);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.9999997;marker:none;visibility:visible;display:inline;overflow:visible"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccsccccccsc"
+ id="path8221"
+ d="m 17.500314,8.5 1.234521,0 0.497174,2 9.444768,-0.0221 0.654679,-1.9779 1.17294,0 c 0.500157,0 0.739705,0.088799 1.000314,1 l 4.004082,13.999994 0,1.5 c 0,1.5 0,1.5 -1.500471,1.5 l -20.00628,0 c -1.500471,0 -1.500471,0 -1.500471,-1.5 l 0,-1.5 L 16.5,9.5 c 0.260325,-0.911495 0.500157,-1 1.000314,-1 z"
+ style="opacity:0.6;color:#000000;fill:none;stroke:url(#linearGradient8392);stroke-width:1.19195318;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path8223"
+ d="m 18.67949,9.4999962 10.64178,0 c 0.597659,0 1.078805,0.4882234 1.078805,1.0946718 L 32,21.40532 c 0,0.606448 -0.481147,1.094672 -1.078807,1.094672 l -13.853815,-0.01237 c -0.59766,0 -1.078807,-0.488223 -1.078807,-1.094671 l 1.612114,-10.798283 c 0,-0.6064484 0.481147,-1.0946718 1.078805,-1.0946718 z"
+ style="fill:url(#linearGradient8394);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <g
+ style="fill:url(#linearGradient8420);fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(0,0.5)"
+ id="g8225">
+ <path
+ style="fill:url(#linearGradient8396);fill-opacity:1;stroke:none"
+ d="m 18.558806,13 2.221403,0.01105 c 0.30958,0 0.574433,0.228459 0.558808,0.512241 l -0.04285,0.964469 C 21.280538,14.771541 21.046935,15 20.737355,15 l -2.32218,0 c -0.309579,0 -0.605683,-0.228459 -0.558808,-0.512241 l 0.143631,-0.975518 C 18.031248,13.236272 18.249227,13 18.558806,13 z"
+ id="path8227"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient8398);fill-opacity:1;stroke:none"
+ d="m 22.891192,13 2.209799,0 c 0.30958,0 0.558808,0.228459 0.558808,0.512241 l 0.03906,0.975518 C 25.698861,14.771541 25.449633,15 25.140053,15 l -2.287924,0 c -0.309579,0 -0.558808,-0.228459 -0.558808,-0.512241 l 0.03906,-0.975518 C 22.332384,13.228459 22.581613,13 22.891192,13 z"
+ id="path8229"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient8400);fill-opacity:1;stroke:none"
+ d="m 27.223578,13 2.217611,0 c 0.30958,0 0.519745,0.244084 0.558808,0.512241 l 0.140625,0.975518 C 30.187497,14.775447 29.891394,15 29.581814,15 l -2.315267,0 c -0.309579,0 -0.54709,-0.228459 -0.558808,-0.512241 L 26.66477,13.512241 C 26.649145,13.228459 26.913999,13 27.223578,13 z"
+ id="path8231"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient8402);fill-opacity:1;stroke:none"
+ d="m 19.012241,10 1.942372,0 c 0.283782,0 0.535679,0.228459 0.512241,0.512241 l -0.04419,0.975518 C 21.42266,11.771541 21.194201,12 20.910419,12 l -2.074955,0 c -0.283782,0 -0.512241,-0.228459 -0.512241,-0.512241 L 18.5,10.512241 C 18.5,10.228459 18.728459,10 19.012241,10 z"
+ id="path8233"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient8404);fill-opacity:1;stroke:none"
+ d="m 22.980991,10 2.030206,0 c 0.283782,0 0.512241,0.228459 0.512241,0.512241 l 0.03125,0.975518 C 25.554688,11.771541 25.326229,12 25.042447,12 l -2.100519,0 c -0.283782,0 -0.512241,-0.228459 -0.512241,-0.512241 l 0.03906,-0.975518 C 22.46875,10.228459 22.697209,10 22.980991,10 z"
+ id="path8235"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient8406);fill-opacity:1;stroke:none"
+ d="m 27.035679,10 1.975518,0 c 0.283782,0 0.469272,0.224553 0.512241,0.512241 l 0.160156,0.975518 C 29.722656,11.771541 29.455135,12 29.171353,12 l -2.092706,0 c -0.283782,0 -0.496616,-0.228459 -0.512241,-0.512241 l -0.04297,-0.975518 C 26.507813,10.228459 26.751897,10 27.035679,10 z"
+ id="path8237"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient8408);fill-opacity:1;stroke:none"
+ d="m 18.140535,16 2.455797,0 c 0.335378,0 0.624907,0.232365 0.605376,0.512241 l -0.04297,0.975518 C 21.143114,17.767635 20.888741,18 20.553363,18 l -2.561265,0 C 17.65672,18 17.343754,17.771541 17.386723,17.487759 L 17.53516,16.512241 C 17.578129,16.232365 17.805157,16 18.140535,16 z"
+ id="path8239"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient8410);fill-opacity:1;stroke:none"
+ d="m 22.801401,16 2.389391,0 c 0.335378,0 0.605376,0.228459 0.605376,0.512241 l 0.03906,0.975518 C 25.83523,17.771541 25.565232,18 25.229854,18 l -2.459703,0 c -0.335378,0 -0.605375,-0.228459 -0.605375,-0.512241 l 0.03125,-0.975518 C 22.196026,16.228459 22.466023,16 22.801401,16 z"
+ id="path8241"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient8412);fill-opacity:1;stroke:none"
+ d="m 27.399767,16 2.447984,0 c 0.335378,0 0.566313,0.228459 0.605376,0.512241 l 0.144531,0.975518 C 30.64844,17.775447 30.32766,18 29.992282,18 l -2.549547,0 c -0.335378,0 -0.58975,-0.232365 -0.605375,-0.512241 L 26.79439,16.512241 C 26.782673,16.228459 27.064389,16 27.399767,16 z"
+ id="path8243"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient8414);fill-opacity:1;stroke:none"
+ d="m 17.730073,19 2.678359,0 c 0.361176,0 0.667568,0.236272 0.651943,0.512241 l -0.03125,0.975518 C 21.0135,20.763728 20.738358,21 20.377182,21 l -2.803359,0 c -0.361176,0 -0.683192,-0.228459 -0.651942,-0.512241 l 0.15625,-0.975518 C 17.109381,19.232365 17.368897,19 17.730073,19 z"
+ id="path8245"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient8416);fill-opacity:1;stroke:none"
+ d="m 22.723326,19 2.553357,0 c 0.361176,0 0.651943,0.228459 0.651943,0.512241 l 0.04297,0.975518 C 25.971595,20.771541 25.680828,21 25.319652,21 l -2.643201,0 c -0.361177,0 -0.651943,-0.228459 -0.651943,-0.512241 l 0.04687,-0.975518 C 22.071383,19.228459 22.362149,19 22.723326,19 z"
+ id="path8247"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient8418);fill-opacity:1;stroke:none"
+ d="m 27.583765,19 2.674451,0 c 0.361176,0 0.616787,0.228459 0.651943,0.512241 l 0.15625,0.975518 C 31.109378,20.767635 30.775642,21 30.414466,21 l -2.783826,0 c -0.361177,0 -0.644131,-0.228459 -0.651943,-0.512241 l -0.04687,-0.975518 C 26.920103,19.228459 27.222588,19 27.583765,19 z"
+ id="path8249"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path8251"
+ d="m 18.558806,13 2.221403,0.01105 c 0.30958,0 0.574433,0.228459 0.558808,0.512241 l -0.04285,0.964469 C 21.280538,14.771541 21.046935,15 20.737355,15 l -2.32218,0 c -0.309579,0 -0.605683,-0.228459 -0.558808,-0.512241 l 0.143631,-0.975518 C 18.031248,13.236272 18.249227,13 18.558806,13 z"
+ style="fill:url(#radialGradient8422);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path8253"
+ d="m 22.891192,13 2.209799,0 c 0.30958,0 0.558808,0.228459 0.558808,0.512241 l 0.03906,0.975518 C 25.698861,14.771541 25.449633,15 25.140053,15 l -2.287924,0 c -0.309579,0 -0.558808,-0.228459 -0.558808,-0.512241 l 0.03906,-0.975518 C 22.332384,13.228459 22.581613,13 22.891192,13 z"
+ style="fill:url(#radialGradient8424);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path8255"
+ d="m 27.223578,13 2.217611,0 c 0.30958,0 0.519745,0.244084 0.558808,0.512241 l 0.140625,0.975518 C 30.187497,14.775447 29.891394,15 29.581814,15 l -2.315267,0 c -0.309579,0 -0.54709,-0.228459 -0.558808,-0.512241 L 26.66477,13.512241 C 26.649145,13.228459 26.913999,13 27.223578,13 z"
+ style="fill:url(#radialGradient8426);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path8257"
+ d="m 19.012241,10 1.942372,0 c 0.283782,0 0.535679,0.228459 0.512241,0.512241 l -0.04419,0.975518 C 21.42266,11.771541 21.194201,12 20.910419,12 l -2.074955,0 c -0.283782,0 -0.512241,-0.228459 -0.512241,-0.512241 L 18.5,10.512241 C 18.5,10.228459 18.728459,10 19.012241,10 z"
+ style="fill:url(#radialGradient8428);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path8259"
+ d="m 22.980991,10 2.030206,0 c 0.283782,0 0.512241,0.228459 0.512241,0.512241 l 0.03125,0.975518 C 25.554688,11.771541 25.326229,12 25.042447,12 l -2.100519,0 c -0.283782,0 -0.512241,-0.228459 -0.512241,-0.512241 l 0.03906,-0.975518 C 22.46875,10.228459 22.697209,10 22.980991,10 z"
+ style="fill:url(#radialGradient8430);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path8261"
+ d="m 27.035679,10 1.975518,0 c 0.283782,0 0.469272,0.224553 0.512241,0.512241 l 0.160156,0.975518 C 29.722656,11.771541 29.455135,12 29.171353,12 l -2.092706,0 c -0.283782,0 -0.496616,-0.228459 -0.512241,-0.512241 l -0.04297,-0.975518 C 26.507813,10.228459 26.751897,10 27.035679,10 z"
+ style="fill:url(#radialGradient8432);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path8263"
+ d="m 18.140535,16 2.455797,0 c 0.335378,0 0.624907,0.232365 0.605376,0.512241 l -0.04297,0.975518 C 21.143114,17.767635 20.888741,18 20.553363,18 l -2.561265,0 C 17.65672,18 17.343754,17.771541 17.386723,17.487759 L 17.53516,16.512241 C 17.578129,16.232365 17.805157,16 18.140535,16 z"
+ style="fill:url(#radialGradient8434);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path8265"
+ d="m 22.801401,16 2.389391,0 c 0.335378,0 0.605376,0.228459 0.605376,0.512241 l 0.03906,0.975518 C 25.83523,17.771541 25.565232,18 25.229854,18 l -2.459703,0 c -0.335378,0 -0.605375,-0.228459 -0.605375,-0.512241 l 0.03125,-0.975518 C 22.196026,16.228459 22.466023,16 22.801401,16 z"
+ style="fill:url(#radialGradient8436);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path8267"
+ d="m 27.399767,16 2.447984,0 c 0.335378,0 0.566313,0.228459 0.605376,0.512241 l 0.144531,0.975518 C 30.64844,17.775447 30.32766,18 29.992282,18 l -2.549547,0 c -0.335378,0 -0.58975,-0.232365 -0.605375,-0.512241 L 26.79439,16.512241 C 26.782673,16.228459 27.064389,16 27.399767,16 z"
+ style="fill:url(#radialGradient8438);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path8269"
+ d="m 17.730073,19 2.678359,0 c 0.361176,0 0.667568,0.236272 0.651943,0.512241 l -0.03125,0.975518 C 21.0135,20.763728 20.738358,21 20.377182,21 l -2.803359,0 c -0.361176,0 -0.683192,-0.228459 -0.651942,-0.512241 l 0.15625,-0.975518 C 17.109381,19.232365 17.368897,19 17.730073,19 z"
+ style="fill:url(#radialGradient8440);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path8271"
+ d="m 22.723326,19 2.553357,0 c 0.361176,0 0.651943,0.228459 0.651943,0.512241 l 0.04297,0.975518 C 25.971595,20.771541 25.680828,21 25.319652,21 l -2.643201,0 c -0.361177,0 -0.651943,-0.228459 -0.651943,-0.512241 l 0.04687,-0.975518 C 22.071383,19.228459 22.362149,19 22.723326,19 z"
+ style="fill:url(#radialGradient8442);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path8273"
+ d="m 27.583765,19 2.674451,0 c 0.361176,0 0.616787,0.228459 0.651943,0.512241 l 0.15625,0.975518 C 31.109378,20.767635 30.775642,21 30.414466,21 l -2.783826,0 c -0.361177,0 -0.644131,-0.228459 -0.651943,-0.512241 l -0.04687,-0.975518 C 26.920103,19.228459 27.222588,19 27.583765,19 z"
+ style="fill:url(#radialGradient8444);fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <g
+ transform="translate(1,0.370117)"
+ style="fill:#cccccc;fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ id="g8275">
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="19.609175"
+ y="11.364014"
+ id="text8277"><tspan
+ sodipodi:role="line"
+ id="tspan8279"
+ x="19.609175"
+ y="11.364014"
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="23.675293"
+ y="11.364014"
+ id="text8281"><tspan
+ sodipodi:role="line"
+ id="tspan8283"
+ x="23.675293"
+ y="11.364014"
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="27.774256"
+ y="11.35791"
+ id="text8285"><tspan
+ sodipodi:role="line"
+ id="tspan8287"
+ x="27.774256"
+ y="11.35791"
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="19.262312"
+ y="14.364014"
+ id="text8289"><tspan
+ sodipodi:role="line"
+ id="tspan8291"
+ x="19.262312"
+ y="14.364014"
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black">4</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="23.675293"
+ y="14.364014"
+ id="text8293"><tspan
+ sodipodi:role="line"
+ id="tspan8295"
+ x="23.675293"
+ y="14.364014"
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black">5</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="28.067911"
+ y="14.35791"
+ id="text8297"><tspan
+ sodipodi:role="line"
+ id="tspan8299"
+ x="28.067911"
+ y="14.35791"
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black">6</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="18.957983"
+ y="17.35791"
+ id="text8301"><tspan
+ sodipodi:role="line"
+ id="tspan8303"
+ x="18.957983"
+ y="17.35791"
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black">7</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="23.675293"
+ y="17.364014"
+ id="text8305"><tspan
+ sodipodi:role="line"
+ id="tspan8307"
+ x="23.675293"
+ y="17.364014"
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black">8</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="28.368921"
+ y="17.35791"
+ id="text8309"><tspan
+ sodipodi:role="line"
+ id="tspan8311"
+ x="28.368921"
+ y="17.35791"
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black">9</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="18.661995"
+ y="20.358154"
+ id="text8313"><tspan
+ sodipodi:role="line"
+ id="tspan8315"
+ x="18.661995"
+ y="20.358154"
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black">#</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="23.666496"
+ y="20.35791"
+ id="text8317"><tspan
+ sodipodi:role="line"
+ id="tspan8319"
+ x="23.666496"
+ y="20.35791"
+ style="font-size:1px;fill:#cccccc;fill-opacity:1;font-family:Arial Black">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:1.73080969px;font-weight:bold;fill:#cccccc;fill-opacity:1;stroke-linecap:round;stroke-linejoin:round"
+ x="28.54826"
+ y="20.88273"
+ id="text8321"><tspan
+ sodipodi:role="line"
+ id="tspan8323"
+ x="28.54826"
+ y="20.88273"
+ style="font-size:1.73080969px;font-weight:bold;fill:#cccccc;fill-opacity:1;stroke-linecap:round;stroke-linejoin:round">*</tspan></text>
+ </g>
+ </g>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans"
+ x="603.19855"
+ y="149.49422"
+ id="text8446"><tspan
+ id="tspan8448"
+ sodipodi:role="line"
+ x="603.19855"
+ y="149.49422">GMSC</tspan></text>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="matrix(0.69916804,0,0,0.69916804,255.60782,209.44226)"
+ id="g8450">
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ id="g8452"
+ transform="matrix(1.48173,0,0,1.48173,755.762,95.8056)">
+ <g
+ transform="matrix(0.0201927,0,0,0.0170832,-17.5399,42.4025)"
+ id="g8454"
+ style="stroke-linecap:round;stroke-linejoin:round;display:inline">
+ <rect
+ style="opacity:0.39195999;color:#000000;fill:url(#linearGradient8606);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ id="rect8456"
+ width="1339.6335"
+ height="478.35718"
+ x="-1559.2523"
+ y="-150.69685" />
+ <path
+ inkscape:connector-curvature="0"
+ style="opacity:0.40206197;color:#000000;fill:url(#radialGradient8608);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m -219.61876,-150.68038 c 0,0 0,478.33079 0,478.33079 142.874166,0.90045 345.40022,-107.16966 345.40014,-239.196175 0,-132.026537 -159.436816,-239.134595 -345.40014,-239.134615 z"
+ id="path8458"
+ sodipodi:nodetypes="cccc" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc"
+ id="path8460"
+ d="m -1559.2523,-150.68038 c 0,0 0,478.33079 0,478.33079 -142.8742,0.90045 -345.4002,-107.16966 -345.4002,-239.196175 0,-132.026537 159.4368,-239.134595 345.4002,-239.134615 z"
+ style="opacity:0.40206197;color:#000000;fill:url(#radialGradient8610);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ </g>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-60,30)"
+ id="g8462">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:url(#radialGradient8612);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
+ d="m 14.345337,8.5060394 c -0.64368,2.2113336 -3.112797,4.0060386 -5.5114231,4.0060386 -2.3986256,0 -3.8229293,-1.794705 -3.1792494,-4.0060386 0.64368,-2.2113336 3.1127974,-4.0060393 5.5114235,-4.0060393 2.398625,0 3.822929,1.7947057 3.179249,4.0060393 z"
+ id="path8464" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90639138;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path8466"
+ sodipodi:cx="9.4575529"
+ sodipodi:cy="9.0207386"
+ sodipodi:rx="4.9939418"
+ sodipodi:ry="3.4913397"
+ d="m 14.451495,9.0207386 c 0,1.9282134 -2.235864,3.4913394 -4.9939421,3.4913394 -2.7580779,0 -4.9939418,-1.563126 -4.9939418,-3.4913394 0,-1.9282137 2.2358639,-3.4913397 4.9939418,-3.4913397 2.7580781,0 4.9939421,1.563126 4.9939421,3.4913397 z"
+ transform="matrix(0.870121,0,-0.333994,1.14742,4.78365,-1.84455)" />
+ </g>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-60,24)"
+ id="g8468">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:url(#radialGradient8614);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
+ d="m 14.345337,8.5060394 c -0.64368,2.2113336 -3.112797,4.0060386 -5.5114231,4.0060386 -2.3986256,0 -3.8229293,-1.794705 -3.1792494,-4.0060386 0.64368,-2.2113336 3.1127974,-4.0060393 5.5114235,-4.0060393 2.398625,0 3.822929,1.7947057 3.179249,4.0060393 z"
+ id="path8470" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90639138;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path8472"
+ sodipodi:cx="9.4575529"
+ sodipodi:cy="9.0207386"
+ sodipodi:rx="4.9939418"
+ sodipodi:ry="3.4913397"
+ d="m 14.451495,9.0207386 c 0,1.9282134 -2.235864,3.4913394 -4.9939421,3.4913394 -2.7580779,0 -4.9939418,-1.563126 -4.9939418,-3.4913394 0,-1.9282137 2.2358639,-3.4913397 4.9939418,-3.4913397 2.7580781,0 4.9939421,1.563126 4.9939421,3.4913397 z"
+ transform="matrix(0.870121,0,-0.333994,1.14742,4.78365,-1.84455)" />
+ </g>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-60,18)"
+ id="g8474">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:url(#radialGradient8616);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
+ d="m 14.345337,8.5060394 c -0.64368,2.2113336 -3.112797,4.0060386 -5.5114231,4.0060386 -2.3986256,0 -3.8229293,-1.794705 -3.1792494,-4.0060386 0.64368,-2.2113336 3.1127974,-4.0060393 5.5114235,-4.0060393 2.398625,0 3.822929,1.7947057 3.179249,4.0060393 z"
+ id="path8476" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90639138;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path8478"
+ sodipodi:cx="9.4575529"
+ sodipodi:cy="9.0207386"
+ sodipodi:rx="4.9939418"
+ sodipodi:ry="3.4913397"
+ d="m 14.451495,9.0207386 c 0,1.9282134 -2.235864,3.4913394 -4.9939421,3.4913394 -2.7580779,0 -4.9939418,-1.563126 -4.9939418,-3.4913394 0,-1.9282137 2.2358639,-3.4913397 4.9939418,-3.4913397 2.7580781,0 4.9939421,1.563126 4.9939421,3.4913397 z"
+ transform="matrix(0.870121,0,-0.333994,1.14742,4.78365,-1.84455)" />
+ </g>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-60,12)"
+ id="g8480">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:url(#radialGradient8618);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
+ d="m 14.345337,8.5060394 c -0.64368,2.2113336 -3.112797,4.0060386 -5.5114231,4.0060386 -2.3986256,0 -3.8229293,-1.794705 -3.1792494,-4.0060386 0.64368,-2.2113336 3.1127974,-4.0060393 5.5114235,-4.0060393 2.398625,0 3.822929,1.7947057 3.179249,4.0060393 z"
+ id="path8482" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90639138;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path8484"
+ sodipodi:cx="9.4575529"
+ sodipodi:cy="9.0207386"
+ sodipodi:rx="4.9939418"
+ sodipodi:ry="3.4913397"
+ d="m 14.451495,9.0207386 c 0,1.9282134 -2.235864,3.4913394 -4.9939421,3.4913394 -2.7580779,0 -4.9939418,-1.563126 -4.9939418,-3.4913394 0,-1.9282137 2.2358639,-3.4913397 4.9939418,-3.4913397 2.7580781,0 4.9939421,1.563126 4.9939421,3.4913397 z"
+ transform="matrix(0.870121,0,-0.333994,1.14742,4.78365,-1.84455)" />
+ </g>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-60,6)"
+ id="g8486">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:url(#radialGradient8620);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
+ d="m 14.345337,8.5060394 c -0.64368,2.2113336 -3.112797,4.0060386 -5.5114231,4.0060386 -2.3986256,0 -3.8229293,-1.794705 -3.1792494,-4.0060386 0.64368,-2.2113336 3.1127974,-4.0060393 5.5114235,-4.0060393 2.398625,0 3.822929,1.7947057 3.179249,4.0060393 z"
+ id="path8488" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90639138;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path8490"
+ sodipodi:cx="9.4575529"
+ sodipodi:cy="9.0207386"
+ sodipodi:rx="4.9939418"
+ sodipodi:ry="3.4913397"
+ d="m 14.451495,9.0207386 c 0,1.9282134 -2.235864,3.4913394 -4.9939421,3.4913394 -2.7580779,0 -4.9939418,-1.563126 -4.9939418,-3.4913394 0,-1.9282137 2.2358639,-3.4913397 4.9939418,-3.4913397 2.7580781,0 4.9939421,1.563126 4.9939421,3.4913397 z"
+ transform="matrix(0.870121,0,-0.333994,1.14742,4.78365,-1.84455)" />
+ </g>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-60,0)"
+ id="g8492">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:url(#radialGradient8622);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
+ d="m 14.345337,8.5060394 c -0.64368,2.2113336 -3.112797,4.0060386 -5.5114231,4.0060386 -2.3986256,0 -3.8229293,-1.794705 -3.1792494,-4.0060386 0.64368,-2.2113336 3.1127974,-4.0060393 5.5114235,-4.0060393 2.398625,0 3.822929,1.7947057 3.179249,4.0060393 z"
+ id="path8494" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90639138;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path8496"
+ sodipodi:cx="9.4575529"
+ sodipodi:cy="9.0207386"
+ sodipodi:rx="4.9939418"
+ sodipodi:ry="3.4913397"
+ d="m 14.451495,9.0207386 c 0,1.9282134 -2.235864,3.4913394 -4.9939421,3.4913394 -2.7580779,0 -4.9939418,-1.563126 -4.9939418,-3.4913394 0,-1.9282137 2.2358639,-3.4913397 4.9939418,-3.4913397 2.7580781,0 4.9939421,1.563126 4.9939421,3.4913397 z"
+ transform="matrix(0.870121,0,-0.333994,1.14742,4.78365,-1.84455)" />
+ </g>
+ <rect
+ ry="1.6702623"
+ rx="1.616383"
+ y="1.5"
+ x="-50.5"
+ height="39.999996"
+ width="29.999998"
+ id="rect8498"
+ style="fill:#3465a4;fill-opacity:1;stroke:#204a87;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-62,1)"
+ id="g8500">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#d3d7cf;fill-opacity:1;stroke:none"
+ d="M 14,3 39.182408,3 40,3.6961651 40,25 14,25 14,3 z"
+ id="path8502"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ d="m 14,3 25.65625,0 c 1.055682,1.0277742 -0.49011,2.0151389 -2,2 L 12.625,5 C 14.126385,5 15.015732,3.4971845 14,3 z"
+ id="path8504"
+ sodipodi:nodetypes="ccccc" />
+ </g>
+ <rect
+ ry="0.75161809"
+ rx="0.83513117"
+ y="9.5"
+ x="-20.5"
+ height="10"
+ width="5"
+ id="rect8506"
+ style="fill:url(#radialGradient8624);fill-opacity:1;stroke:#4e9a06;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccc"
+ id="path8508"
+ d="m -48.079373,2.53125 c -0.800828,0 -1.389377,0.6089338 -1.389377,1.4375 l 0,35.0625 c 0,0.828566 0.588549,1.4375 1.389377,1.4375 l 25.189997,0 c 0.800828,0 1.389377,-0.608935 1.389377,-1.4375 l 0,-35.0625 c 0,-0.8285661 -0.58855,-1.4375 -1.389377,-1.4375 l -25.189997,0 z"
+ style="opacity:0.2;fill:none;stroke:#ffffff;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-dashoffset:0" />
+ <path
+ transform="translate(-62,-20)"
+ d="m 39.75,30.5 c -0.140446,0 -0.25,0.109555 -0.25,0.25 l 0,7.5 c 0,0.140448 0.109551,0.25 0.25,0.25 l 5.5,0 c 0.140448,0 0.25,-0.109551 0.25,-0.25 l 0,-7.5 c 0,-0.140448 -0.109551,-0.25 -0.25,-0.25 l -5.5,0 z"
+ id="path8510"
+ style="opacity:0.5;fill:none;stroke:url(#linearGradient8626);stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:original="M 39.75 29.5 C 39.06446 29.5 38.5 30.064461 38.5 30.75 L 38.5 38.25 C 38.5 38.93554 39.064459 39.5 39.75 39.5 L 45.25 39.5 C 45.93554 39.5 46.5 38.935541 46.5 38.25 L 46.5 30.75 C 46.5 30.06446 45.935541 29.5 45.25 29.5 L 39.75 29.5 z "
+ inkscape:radius="-0.99302852"
+ sodipodi:type="inkscape:offset" />
+ <rect
+ ry="0.83513117"
+ rx="0.83513117"
+ y="19.5"
+ x="-22.5"
+ height="10"
+ width="8"
+ id="rect8512"
+ style="fill:url(#radialGradient8628);fill-opacity:1;stroke:#c4a000;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <rect
+ ry="0.83513117"
+ rx="0.83513117"
+ y="29.5"
+ x="-21.5"
+ height="10"
+ width="8"
+ id="rect8514"
+ style="fill:url(#radialGradient8630);fill-opacity:1;stroke:#ce5c00;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <path
+ transform="translate(-61,-10)"
+ d="m 39.75,30.5 c -0.140446,0 -0.25,0.109555 -0.25,0.25 l 0,7.5 c 0,0.140448 0.109551,0.25 0.25,0.25 l 5.5,0 c 0.140448,0 0.25,-0.109551 0.25,-0.25 l 0,-7.5 c 0,-0.140448 -0.109551,-0.25 -0.25,-0.25 l -5.5,0 z"
+ id="path8516"
+ style="opacity:0.5;fill:none;stroke:url(#linearGradient8632);stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:original="M 39.75 29.5 C 39.06446 29.5 38.5 30.064461 38.5 30.75 L 38.5 38.25 C 38.5 38.93554 39.064459 39.5 39.75 39.5 L 45.25 39.5 C 45.93554 39.5 46.5 38.935541 46.5 38.25 L 46.5 30.75 C 46.5 30.06446 45.935541 29.5 45.25 29.5 L 39.75 29.5 z "
+ inkscape:radius="-0.99302852"
+ sodipodi:type="inkscape:offset" />
+ <rect
+ y="19"
+ x="-24.8125"
+ height="10"
+ width="6.8125"
+ id="rect8518"
+ style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:none" />
+ <path
+ transform="translate(-60,0)"
+ d="m 39.75,30.5 c -0.140446,0 -0.25,0.109555 -0.25,0.25 l 0,7.5 c 0,0.140448 0.109551,0.25 0.25,0.25 l 5.5,0 c 0.140448,0 0.25,-0.109551 0.25,-0.25 l 0,-7.5 c 0,-0.140448 -0.109551,-0.25 -0.25,-0.25 l -5.5,0 z"
+ id="path8520"
+ style="opacity:0.5;fill:none;stroke:url(#linearGradient8634);stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:original="M 39.75 29.5 C 39.06446 29.5 38.5 30.064461 38.5 30.75 L 38.5 38.25 C 38.5 38.93554 39.064459 39.5 39.75 39.5 L 45.25 39.5 C 45.93554 39.5 46.5 38.935541 46.5 38.25 L 46.5 30.75 C 46.5 30.06446 45.935541 29.5 45.25 29.5 L 39.75 29.5 z "
+ inkscape:radius="-0.99302852"
+ sodipodi:type="inkscape:offset" />
+ <rect
+ y="29"
+ x="-24.8125"
+ height="11"
+ width="6.8125"
+ id="rect8522"
+ style="opacity:0.1;fill:#000000;fill-opacity:1;stroke:none" />
+ <rect
+ y="9"
+ x="-25"
+ height="10"
+ width="7"
+ id="rect8524"
+ style="opacity:0.15517201;fill:#000000;fill-opacity:1;stroke:none" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient8636);fill-opacity:1;stroke:#204a87;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-dashoffset:0"
+ d="m -49.025126,6.5 27.050252,0 C -20.603794,6.5 -19.5,7.6037937 -19.5,8.9748738 l 0,34.0502482 c 0,1.37108 -1.103794,2.474874 -2.474874,2.474874 l -27.050252,0 c -1.37108,0 -2.474874,-1.103794 -2.474874,-2.474874 l 0,-34.0502482 C -51.5,7.6037937 -50.396206,6.5 -49.025126,6.5 z"
+ id="path8526"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ transform="translate(-60,0)"
+ style="fill:url(#linearGradient8638);fill-opacity:1;stroke:none"
+ d="M 10.96875,7 C 9.866556,7 9,7.8665563 9,8.96875 l 0,34.0625 C 9,44.133444 9.8665564,45 10.96875,45 l 27.0625,0 C 39.133444,45 40,44.133443 40,43.03125 L 40,8.96875 C 40,7.8665562 39.133443,7 38.03125,7 l -27.0625,0 z"
+ id="path8528"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="opacity:0.46120701;fill:none;stroke:url(#linearGradient8640);stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-dashoffset:0"
+ d="m 10.96875,7.53125 c -0.828566,0 -1.4375,0.6089338 -1.4375,1.4375 l 0,34.0625 c 0,0.828566 0.608934,1.4375 1.4375,1.4375 l 27.0625,0 c 0.828566,0 1.4375,-0.608935 1.4375,-1.4375 l 0,-34.0625 c 0,-0.8285661 -0.608935,-1.4375 -1.4375,-1.4375 l -27.0625,0 z"
+ id="path8530"
+ sodipodi:nodetypes="ccccccccc"
+ transform="translate(-60,0)" />
+ <path
+ transform="matrix(0.983801,0,0,0.95244,-59.7174,30.1455)"
+ d="m 13.435029,11.959651 c 0,0.890884 -0.682631,1.613087 -1.524699,1.613087 -0.842068,0 -1.524699,-0.722203 -1.524699,-1.613087 0,-0.890884 0.682631,-1.613087 1.524699,-1.613087 0.842068,0 1.524699,0.722203 1.524699,1.613087 z"
+ sodipodi:ry="1.6130873"
+ sodipodi:rx="1.524699"
+ sodipodi:cy="11.959651"
+ sodipodi:cx="11.91033"
+ id="path8532"
+ style="fill:none;stroke:#204a87;stroke-width:0.93560952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.983801,0,0,0.95244,-59.7174,24.1455)"
+ d="m 13.435029,11.959651 c 0,0.890884 -0.682631,1.613087 -1.524699,1.613087 -0.842068,0 -1.524699,-0.722203 -1.524699,-1.613087 0,-0.890884 0.682631,-1.613087 1.524699,-1.613087 0.842068,0 1.524699,0.722203 1.524699,1.613087 z"
+ sodipodi:ry="1.6130873"
+ sodipodi:rx="1.524699"
+ sodipodi:cy="11.959651"
+ sodipodi:cx="11.91033"
+ id="path8534"
+ style="fill:none;stroke:#204a87;stroke-width:0.93560952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.983801,0,0,0.95244,-59.7174,18.1455)"
+ d="m 13.435029,11.959651 c 0,0.890884 -0.682631,1.613087 -1.524699,1.613087 -0.842068,0 -1.524699,-0.722203 -1.524699,-1.613087 0,-0.890884 0.682631,-1.613087 1.524699,-1.613087 0.842068,0 1.524699,0.722203 1.524699,1.613087 z"
+ sodipodi:ry="1.6130873"
+ sodipodi:rx="1.524699"
+ sodipodi:cy="11.959651"
+ sodipodi:cx="11.91033"
+ id="path8536"
+ style="fill:none;stroke:#204a87;stroke-width:0.93560952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.983801,0,0,0.95244,-59.7174,6.14552)"
+ d="m 13.435029,11.959651 c 0,0.890884 -0.682631,1.613087 -1.524699,1.613087 -0.842068,0 -1.524699,-0.722203 -1.524699,-1.613087 0,-0.890884 0.682631,-1.613087 1.524699,-1.613087 0.842068,0 1.524699,0.722203 1.524699,1.613087 z"
+ sodipodi:ry="1.6130873"
+ sodipodi:rx="1.524699"
+ sodipodi:cy="11.959651"
+ sodipodi:cx="11.91033"
+ id="path8538"
+ style="fill:none;stroke:#204a87;stroke-width:0.93560952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.983801,0,0,0.95244,-59.7174,12.1455)"
+ d="m 13.435029,11.959651 c 0,0.890884 -0.682631,1.613087 -1.524699,1.613087 -0.842068,0 -1.524699,-0.722203 -1.524699,-1.613087 0,-0.890884 0.682631,-1.613087 1.524699,-1.613087 0.842068,0 1.524699,0.722203 1.524699,1.613087 z"
+ sodipodi:ry="1.6130873"
+ sodipodi:rx="1.524699"
+ sodipodi:cy="11.959651"
+ sodipodi:cx="11.91033"
+ id="path8540"
+ style="fill:none;stroke:#204a87;stroke-width:0.93560952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.983801,0,0,0.95244,-59.7174,0.145517)"
+ d="m 13.435029,11.959651 c 0,0.890884 -0.682631,1.613087 -1.524699,1.613087 -0.842068,0 -1.524699,-0.722203 -1.524699,-1.613087 0,-0.890884 0.682631,-1.613087 1.524699,-1.613087 0.842068,0 1.524699,0.722203 1.524699,1.613087 z"
+ sodipodi:ry="1.6130873"
+ sodipodi:rx="1.524699"
+ sodipodi:cy="11.959651"
+ sodipodi:cx="11.91033"
+ id="path8542"
+ style="fill:none;stroke:#204a87;stroke-width:0.93560952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-60,30)"
+ id="g8544">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:url(#radialGradient8642);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 5.65625,8.5 c -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ id="path8546"
+ sodipodi:nodetypes="csc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 6.84375,6.5 c -0.5475716,0.5922996 -0.9735778,1.2650799 -1.1875,2 -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ id="path8548"
+ sodipodi:nodetypes="cssc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8550"
+ sodipodi:cx="5.265625"
+ sodipodi:cy="8.2578125"
+ sodipodi:rx="0.546875"
+ sodipodi:ry="0.8046875"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ transform="matrix(1.37143,0,0,0.932039,-1.73659,0.313359)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8552"
+ sodipodi:cx="5.265625"
+ sodipodi:cy="8.2578125"
+ sodipodi:rx="0.546875"
+ sodipodi:ry="0.8046875"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ transform="matrix(1.37143,0,0,0.932039,4.09704,3.71631)" />
+ </g>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-60,24)"
+ id="g8554">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:url(#radialGradient8644);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 5.65625,8.5 c -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ id="path8556"
+ sodipodi:nodetypes="csc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 6.84375,6.5 c -0.5475716,0.5922996 -0.9735778,1.2650799 -1.1875,2 -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ id="path8558"
+ sodipodi:nodetypes="cssc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8560"
+ sodipodi:cx="5.265625"
+ sodipodi:cy="8.2578125"
+ sodipodi:rx="0.546875"
+ sodipodi:ry="0.8046875"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ transform="matrix(1.37143,0,0,0.932039,-1.73659,0.313359)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8562"
+ sodipodi:cx="5.265625"
+ sodipodi:cy="8.2578125"
+ sodipodi:rx="0.546875"
+ sodipodi:ry="0.8046875"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ transform="matrix(1.37143,0,0,0.932039,4.09704,3.71631)" />
+ </g>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-60,18)"
+ id="g8564">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:url(#radialGradient8646);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 5.65625,8.5 c -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ id="path8566"
+ sodipodi:nodetypes="csc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 6.84375,6.5 c -0.5475716,0.5922996 -0.9735778,1.2650799 -1.1875,2 -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ id="path8568"
+ sodipodi:nodetypes="cssc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8570"
+ sodipodi:cx="5.265625"
+ sodipodi:cy="8.2578125"
+ sodipodi:rx="0.546875"
+ sodipodi:ry="0.8046875"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ transform="matrix(1.37143,0,0,0.932039,-1.73659,0.313359)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8572"
+ sodipodi:cx="5.265625"
+ sodipodi:cy="8.2578125"
+ sodipodi:rx="0.546875"
+ sodipodi:ry="0.8046875"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ transform="matrix(1.37143,0,0,0.932039,4.09704,3.71631)" />
+ </g>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-60,12)"
+ id="g8574">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:url(#radialGradient8648);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 5.65625,8.5 c -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ id="path8576"
+ sodipodi:nodetypes="csc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 6.84375,6.5 c -0.5475716,0.5922996 -0.9735778,1.2650799 -1.1875,2 -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ id="path8578"
+ sodipodi:nodetypes="cssc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8580"
+ sodipodi:cx="5.265625"
+ sodipodi:cy="8.2578125"
+ sodipodi:rx="0.546875"
+ sodipodi:ry="0.8046875"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ transform="matrix(1.37143,0,0,0.932039,-1.73659,0.313359)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8582"
+ sodipodi:cx="5.265625"
+ sodipodi:cy="8.2578125"
+ sodipodi:rx="0.546875"
+ sodipodi:ry="0.8046875"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ transform="matrix(1.37143,0,0,0.932039,4.09704,3.71631)" />
+ </g>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-60,6)"
+ id="g8584">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:url(#radialGradient8650);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 5.65625,8.5 c -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ id="path8586"
+ sodipodi:nodetypes="csc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 6.84375,6.5 c -0.5475716,0.5922996 -0.9735778,1.2650799 -1.1875,2 -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ id="path8588"
+ sodipodi:nodetypes="cssc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8590"
+ sodipodi:cx="5.265625"
+ sodipodi:cy="8.2578125"
+ sodipodi:rx="0.546875"
+ sodipodi:ry="0.8046875"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ transform="matrix(1.37143,0,0,0.932039,-1.73659,0.313359)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8592"
+ sodipodi:cx="5.265625"
+ sodipodi:cy="8.2578125"
+ sodipodi:rx="0.546875"
+ sodipodi:ry="0.8046875"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ transform="matrix(1.37143,0,0,0.932039,4.09704,3.71631)" />
+ </g>
+ <path
+ inkscape:connector-curvature="0"
+ id="path8594"
+ d="m -36.126698,24.53508 c -9e-6,0.958803 0.196069,1.714927 0.588236,2.268374 0.399687,0.553456 0.938903,0.830181 1.617647,0.830178 0.671179,3e-6 1.206623,-0.276722 1.606334,-0.830178 0.399685,-0.561242 0.599535,-1.317366 0.599548,-2.268374 -1.3e-5,-0.943199 -0.203634,-1.68763 -0.61086,-2.233296 -0.399711,-0.553442 -0.938926,-0.830168 -1.617647,-0.830178 -0.663661,10e-6 -1.195335,0.276736 -1.595022,0.830178 -0.392167,0.545666 -0.588245,1.290097 -0.588236,2.233296 m 4.63801,3.519487 c -0.226258,0.553454 -0.59202,0.986082 -1.097286,1.297885 -0.49775,0.304009 -1.082214,0.456014 -1.753393,0.456013 -1.297144,10e-7 -2.352951,-0.483295 -3.167421,-1.449888 -0.806945,-0.974385 -1.210414,-2.241087 -1.210407,-3.800111 -7e-6,-1.559012 0.407232,-2.825714 1.221719,-3.800111 0.814471,-0.974376 1.866506,-1.461569 3.156109,-1.461581 0.671179,1.2e-5 1.255643,0.155913 1.753393,0.467706 0.505266,0.311815 0.871028,0.744442 1.097286,1.297884 l 0,-1.531736 2.364252,0 0,8.103004 c 0.935127,-0.148103 1.67042,-0.611911 2.205883,-1.391425 0.535426,-0.7873 0.803148,-1.792866 0.803167,-3.016703 -1.9e-5,-0.779502 -0.10937,-1.508343 -0.328054,-2.186526 -0.218722,-0.685957 -0.550546,-1.313463 -0.995475,-1.882516 -0.716458,-0.950989 -1.613892,-1.683728 -2.692308,-2.198218 -1.070904,-0.514461 -2.23229,-0.7717 -3.484163,-0.771714 -0.874822,1.4e-5 -1.711925,0.120838 -2.511312,0.362472 -0.799405,0.233867 -1.538469,0.580748 -2.217194,1.040646 -1.116145,0.763932 -1.987185,1.753908 -2.613122,2.969932 -0.618405,1.208249 -0.927606,2.517824 -0.927602,3.92873 -4e-6,1.161475 0.199846,2.252787 0.599547,3.273942 0.407236,1.013364 0.9917,1.9098 1.753395,2.689308 0.754141,0.76392 1.617639,1.344654 2.590496,1.742205 0.980384,0.405343 2.024878,0.608015 3.133485,0.608017 0.950214,-2e-6 1.900439,-0.183186 2.850678,-0.549554 0.950212,-0.36637 1.760919,-0.861359 2.432127,-1.484966 l 1.210407,1.894209 c -0.942701,0.756122 -1.972113,1.332959 -3.088235,1.730512 -1.108611,0.405341 -2.236061,0.608013 -3.382353,0.608018 -1.395184,-5e-6 -2.71117,-0.257243 -3.947964,-0.771715 -1.236809,-0.506684 -2.337863,-1.247218 -3.303167,-2.221603 -0.965312,-0.974388 -1.700606,-2.100778 -2.205882,-3.379176 -0.50528,-1.286188 -0.757919,-2.665919 -0.757918,-4.139197 -10e-7,-1.4187 0.256408,-2.771149 0.769231,-4.057349 0.512817,-1.286179 1.244339,-2.416468 2.194569,-3.390868 0.950221,-0.966578 2.055046,-1.714906 3.31448,-2.244989 1.266959,-0.53005 2.579175,-0.795082 3.936651,-0.795099 1.689278,1.7e-5 3.223967,0.335205 4.604072,1.005567 1.380073,0.662599 2.533919,1.621395 3.461539,2.876391 0.565591,0.763933 0.991683,1.59411 1.27828,2.490534 0.294097,0.888651 0.441155,1.824062 0.441177,2.806237 -2.2e-5,2.112476 -0.614651,3.753344 -1.843891,4.922604 -1.22928,1.169266 -2.963818,1.753899 -5.203621,1.753898 l -0.441175,0 0,-1.800669"
+ style="font-size:23.55380058px;font-style:normal;font-weight:normal;fill:#8fbceb;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans" />
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-60,0)"
+ id="g8596">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:url(#radialGradient8652);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 5.65625,8.5 c -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ id="path8598"
+ sodipodi:nodetypes="csc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 6.84375,6.5 c -0.5475716,0.5922996 -0.9735778,1.2650799 -1.1875,2 -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ id="path8600"
+ sodipodi:nodetypes="cssc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8602"
+ sodipodi:cx="5.265625"
+ sodipodi:cy="8.2578125"
+ sodipodi:rx="0.546875"
+ sodipodi:ry="0.8046875"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ transform="matrix(1.37143,0,0,0.932039,-1.73659,0.313359)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8604"
+ sodipodi:cx="5.265625"
+ sodipodi:cy="8.2578125"
+ sodipodi:rx="0.546875"
+ sodipodi:ry="0.8046875"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ transform="matrix(1.37143,0,0,0.932039,4.09704,3.71631)" />
+ </g>
+ </g>
+ </g>
+ <g
+ id="g8654"
+ transform="matrix(0.69916804,0,0,0.69916804,221.4493,127.0539)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <g
+ transform="matrix(1.48173,0,0,1.48173,755.762,95.8056)"
+ id="g8656"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round;display:inline"
+ id="g8658"
+ transform="matrix(0.0201927,0,0,0.0170832,-17.5399,42.4025)">
+ <rect
+ y="-150.69685"
+ x="-1559.2523"
+ height="478.35718"
+ width="1339.6335"
+ id="rect8660"
+ style="opacity:0.39195999;color:#000000;fill:url(#linearGradient8810);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path8662"
+ d="m -219.61876,-150.68038 c 0,0 0,478.33079 0,478.33079 142.874166,0.90045 345.40022,-107.16966 345.40014,-239.196175 0,-132.026537 -159.436816,-239.134595 -345.40014,-239.134615 z"
+ style="opacity:0.40206197;color:#000000;fill:url(#radialGradient8812);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:0.40206197;color:#000000;fill:url(#radialGradient8814);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m -1559.2523,-150.68038 c 0,0 0,478.33079 0,478.33079 -142.8742,0.90045 -345.4002,-107.16966 -345.4002,-239.196175 0,-132.026537 159.4368,-239.134595 345.4002,-239.134615 z"
+ id="path8664"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g8666"
+ transform="translate(-60,30)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ id="path8668"
+ d="m 14.345337,8.5060394 c -0.64368,2.2113336 -3.112797,4.0060386 -5.5114231,4.0060386 -2.3986256,0 -3.8229293,-1.794705 -3.1792494,-4.0060386 0.64368,-2.2113336 3.1127974,-4.0060393 5.5114235,-4.0060393 2.398625,0 3.822929,1.7947057 3.179249,4.0060393 z"
+ style="fill:none;stroke:url(#radialGradient8816);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(0.870121,0,-0.333994,1.14742,4.78365,-1.84455)"
+ d="m 14.451495,9.0207386 c 0,1.9282134 -2.235864,3.4913394 -4.9939421,3.4913394 -2.7580779,0 -4.9939418,-1.563126 -4.9939418,-3.4913394 0,-1.9282137 2.2358639,-3.4913397 4.9939418,-3.4913397 2.7580781,0 4.9939421,1.563126 4.9939421,3.4913397 z"
+ sodipodi:ry="3.4913397"
+ sodipodi:rx="4.9939418"
+ sodipodi:cy="9.0207386"
+ sodipodi:cx="9.4575529"
+ id="path8670"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90639138;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g8672"
+ transform="translate(-60,24)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ id="path8674"
+ d="m 14.345337,8.5060394 c -0.64368,2.2113336 -3.112797,4.0060386 -5.5114231,4.0060386 -2.3986256,0 -3.8229293,-1.794705 -3.1792494,-4.0060386 0.64368,-2.2113336 3.1127974,-4.0060393 5.5114235,-4.0060393 2.398625,0 3.822929,1.7947057 3.179249,4.0060393 z"
+ style="fill:none;stroke:url(#radialGradient8818);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(0.870121,0,-0.333994,1.14742,4.78365,-1.84455)"
+ d="m 14.451495,9.0207386 c 0,1.9282134 -2.235864,3.4913394 -4.9939421,3.4913394 -2.7580779,0 -4.9939418,-1.563126 -4.9939418,-3.4913394 0,-1.9282137 2.2358639,-3.4913397 4.9939418,-3.4913397 2.7580781,0 4.9939421,1.563126 4.9939421,3.4913397 z"
+ sodipodi:ry="3.4913397"
+ sodipodi:rx="4.9939418"
+ sodipodi:cy="9.0207386"
+ sodipodi:cx="9.4575529"
+ id="path8676"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90639138;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g8678"
+ transform="translate(-60,18)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ id="path8680"
+ d="m 14.345337,8.5060394 c -0.64368,2.2113336 -3.112797,4.0060386 -5.5114231,4.0060386 -2.3986256,0 -3.8229293,-1.794705 -3.1792494,-4.0060386 0.64368,-2.2113336 3.1127974,-4.0060393 5.5114235,-4.0060393 2.398625,0 3.822929,1.7947057 3.179249,4.0060393 z"
+ style="fill:none;stroke:url(#radialGradient8820);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(0.870121,0,-0.333994,1.14742,4.78365,-1.84455)"
+ d="m 14.451495,9.0207386 c 0,1.9282134 -2.235864,3.4913394 -4.9939421,3.4913394 -2.7580779,0 -4.9939418,-1.563126 -4.9939418,-3.4913394 0,-1.9282137 2.2358639,-3.4913397 4.9939418,-3.4913397 2.7580781,0 4.9939421,1.563126 4.9939421,3.4913397 z"
+ sodipodi:ry="3.4913397"
+ sodipodi:rx="4.9939418"
+ sodipodi:cy="9.0207386"
+ sodipodi:cx="9.4575529"
+ id="path8682"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90639138;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g8684"
+ transform="translate(-60,12)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ id="path8686"
+ d="m 14.345337,8.5060394 c -0.64368,2.2113336 -3.112797,4.0060386 -5.5114231,4.0060386 -2.3986256,0 -3.8229293,-1.794705 -3.1792494,-4.0060386 0.64368,-2.2113336 3.1127974,-4.0060393 5.5114235,-4.0060393 2.398625,0 3.822929,1.7947057 3.179249,4.0060393 z"
+ style="fill:none;stroke:url(#radialGradient8822);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(0.870121,0,-0.333994,1.14742,4.78365,-1.84455)"
+ d="m 14.451495,9.0207386 c 0,1.9282134 -2.235864,3.4913394 -4.9939421,3.4913394 -2.7580779,0 -4.9939418,-1.563126 -4.9939418,-3.4913394 0,-1.9282137 2.2358639,-3.4913397 4.9939418,-3.4913397 2.7580781,0 4.9939421,1.563126 4.9939421,3.4913397 z"
+ sodipodi:ry="3.4913397"
+ sodipodi:rx="4.9939418"
+ sodipodi:cy="9.0207386"
+ sodipodi:cx="9.4575529"
+ id="path8688"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90639138;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g8690"
+ transform="translate(-60,6)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ id="path8692"
+ d="m 14.345337,8.5060394 c -0.64368,2.2113336 -3.112797,4.0060386 -5.5114231,4.0060386 -2.3986256,0 -3.8229293,-1.794705 -3.1792494,-4.0060386 0.64368,-2.2113336 3.1127974,-4.0060393 5.5114235,-4.0060393 2.398625,0 3.822929,1.7947057 3.179249,4.0060393 z"
+ style="fill:none;stroke:url(#radialGradient8824);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(0.870121,0,-0.333994,1.14742,4.78365,-1.84455)"
+ d="m 14.451495,9.0207386 c 0,1.9282134 -2.235864,3.4913394 -4.9939421,3.4913394 -2.7580779,0 -4.9939418,-1.563126 -4.9939418,-3.4913394 0,-1.9282137 2.2358639,-3.4913397 4.9939418,-3.4913397 2.7580781,0 4.9939421,1.563126 4.9939421,3.4913397 z"
+ sodipodi:ry="3.4913397"
+ sodipodi:rx="4.9939418"
+ sodipodi:cy="9.0207386"
+ sodipodi:cx="9.4575529"
+ id="path8694"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90639138;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g8696"
+ transform="translate(-60,0)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ id="path8698"
+ d="m 14.345337,8.5060394 c -0.64368,2.2113336 -3.112797,4.0060386 -5.5114231,4.0060386 -2.3986256,0 -3.8229293,-1.794705 -3.1792494,-4.0060386 0.64368,-2.2113336 3.1127974,-4.0060393 5.5114235,-4.0060393 2.398625,0 3.822929,1.7947057 3.179249,4.0060393 z"
+ style="fill:none;stroke:url(#radialGradient8826);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(0.870121,0,-0.333994,1.14742,4.78365,-1.84455)"
+ d="m 14.451495,9.0207386 c 0,1.9282134 -2.235864,3.4913394 -4.9939421,3.4913394 -2.7580779,0 -4.9939418,-1.563126 -4.9939418,-3.4913394 0,-1.9282137 2.2358639,-3.4913397 4.9939418,-3.4913397 2.7580781,0 4.9939421,1.563126 4.9939421,3.4913397 z"
+ sodipodi:ry="3.4913397"
+ sodipodi:rx="4.9939418"
+ sodipodi:cy="9.0207386"
+ sodipodi:cx="9.4575529"
+ id="path8700"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90639138;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ </g>
+ <rect
+ style="fill:#3465a4;fill-opacity:1;stroke:#204a87;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect8702"
+ width="29.999998"
+ height="39.999996"
+ x="-50.5"
+ y="1.5"
+ rx="1.616383"
+ ry="1.6702623" />
+ <g
+ id="g8704"
+ transform="translate(-62,1)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ sodipodi:nodetypes="cccccc"
+ id="path8706"
+ d="M 14,3 39.182408,3 40,3.6961651 40,25 14,25 14,3 z"
+ style="fill:#d3d7cf;fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path8708"
+ d="m 14,3 25.65625,0 c 1.055682,1.0277742 -0.49011,2.0151389 -2,2 L 12.625,5 C 14.126385,5 15.015732,3.4971845 14,3 z"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+ </g>
+ <rect
+ style="fill:url(#radialGradient8828);fill-opacity:1;stroke:#4e9a06;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect8710"
+ width="5"
+ height="10"
+ x="-20.5"
+ y="9.5"
+ rx="0.83513117"
+ ry="0.75161809" />
+ <path
+ style="opacity:0.2;fill:none;stroke:#ffffff;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-dashoffset:0"
+ d="m -48.079373,2.53125 c -0.800828,0 -1.389377,0.6089338 -1.389377,1.4375 l 0,35.0625 c 0,0.828566 0.588549,1.4375 1.389377,1.4375 l 25.189997,0 c 0.800828,0 1.389377,-0.608935 1.389377,-1.4375 l 0,-35.0625 c 0,-0.8285661 -0.58855,-1.4375 -1.389377,-1.4375 l -25.189997,0 z"
+ id="path8712"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="-0.99302852"
+ inkscape:original="M 39.75 29.5 C 39.06446 29.5 38.5 30.064461 38.5 30.75 L 38.5 38.25 C 38.5 38.93554 39.064459 39.5 39.75 39.5 L 45.25 39.5 C 45.93554 39.5 46.5 38.935541 46.5 38.25 L 46.5 30.75 C 46.5 30.06446 45.935541 29.5 45.25 29.5 L 39.75 29.5 z "
+ style="opacity:0.5;fill:none;stroke:url(#linearGradient8830);stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path8714"
+ d="m 39.75,30.5 c -0.140446,0 -0.25,0.109555 -0.25,0.25 l 0,7.5 c 0,0.140448 0.109551,0.25 0.25,0.25 l 5.5,0 c 0.140448,0 0.25,-0.109551 0.25,-0.25 l 0,-7.5 c 0,-0.140448 -0.109551,-0.25 -0.25,-0.25 l -5.5,0 z"
+ transform="translate(-62,-20)" />
+ <rect
+ style="fill:url(#radialGradient8832);fill-opacity:1;stroke:#c4a000;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect8716"
+ width="8"
+ height="10"
+ x="-22.5"
+ y="19.5"
+ rx="0.83513117"
+ ry="0.83513117" />
+ <rect
+ style="fill:url(#radialGradient8834);fill-opacity:1;stroke:#ce5c00;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect8718"
+ width="8"
+ height="10"
+ x="-21.5"
+ y="29.5"
+ rx="0.83513117"
+ ry="0.83513117" />
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="-0.99302852"
+ inkscape:original="M 39.75 29.5 C 39.06446 29.5 38.5 30.064461 38.5 30.75 L 38.5 38.25 C 38.5 38.93554 39.064459 39.5 39.75 39.5 L 45.25 39.5 C 45.93554 39.5 46.5 38.935541 46.5 38.25 L 46.5 30.75 C 46.5 30.06446 45.935541 29.5 45.25 29.5 L 39.75 29.5 z "
+ style="opacity:0.5;fill:none;stroke:url(#linearGradient8836);stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path8720"
+ d="m 39.75,30.5 c -0.140446,0 -0.25,0.109555 -0.25,0.25 l 0,7.5 c 0,0.140448 0.109551,0.25 0.25,0.25 l 5.5,0 c 0.140448,0 0.25,-0.109551 0.25,-0.25 l 0,-7.5 c 0,-0.140448 -0.109551,-0.25 -0.25,-0.25 l -5.5,0 z"
+ transform="translate(-61,-10)" />
+ <rect
+ style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:none"
+ id="rect8722"
+ width="6.8125"
+ height="10"
+ x="-24.8125"
+ y="19" />
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="-0.99302852"
+ inkscape:original="M 39.75 29.5 C 39.06446 29.5 38.5 30.064461 38.5 30.75 L 38.5 38.25 C 38.5 38.93554 39.064459 39.5 39.75 39.5 L 45.25 39.5 C 45.93554 39.5 46.5 38.935541 46.5 38.25 L 46.5 30.75 C 46.5 30.06446 45.935541 29.5 45.25 29.5 L 39.75 29.5 z "
+ style="opacity:0.5;fill:none;stroke:url(#linearGradient8839);stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path8724"
+ d="m 39.75,30.5 c -0.140446,0 -0.25,0.109555 -0.25,0.25 l 0,7.5 c 0,0.140448 0.109551,0.25 0.25,0.25 l 5.5,0 c 0.140448,0 0.25,-0.109551 0.25,-0.25 l 0,-7.5 c 0,-0.140448 -0.109551,-0.25 -0.25,-0.25 l -5.5,0 z"
+ transform="translate(-60,0)" />
+ <rect
+ style="opacity:0.1;fill:#000000;fill-opacity:1;stroke:none"
+ id="rect8726"
+ width="6.8125"
+ height="11"
+ x="-24.8125"
+ y="29" />
+ <rect
+ style="opacity:0.15517201;fill:#000000;fill-opacity:1;stroke:none"
+ id="rect8728"
+ width="7"
+ height="10"
+ x="-25"
+ y="9" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path8730"
+ d="m -49.025126,6.5 27.050252,0 C -20.603794,6.5 -19.5,7.6037937 -19.5,8.9748738 l 0,34.0502482 c 0,1.37108 -1.103794,2.474874 -2.474874,2.474874 l -27.050252,0 c -1.37108,0 -2.474874,-1.103794 -2.474874,-2.474874 l 0,-34.0502482 C -51.5,7.6037937 -50.396206,6.5 -49.025126,6.5 z"
+ style="fill:url(#linearGradient8841);fill-opacity:1;stroke:#204a87;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path8732"
+ d="M 10.96875,7 C 9.866556,7 9,7.8665563 9,8.96875 l 0,34.0625 C 9,44.133444 9.8665564,45 10.96875,45 l 27.0625,0 C 39.133444,45 40,44.133443 40,43.03125 L 40,8.96875 C 40,7.8665562 39.133443,7 38.03125,7 l -27.0625,0 z"
+ style="fill:url(#linearGradient8843);fill-opacity:1;stroke:none"
+ transform="translate(-60,0)"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="translate(-60,0)"
+ sodipodi:nodetypes="ccccccccc"
+ id="path8734"
+ d="m 10.96875,7.53125 c -0.828566,0 -1.4375,0.6089338 -1.4375,1.4375 l 0,34.0625 c 0,0.828566 0.608934,1.4375 1.4375,1.4375 l 27.0625,0 c 0.828566,0 1.4375,-0.608935 1.4375,-1.4375 l 0,-34.0625 c 0,-0.8285661 -0.608935,-1.4375 -1.4375,-1.4375 l -27.0625,0 z"
+ style="opacity:0.46120701;fill:none;stroke:url(#linearGradient8845);stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#204a87;stroke-width:0.93560952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path8736"
+ sodipodi:cx="11.91033"
+ sodipodi:cy="11.959651"
+ sodipodi:rx="1.524699"
+ sodipodi:ry="1.6130873"
+ d="m 13.435029,11.959651 c 0,0.890884 -0.682631,1.613087 -1.524699,1.613087 -0.842068,0 -1.524699,-0.722203 -1.524699,-1.613087 0,-0.890884 0.682631,-1.613087 1.524699,-1.613087 0.842068,0 1.524699,0.722203 1.524699,1.613087 z"
+ transform="matrix(0.983801,0,0,0.95244,-59.7174,30.1455)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#204a87;stroke-width:0.93560952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path8738"
+ sodipodi:cx="11.91033"
+ sodipodi:cy="11.959651"
+ sodipodi:rx="1.524699"
+ sodipodi:ry="1.6130873"
+ d="m 13.435029,11.959651 c 0,0.890884 -0.682631,1.613087 -1.524699,1.613087 -0.842068,0 -1.524699,-0.722203 -1.524699,-1.613087 0,-0.890884 0.682631,-1.613087 1.524699,-1.613087 0.842068,0 1.524699,0.722203 1.524699,1.613087 z"
+ transform="matrix(0.983801,0,0,0.95244,-59.7174,24.1455)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#204a87;stroke-width:0.93560952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path8740"
+ sodipodi:cx="11.91033"
+ sodipodi:cy="11.959651"
+ sodipodi:rx="1.524699"
+ sodipodi:ry="1.6130873"
+ d="m 13.435029,11.959651 c 0,0.890884 -0.682631,1.613087 -1.524699,1.613087 -0.842068,0 -1.524699,-0.722203 -1.524699,-1.613087 0,-0.890884 0.682631,-1.613087 1.524699,-1.613087 0.842068,0 1.524699,0.722203 1.524699,1.613087 z"
+ transform="matrix(0.983801,0,0,0.95244,-59.7174,18.1455)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#204a87;stroke-width:0.93560952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path8742"
+ sodipodi:cx="11.91033"
+ sodipodi:cy="11.959651"
+ sodipodi:rx="1.524699"
+ sodipodi:ry="1.6130873"
+ d="m 13.435029,11.959651 c 0,0.890884 -0.682631,1.613087 -1.524699,1.613087 -0.842068,0 -1.524699,-0.722203 -1.524699,-1.613087 0,-0.890884 0.682631,-1.613087 1.524699,-1.613087 0.842068,0 1.524699,0.722203 1.524699,1.613087 z"
+ transform="matrix(0.983801,0,0,0.95244,-59.7174,6.14552)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#204a87;stroke-width:0.93560952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path8744"
+ sodipodi:cx="11.91033"
+ sodipodi:cy="11.959651"
+ sodipodi:rx="1.524699"
+ sodipodi:ry="1.6130873"
+ d="m 13.435029,11.959651 c 0,0.890884 -0.682631,1.613087 -1.524699,1.613087 -0.842068,0 -1.524699,-0.722203 -1.524699,-1.613087 0,-0.890884 0.682631,-1.613087 1.524699,-1.613087 0.842068,0 1.524699,0.722203 1.524699,1.613087 z"
+ transform="matrix(0.983801,0,0,0.95244,-59.7174,12.1455)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#204a87;stroke-width:0.93560952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path8746"
+ sodipodi:cx="11.91033"
+ sodipodi:cy="11.959651"
+ sodipodi:rx="1.524699"
+ sodipodi:ry="1.6130873"
+ d="m 13.435029,11.959651 c 0,0.890884 -0.682631,1.613087 -1.524699,1.613087 -0.842068,0 -1.524699,-0.722203 -1.524699,-1.613087 0,-0.890884 0.682631,-1.613087 1.524699,-1.613087 0.842068,0 1.524699,0.722203 1.524699,1.613087 z"
+ transform="matrix(0.983801,0,0,0.95244,-59.7174,0.145517)" />
+ <g
+ id="g8748"
+ transform="translate(-60,30)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ sodipodi:nodetypes="csc"
+ id="path8750"
+ d="m 5.65625,8.5 c -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ style="fill:none;stroke:url(#radialGradient8847);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cssc"
+ id="path8752"
+ d="m 6.84375,6.5 c -0.5475716,0.5922996 -0.9735778,1.2650799 -1.1875,2 -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(1.37143,0,0,0.932039,-1.73659,0.313359)"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ sodipodi:ry="0.8046875"
+ sodipodi:rx="0.546875"
+ sodipodi:cy="8.2578125"
+ sodipodi:cx="5.265625"
+ id="path8754"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.37143,0,0,0.932039,4.09704,3.71631)"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ sodipodi:ry="0.8046875"
+ sodipodi:rx="0.546875"
+ sodipodi:cy="8.2578125"
+ sodipodi:cx="5.265625"
+ id="path8756"
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g8758"
+ transform="translate(-60,24)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ sodipodi:nodetypes="csc"
+ id="path8760"
+ d="m 5.65625,8.5 c -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ style="fill:none;stroke:url(#radialGradient8849);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cssc"
+ id="path8762"
+ d="m 6.84375,6.5 c -0.5475716,0.5922996 -0.9735778,1.2650799 -1.1875,2 -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(1.37143,0,0,0.932039,-1.73659,0.313359)"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ sodipodi:ry="0.8046875"
+ sodipodi:rx="0.546875"
+ sodipodi:cy="8.2578125"
+ sodipodi:cx="5.265625"
+ id="path8764"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.37143,0,0,0.932039,4.09704,3.71631)"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ sodipodi:ry="0.8046875"
+ sodipodi:rx="0.546875"
+ sodipodi:cy="8.2578125"
+ sodipodi:cx="5.265625"
+ id="path8766"
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g8768"
+ transform="translate(-60,18)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ sodipodi:nodetypes="csc"
+ id="path8770"
+ d="m 5.65625,8.5 c -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ style="fill:none;stroke:url(#radialGradient8851);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cssc"
+ id="path8772"
+ d="m 6.84375,6.5 c -0.5475716,0.5922996 -0.9735778,1.2650799 -1.1875,2 -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(1.37143,0,0,0.932039,-1.73659,0.313359)"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ sodipodi:ry="0.8046875"
+ sodipodi:rx="0.546875"
+ sodipodi:cy="8.2578125"
+ sodipodi:cx="5.265625"
+ id="path8774"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.37143,0,0,0.932039,4.09704,3.71631)"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ sodipodi:ry="0.8046875"
+ sodipodi:rx="0.546875"
+ sodipodi:cy="8.2578125"
+ sodipodi:cx="5.265625"
+ id="path8776"
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g8778"
+ transform="translate(-60,12)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ sodipodi:nodetypes="csc"
+ id="path8780"
+ d="m 5.65625,8.5 c -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ style="fill:none;stroke:url(#radialGradient8853);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cssc"
+ id="path8782"
+ d="m 6.84375,6.5 c -0.5475716,0.5922996 -0.9735778,1.2650799 -1.1875,2 -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(1.37143,0,0,0.932039,-1.73659,0.313359)"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ sodipodi:ry="0.8046875"
+ sodipodi:rx="0.546875"
+ sodipodi:cy="8.2578125"
+ sodipodi:cx="5.265625"
+ id="path8784"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.37143,0,0,0.932039,4.09704,3.71631)"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ sodipodi:ry="0.8046875"
+ sodipodi:rx="0.546875"
+ sodipodi:cy="8.2578125"
+ sodipodi:cx="5.265625"
+ id="path8786"
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g8788"
+ transform="translate(-60,6)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ sodipodi:nodetypes="csc"
+ id="path8790"
+ d="m 5.65625,8.5 c -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ style="fill:none;stroke:url(#radialGradient8855);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cssc"
+ id="path8792"
+ d="m 6.84375,6.5 c -0.5475716,0.5922996 -0.9735778,1.2650799 -1.1875,2 -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(1.37143,0,0,0.932039,-1.73659,0.313359)"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ sodipodi:ry="0.8046875"
+ sodipodi:rx="0.546875"
+ sodipodi:cy="8.2578125"
+ sodipodi:cx="5.265625"
+ id="path8794"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.37143,0,0,0.932039,4.09704,3.71631)"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ sodipodi:ry="0.8046875"
+ sodipodi:rx="0.546875"
+ sodipodi:cy="8.2578125"
+ sodipodi:cx="5.265625"
+ id="path8796"
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <path
+ style="font-size:23.55380058px;font-style:normal;font-weight:normal;fill:#8fbceb;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ d="m -36.126698,24.53508 c -9e-6,0.958803 0.196069,1.714927 0.588236,2.268374 0.399687,0.553456 0.938903,0.830181 1.617647,0.830178 0.671179,3e-6 1.206623,-0.276722 1.606334,-0.830178 0.399685,-0.561242 0.599535,-1.317366 0.599548,-2.268374 -1.3e-5,-0.943199 -0.203634,-1.68763 -0.61086,-2.233296 -0.399711,-0.553442 -0.938926,-0.830168 -1.617647,-0.830178 -0.663661,10e-6 -1.195335,0.276736 -1.595022,0.830178 -0.392167,0.545666 -0.588245,1.290097 -0.588236,2.233296 m 4.63801,3.519487 c -0.226258,0.553454 -0.59202,0.986082 -1.097286,1.297885 -0.49775,0.304009 -1.082214,0.456014 -1.753393,0.456013 -1.297144,10e-7 -2.352951,-0.483295 -3.167421,-1.449888 -0.806945,-0.974385 -1.210414,-2.241087 -1.210407,-3.800111 -7e-6,-1.559012 0.407232,-2.825714 1.221719,-3.800111 0.814471,-0.974376 1.866506,-1.461569 3.156109,-1.461581 0.671179,1.2e-5 1.255643,0.155913 1.753393,0.467706 0.505266,0.311815 0.871028,0.744442 1.097286,1.297884 l 0,-1.531736 2.364252,0 0,8.103004 c 0.935127,-0.148103 1.67042,-0.611911 2.205883,-1.391425 0.535426,-0.7873 0.803148,-1.792866 0.803167,-3.016703 -1.9e-5,-0.779502 -0.10937,-1.508343 -0.328054,-2.186526 -0.218722,-0.685957 -0.550546,-1.313463 -0.995475,-1.882516 -0.716458,-0.950989 -1.613892,-1.683728 -2.692308,-2.198218 -1.070904,-0.514461 -2.23229,-0.7717 -3.484163,-0.771714 -0.874822,1.4e-5 -1.711925,0.120838 -2.511312,0.362472 -0.799405,0.233867 -1.538469,0.580748 -2.217194,1.040646 -1.116145,0.763932 -1.987185,1.753908 -2.613122,2.969932 -0.618405,1.208249 -0.927606,2.517824 -0.927602,3.92873 -4e-6,1.161475 0.199846,2.252787 0.599547,3.273942 0.407236,1.013364 0.9917,1.9098 1.753395,2.689308 0.754141,0.76392 1.617639,1.344654 2.590496,1.742205 0.980384,0.405343 2.024878,0.608015 3.133485,0.608017 0.950214,-2e-6 1.900439,-0.183186 2.850678,-0.549554 0.950212,-0.36637 1.760919,-0.861359 2.432127,-1.484966 l 1.210407,1.894209 c -0.942701,0.756122 -1.972113,1.332959 -3.088235,1.730512 -1.108611,0.405341 -2.236061,0.608013 -3.382353,0.608018 -1.395184,-5e-6 -2.71117,-0.257243 -3.947964,-0.771715 -1.236809,-0.506684 -2.337863,-1.247218 -3.303167,-2.221603 -0.965312,-0.974388 -1.700606,-2.100778 -2.205882,-3.379176 -0.50528,-1.286188 -0.757919,-2.665919 -0.757918,-4.139197 -10e-7,-1.4187 0.256408,-2.771149 0.769231,-4.057349 0.512817,-1.286179 1.244339,-2.416468 2.194569,-3.390868 0.950221,-0.966578 2.055046,-1.714906 3.31448,-2.244989 1.266959,-0.53005 2.579175,-0.795082 3.936651,-0.795099 1.689278,1.7e-5 3.223967,0.335205 4.604072,1.005567 1.380073,0.662599 2.533919,1.621395 3.461539,2.876391 0.565591,0.763933 0.991683,1.59411 1.27828,2.490534 0.294097,0.888651 0.441155,1.824062 0.441177,2.806237 -2.2e-5,2.112476 -0.614651,3.753344 -1.843891,4.922604 -1.22928,1.169266 -2.963818,1.753899 -5.203621,1.753898 l -0.441175,0 0,-1.800669"
+ id="path8798"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g8800"
+ transform="translate(-60,0)"
+ style="stroke-linecap:round;stroke-linejoin:round">
+ <path
+ sodipodi:nodetypes="csc"
+ id="path8802"
+ d="m 5.65625,8.5 c -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ style="fill:none;stroke:url(#radialGradient8857);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cssc"
+ id="path8804"
+ d="m 6.84375,6.5 c -0.5475716,0.5922996 -0.9735778,1.2650799 -1.1875,2 -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:connector-curvature="0" />
+ <path
+ transform="matrix(1.37143,0,0,0.932039,-1.73659,0.313359)"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ sodipodi:ry="0.8046875"
+ sodipodi:rx="0.546875"
+ sodipodi:cy="8.2578125"
+ sodipodi:cx="5.265625"
+ id="path8806"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.37143,0,0,0.932039,4.09704,3.71631)"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ sodipodi:ry="0.8046875"
+ sodipodi:rx="0.546875"
+ sodipodi:cy="8.2578125"
+ sodipodi:cx="5.265625"
+ id="path8808"
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ </g>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="matrix(0.69916804,0,0,0.69916804,299.93817,127.0539)"
+ id="g8859">
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ id="g8861"
+ transform="matrix(1.48173,0,0,1.48173,755.762,95.8056)">
+ <g
+ transform="matrix(0.0201927,0,0,0.0170832,-17.5399,42.4025)"
+ id="g8863"
+ style="stroke-linecap:round;stroke-linejoin:round;display:inline">
+ <rect
+ style="opacity:0.39195999;color:#000000;fill:url(#linearGradient9015);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ id="rect8865"
+ width="1339.6335"
+ height="478.35718"
+ x="-1559.2523"
+ y="-150.69685" />
+ <path
+ inkscape:connector-curvature="0"
+ style="opacity:0.40206197;color:#000000;fill:url(#radialGradient9017);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m -219.61876,-150.68038 c 0,0 0,478.33079 0,478.33079 142.874166,0.90045 345.40022,-107.16966 345.40014,-239.196175 0,-132.026537 -159.436816,-239.134595 -345.40014,-239.134615 z"
+ id="path8867"
+ sodipodi:nodetypes="cccc" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc"
+ id="path8869"
+ d="m -1559.2523,-150.68038 c 0,0 0,478.33079 0,478.33079 -142.8742,0.90045 -345.4002,-107.16966 -345.4002,-239.196175 0,-132.026537 159.4368,-239.134595 345.4002,-239.134615 z"
+ style="opacity:0.40206197;color:#000000;fill:url(#radialGradient9019);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ </g>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-60,30)"
+ id="g8871">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:url(#radialGradient9021);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
+ d="m 14.345337,8.5060394 c -0.64368,2.2113336 -3.112797,4.0060386 -5.5114231,4.0060386 -2.3986256,0 -3.8229293,-1.794705 -3.1792494,-4.0060386 0.64368,-2.2113336 3.1127974,-4.0060393 5.5114235,-4.0060393 2.398625,0 3.822929,1.7947057 3.179249,4.0060393 z"
+ id="path8873" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90639138;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path8875"
+ sodipodi:cx="9.4575529"
+ sodipodi:cy="9.0207386"
+ sodipodi:rx="4.9939418"
+ sodipodi:ry="3.4913397"
+ d="m 14.451495,9.0207386 c 0,1.9282134 -2.235864,3.4913394 -4.9939421,3.4913394 -2.7580779,0 -4.9939418,-1.563126 -4.9939418,-3.4913394 0,-1.9282137 2.2358639,-3.4913397 4.9939418,-3.4913397 2.7580781,0 4.9939421,1.563126 4.9939421,3.4913397 z"
+ transform="matrix(0.870121,0,-0.333994,1.14742,4.78365,-1.84455)" />
+ </g>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-60,24)"
+ id="g8877">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:url(#radialGradient9023);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
+ d="m 14.345337,8.5060394 c -0.64368,2.2113336 -3.112797,4.0060386 -5.5114231,4.0060386 -2.3986256,0 -3.8229293,-1.794705 -3.1792494,-4.0060386 0.64368,-2.2113336 3.1127974,-4.0060393 5.5114235,-4.0060393 2.398625,0 3.822929,1.7947057 3.179249,4.0060393 z"
+ id="path8879" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90639138;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path8881"
+ sodipodi:cx="9.4575529"
+ sodipodi:cy="9.0207386"
+ sodipodi:rx="4.9939418"
+ sodipodi:ry="3.4913397"
+ d="m 14.451495,9.0207386 c 0,1.9282134 -2.235864,3.4913394 -4.9939421,3.4913394 -2.7580779,0 -4.9939418,-1.563126 -4.9939418,-3.4913394 0,-1.9282137 2.2358639,-3.4913397 4.9939418,-3.4913397 2.7580781,0 4.9939421,1.563126 4.9939421,3.4913397 z"
+ transform="matrix(0.870121,0,-0.333994,1.14742,4.78365,-1.84455)" />
+ </g>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-60,18)"
+ id="g8883">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:url(#radialGradient9025);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
+ d="m 14.345337,8.5060394 c -0.64368,2.2113336 -3.112797,4.0060386 -5.5114231,4.0060386 -2.3986256,0 -3.8229293,-1.794705 -3.1792494,-4.0060386 0.64368,-2.2113336 3.1127974,-4.0060393 5.5114235,-4.0060393 2.398625,0 3.822929,1.7947057 3.179249,4.0060393 z"
+ id="path8885" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90639138;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path8887"
+ sodipodi:cx="9.4575529"
+ sodipodi:cy="9.0207386"
+ sodipodi:rx="4.9939418"
+ sodipodi:ry="3.4913397"
+ d="m 14.451495,9.0207386 c 0,1.9282134 -2.235864,3.4913394 -4.9939421,3.4913394 -2.7580779,0 -4.9939418,-1.563126 -4.9939418,-3.4913394 0,-1.9282137 2.2358639,-3.4913397 4.9939418,-3.4913397 2.7580781,0 4.9939421,1.563126 4.9939421,3.4913397 z"
+ transform="matrix(0.870121,0,-0.333994,1.14742,4.78365,-1.84455)" />
+ </g>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-60,12)"
+ id="g8889">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:url(#radialGradient9027);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
+ d="m 14.345337,8.5060394 c -0.64368,2.2113336 -3.112797,4.0060386 -5.5114231,4.0060386 -2.3986256,0 -3.8229293,-1.794705 -3.1792494,-4.0060386 0.64368,-2.2113336 3.1127974,-4.0060393 5.5114235,-4.0060393 2.398625,0 3.822929,1.7947057 3.179249,4.0060393 z"
+ id="path8891" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90639138;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path8893"
+ sodipodi:cx="9.4575529"
+ sodipodi:cy="9.0207386"
+ sodipodi:rx="4.9939418"
+ sodipodi:ry="3.4913397"
+ d="m 14.451495,9.0207386 c 0,1.9282134 -2.235864,3.4913394 -4.9939421,3.4913394 -2.7580779,0 -4.9939418,-1.563126 -4.9939418,-3.4913394 0,-1.9282137 2.2358639,-3.4913397 4.9939418,-3.4913397 2.7580781,0 4.9939421,1.563126 4.9939421,3.4913397 z"
+ transform="matrix(0.870121,0,-0.333994,1.14742,4.78365,-1.84455)" />
+ </g>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-60,6)"
+ id="g8895">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:url(#radialGradient9029);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
+ d="m 14.345337,8.5060394 c -0.64368,2.2113336 -3.112797,4.0060386 -5.5114231,4.0060386 -2.3986256,0 -3.8229293,-1.794705 -3.1792494,-4.0060386 0.64368,-2.2113336 3.1127974,-4.0060393 5.5114235,-4.0060393 2.398625,0 3.822929,1.7947057 3.179249,4.0060393 z"
+ id="path8897" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90639138;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path8899"
+ sodipodi:cx="9.4575529"
+ sodipodi:cy="9.0207386"
+ sodipodi:rx="4.9939418"
+ sodipodi:ry="3.4913397"
+ d="m 14.451495,9.0207386 c 0,1.9282134 -2.235864,3.4913394 -4.9939421,3.4913394 -2.7580779,0 -4.9939418,-1.563126 -4.9939418,-3.4913394 0,-1.9282137 2.2358639,-3.4913397 4.9939418,-3.4913397 2.7580781,0 4.9939421,1.563126 4.9939421,3.4913397 z"
+ transform="matrix(0.870121,0,-0.333994,1.14742,4.78365,-1.84455)" />
+ </g>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-60,0)"
+ id="g8901">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:url(#radialGradient9031);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
+ d="m 14.345337,8.5060394 c -0.64368,2.2113336 -3.112797,4.0060386 -5.5114231,4.0060386 -2.3986256,0 -3.8229293,-1.794705 -3.1792494,-4.0060386 0.64368,-2.2113336 3.1127974,-4.0060393 5.5114235,-4.0060393 2.398625,0 3.822929,1.7947057 3.179249,4.0060393 z"
+ id="path8903" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90639138;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path8905"
+ sodipodi:cx="9.4575529"
+ sodipodi:cy="9.0207386"
+ sodipodi:rx="4.9939418"
+ sodipodi:ry="3.4913397"
+ d="m 14.451495,9.0207386 c 0,1.9282134 -2.235864,3.4913394 -4.9939421,3.4913394 -2.7580779,0 -4.9939418,-1.563126 -4.9939418,-3.4913394 0,-1.9282137 2.2358639,-3.4913397 4.9939418,-3.4913397 2.7580781,0 4.9939421,1.563126 4.9939421,3.4913397 z"
+ transform="matrix(0.870121,0,-0.333994,1.14742,4.78365,-1.84455)" />
+ </g>
+ <rect
+ ry="1.6702623"
+ rx="1.616383"
+ y="1.5"
+ x="-50.5"
+ height="39.999996"
+ width="29.999998"
+ id="rect8907"
+ style="fill:#3465a4;fill-opacity:1;stroke:#204a87;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-62,1)"
+ id="g8909">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#d3d7cf;fill-opacity:1;stroke:none"
+ d="M 14,3 39.182408,3 40,3.6961651 40,25 14,25 14,3 z"
+ id="path8911"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ d="m 14,3 25.65625,0 c 1.055682,1.0277742 -0.49011,2.0151389 -2,2 L 12.625,5 C 14.126385,5 15.015732,3.4971845 14,3 z"
+ id="path8913"
+ sodipodi:nodetypes="ccccc" />
+ </g>
+ <rect
+ ry="0.75161809"
+ rx="0.83513117"
+ y="9.5"
+ x="-20.5"
+ height="10"
+ width="5"
+ id="rect8915"
+ style="fill:url(#radialGradient9033);fill-opacity:1;stroke:#4e9a06;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccc"
+ id="path8917"
+ d="m -48.079373,2.53125 c -0.800828,0 -1.389377,0.6089338 -1.389377,1.4375 l 0,35.0625 c 0,0.828566 0.588549,1.4375 1.389377,1.4375 l 25.189997,0 c 0.800828,0 1.389377,-0.608935 1.389377,-1.4375 l 0,-35.0625 c 0,-0.8285661 -0.58855,-1.4375 -1.389377,-1.4375 l -25.189997,0 z"
+ style="opacity:0.2;fill:none;stroke:#ffffff;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-dashoffset:0" />
+ <path
+ transform="translate(-62,-20)"
+ d="m 39.75,30.5 c -0.140446,0 -0.25,0.109555 -0.25,0.25 l 0,7.5 c 0,0.140448 0.109551,0.25 0.25,0.25 l 5.5,0 c 0.140448,0 0.25,-0.109551 0.25,-0.25 l 0,-7.5 c 0,-0.140448 -0.109551,-0.25 -0.25,-0.25 l -5.5,0 z"
+ id="path8919"
+ style="opacity:0.5;fill:none;stroke:url(#linearGradient9035);stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:original="M 39.75 29.5 C 39.06446 29.5 38.5 30.064461 38.5 30.75 L 38.5 38.25 C 38.5 38.93554 39.064459 39.5 39.75 39.5 L 45.25 39.5 C 45.93554 39.5 46.5 38.935541 46.5 38.25 L 46.5 30.75 C 46.5 30.06446 45.935541 29.5 45.25 29.5 L 39.75 29.5 z "
+ inkscape:radius="-0.99302852"
+ sodipodi:type="inkscape:offset" />
+ <rect
+ ry="0.83513117"
+ rx="0.83513117"
+ y="19.5"
+ x="-22.5"
+ height="10"
+ width="8"
+ id="rect8921"
+ style="fill:url(#radialGradient9037);fill-opacity:1;stroke:#c4a000;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <rect
+ ry="0.83513117"
+ rx="0.83513117"
+ y="29.5"
+ x="-21.5"
+ height="10"
+ width="8"
+ id="rect8923"
+ style="fill:url(#radialGradient9039);fill-opacity:1;stroke:#ce5c00;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <path
+ transform="translate(-61,-10)"
+ d="m 39.75,30.5 c -0.140446,0 -0.25,0.109555 -0.25,0.25 l 0,7.5 c 0,0.140448 0.109551,0.25 0.25,0.25 l 5.5,0 c 0.140448,0 0.25,-0.109551 0.25,-0.25 l 0,-7.5 c 0,-0.140448 -0.109551,-0.25 -0.25,-0.25 l -5.5,0 z"
+ id="path8925"
+ style="opacity:0.5;fill:none;stroke:url(#linearGradient9041);stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:original="M 39.75 29.5 C 39.06446 29.5 38.5 30.064461 38.5 30.75 L 38.5 38.25 C 38.5 38.93554 39.064459 39.5 39.75 39.5 L 45.25 39.5 C 45.93554 39.5 46.5 38.935541 46.5 38.25 L 46.5 30.75 C 46.5 30.06446 45.935541 29.5 45.25 29.5 L 39.75 29.5 z "
+ inkscape:radius="-0.99302852"
+ sodipodi:type="inkscape:offset" />
+ <rect
+ y="19"
+ x="-24.8125"
+ height="10"
+ width="6.8125"
+ id="rect8927"
+ style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:none" />
+ <path
+ transform="translate(-60,0)"
+ d="m 39.75,30.5 c -0.140446,0 -0.25,0.109555 -0.25,0.25 l 0,7.5 c 0,0.140448 0.109551,0.25 0.25,0.25 l 5.5,0 c 0.140448,0 0.25,-0.109551 0.25,-0.25 l 0,-7.5 c 0,-0.140448 -0.109551,-0.25 -0.25,-0.25 l -5.5,0 z"
+ id="path8929"
+ style="opacity:0.5;fill:none;stroke:url(#linearGradient9043);stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ inkscape:original="M 39.75 29.5 C 39.06446 29.5 38.5 30.064461 38.5 30.75 L 38.5 38.25 C 38.5 38.93554 39.064459 39.5 39.75 39.5 L 45.25 39.5 C 45.93554 39.5 46.5 38.935541 46.5 38.25 L 46.5 30.75 C 46.5 30.06446 45.935541 29.5 45.25 29.5 L 39.75 29.5 z "
+ inkscape:radius="-0.99302852"
+ sodipodi:type="inkscape:offset" />
+ <rect
+ y="29"
+ x="-24.8125"
+ height="11"
+ width="6.8125"
+ id="rect8931"
+ style="opacity:0.1;fill:#000000;fill-opacity:1;stroke:none" />
+ <rect
+ y="9"
+ x="-25"
+ height="10"
+ width="7"
+ id="rect8933"
+ style="opacity:0.15517201;fill:#000000;fill-opacity:1;stroke:none" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient9045);fill-opacity:1;stroke:#204a87;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-dashoffset:0"
+ d="m -49.025126,6.5 27.050252,0 C -20.603794,6.5 -19.5,7.6037937 -19.5,8.9748738 l 0,34.0502482 c 0,1.37108 -1.103794,2.474874 -2.474874,2.474874 l -27.050252,0 c -1.37108,0 -2.474874,-1.103794 -2.474874,-2.474874 l 0,-34.0502482 C -51.5,7.6037937 -50.396206,6.5 -49.025126,6.5 z"
+ id="path8935"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ transform="translate(-60,0)"
+ style="fill:url(#linearGradient9047);fill-opacity:1;stroke:none"
+ d="M 10.96875,7 C 9.866556,7 9,7.8665563 9,8.96875 l 0,34.0625 C 9,44.133444 9.8665564,45 10.96875,45 l 27.0625,0 C 39.133444,45 40,44.133443 40,43.03125 L 40,8.96875 C 40,7.8665562 39.133443,7 38.03125,7 l -27.0625,0 z"
+ id="path8937"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="opacity:0.46120701;fill:none;stroke:url(#linearGradient9049);stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-dashoffset:0"
+ d="m 10.96875,7.53125 c -0.828566,0 -1.4375,0.6089338 -1.4375,1.4375 l 0,34.0625 c 0,0.828566 0.608934,1.4375 1.4375,1.4375 l 27.0625,0 c 0.828566,0 1.4375,-0.608935 1.4375,-1.4375 l 0,-34.0625 c 0,-0.8285661 -0.608935,-1.4375 -1.4375,-1.4375 l -27.0625,0 z"
+ id="path8939"
+ sodipodi:nodetypes="ccccccccc"
+ transform="translate(-60,0)" />
+ <path
+ transform="matrix(0.983801,0,0,0.95244,-59.7174,30.1455)"
+ d="m 13.435029,11.959651 c 0,0.890884 -0.682631,1.613087 -1.524699,1.613087 -0.842068,0 -1.524699,-0.722203 -1.524699,-1.613087 0,-0.890884 0.682631,-1.613087 1.524699,-1.613087 0.842068,0 1.524699,0.722203 1.524699,1.613087 z"
+ sodipodi:ry="1.6130873"
+ sodipodi:rx="1.524699"
+ sodipodi:cy="11.959651"
+ sodipodi:cx="11.91033"
+ id="path8941"
+ style="fill:none;stroke:#204a87;stroke-width:0.93560952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.983801,0,0,0.95244,-59.7174,24.1455)"
+ d="m 13.435029,11.959651 c 0,0.890884 -0.682631,1.613087 -1.524699,1.613087 -0.842068,0 -1.524699,-0.722203 -1.524699,-1.613087 0,-0.890884 0.682631,-1.613087 1.524699,-1.613087 0.842068,0 1.524699,0.722203 1.524699,1.613087 z"
+ sodipodi:ry="1.6130873"
+ sodipodi:rx="1.524699"
+ sodipodi:cy="11.959651"
+ sodipodi:cx="11.91033"
+ id="path8943"
+ style="fill:none;stroke:#204a87;stroke-width:0.93560952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.983801,0,0,0.95244,-59.7174,18.1455)"
+ d="m 13.435029,11.959651 c 0,0.890884 -0.682631,1.613087 -1.524699,1.613087 -0.842068,0 -1.524699,-0.722203 -1.524699,-1.613087 0,-0.890884 0.682631,-1.613087 1.524699,-1.613087 0.842068,0 1.524699,0.722203 1.524699,1.613087 z"
+ sodipodi:ry="1.6130873"
+ sodipodi:rx="1.524699"
+ sodipodi:cy="11.959651"
+ sodipodi:cx="11.91033"
+ id="path8945"
+ style="fill:none;stroke:#204a87;stroke-width:0.93560952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.983801,0,0,0.95244,-59.7174,6.14552)"
+ d="m 13.435029,11.959651 c 0,0.890884 -0.682631,1.613087 -1.524699,1.613087 -0.842068,0 -1.524699,-0.722203 -1.524699,-1.613087 0,-0.890884 0.682631,-1.613087 1.524699,-1.613087 0.842068,0 1.524699,0.722203 1.524699,1.613087 z"
+ sodipodi:ry="1.6130873"
+ sodipodi:rx="1.524699"
+ sodipodi:cy="11.959651"
+ sodipodi:cx="11.91033"
+ id="path8947"
+ style="fill:none;stroke:#204a87;stroke-width:0.93560952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.983801,0,0,0.95244,-59.7174,12.1455)"
+ d="m 13.435029,11.959651 c 0,0.890884 -0.682631,1.613087 -1.524699,1.613087 -0.842068,0 -1.524699,-0.722203 -1.524699,-1.613087 0,-0.890884 0.682631,-1.613087 1.524699,-1.613087 0.842068,0 1.524699,0.722203 1.524699,1.613087 z"
+ sodipodi:ry="1.6130873"
+ sodipodi:rx="1.524699"
+ sodipodi:cy="11.959651"
+ sodipodi:cx="11.91033"
+ id="path8949"
+ style="fill:none;stroke:#204a87;stroke-width:0.93560952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.983801,0,0,0.95244,-59.7174,0.145517)"
+ d="m 13.435029,11.959651 c 0,0.890884 -0.682631,1.613087 -1.524699,1.613087 -0.842068,0 -1.524699,-0.722203 -1.524699,-1.613087 0,-0.890884 0.682631,-1.613087 1.524699,-1.613087 0.842068,0 1.524699,0.722203 1.524699,1.613087 z"
+ sodipodi:ry="1.6130873"
+ sodipodi:rx="1.524699"
+ sodipodi:cy="11.959651"
+ sodipodi:cx="11.91033"
+ id="path8951"
+ style="fill:none;stroke:#204a87;stroke-width:0.93560952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ sodipodi:type="arc" />
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-60,30)"
+ id="g8953">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:url(#radialGradient9051);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 5.65625,8.5 c -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ id="path8955"
+ sodipodi:nodetypes="csc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 6.84375,6.5 c -0.5475716,0.5922996 -0.9735778,1.2650799 -1.1875,2 -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ id="path8957"
+ sodipodi:nodetypes="cssc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8959"
+ sodipodi:cx="5.265625"
+ sodipodi:cy="8.2578125"
+ sodipodi:rx="0.546875"
+ sodipodi:ry="0.8046875"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ transform="matrix(1.37143,0,0,0.932039,-1.73659,0.313359)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8961"
+ sodipodi:cx="5.265625"
+ sodipodi:cy="8.2578125"
+ sodipodi:rx="0.546875"
+ sodipodi:ry="0.8046875"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ transform="matrix(1.37143,0,0,0.932039,4.09704,3.71631)" />
+ </g>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-60,24)"
+ id="g8963">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:url(#radialGradient9053);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 5.65625,8.5 c -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ id="path8965"
+ sodipodi:nodetypes="csc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 6.84375,6.5 c -0.5475716,0.5922996 -0.9735778,1.2650799 -1.1875,2 -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ id="path8967"
+ sodipodi:nodetypes="cssc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8969"
+ sodipodi:cx="5.265625"
+ sodipodi:cy="8.2578125"
+ sodipodi:rx="0.546875"
+ sodipodi:ry="0.8046875"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ transform="matrix(1.37143,0,0,0.932039,-1.73659,0.313359)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8971"
+ sodipodi:cx="5.265625"
+ sodipodi:cy="8.2578125"
+ sodipodi:rx="0.546875"
+ sodipodi:ry="0.8046875"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ transform="matrix(1.37143,0,0,0.932039,4.09704,3.71631)" />
+ </g>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-60,18)"
+ id="g8973">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:url(#radialGradient9055);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 5.65625,8.5 c -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ id="path8975"
+ sodipodi:nodetypes="csc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 6.84375,6.5 c -0.5475716,0.5922996 -0.9735778,1.2650799 -1.1875,2 -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ id="path8977"
+ sodipodi:nodetypes="cssc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8979"
+ sodipodi:cx="5.265625"
+ sodipodi:cy="8.2578125"
+ sodipodi:rx="0.546875"
+ sodipodi:ry="0.8046875"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ transform="matrix(1.37143,0,0,0.932039,-1.73659,0.313359)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8981"
+ sodipodi:cx="5.265625"
+ sodipodi:cy="8.2578125"
+ sodipodi:rx="0.546875"
+ sodipodi:ry="0.8046875"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ transform="matrix(1.37143,0,0,0.932039,4.09704,3.71631)" />
+ </g>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-60,12)"
+ id="g8983">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:url(#radialGradient9057);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 5.65625,8.5 c -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ id="path8985"
+ sodipodi:nodetypes="csc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 6.84375,6.5 c -0.5475716,0.5922996 -0.9735778,1.2650799 -1.1875,2 -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ id="path8987"
+ sodipodi:nodetypes="cssc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8989"
+ sodipodi:cx="5.265625"
+ sodipodi:cy="8.2578125"
+ sodipodi:rx="0.546875"
+ sodipodi:ry="0.8046875"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ transform="matrix(1.37143,0,0,0.932039,-1.73659,0.313359)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8991"
+ sodipodi:cx="5.265625"
+ sodipodi:cy="8.2578125"
+ sodipodi:rx="0.546875"
+ sodipodi:ry="0.8046875"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ transform="matrix(1.37143,0,0,0.932039,4.09704,3.71631)" />
+ </g>
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-60,6)"
+ id="g8993">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:url(#radialGradient9059);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 5.65625,8.5 c -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ id="path8995"
+ sodipodi:nodetypes="csc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 6.84375,6.5 c -0.5475716,0.5922996 -0.9735778,1.2650799 -1.1875,2 -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ id="path8997"
+ sodipodi:nodetypes="cssc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8999"
+ sodipodi:cx="5.265625"
+ sodipodi:cy="8.2578125"
+ sodipodi:rx="0.546875"
+ sodipodi:ry="0.8046875"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ transform="matrix(1.37143,0,0,0.932039,-1.73659,0.313359)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path9001"
+ sodipodi:cx="5.265625"
+ sodipodi:cy="8.2578125"
+ sodipodi:rx="0.546875"
+ sodipodi:ry="0.8046875"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ transform="matrix(1.37143,0,0,0.932039,4.09704,3.71631)" />
+ </g>
+ <path
+ inkscape:connector-curvature="0"
+ id="path9003"
+ d="m -36.126698,24.53508 c -9e-6,0.958803 0.196069,1.714927 0.588236,2.268374 0.399687,0.553456 0.938903,0.830181 1.617647,0.830178 0.671179,3e-6 1.206623,-0.276722 1.606334,-0.830178 0.399685,-0.561242 0.599535,-1.317366 0.599548,-2.268374 -1.3e-5,-0.943199 -0.203634,-1.68763 -0.61086,-2.233296 -0.399711,-0.553442 -0.938926,-0.830168 -1.617647,-0.830178 -0.663661,10e-6 -1.195335,0.276736 -1.595022,0.830178 -0.392167,0.545666 -0.588245,1.290097 -0.588236,2.233296 m 4.63801,3.519487 c -0.226258,0.553454 -0.59202,0.986082 -1.097286,1.297885 -0.49775,0.304009 -1.082214,0.456014 -1.753393,0.456013 -1.297144,10e-7 -2.352951,-0.483295 -3.167421,-1.449888 -0.806945,-0.974385 -1.210414,-2.241087 -1.210407,-3.800111 -7e-6,-1.559012 0.407232,-2.825714 1.221719,-3.800111 0.814471,-0.974376 1.866506,-1.461569 3.156109,-1.461581 0.671179,1.2e-5 1.255643,0.155913 1.753393,0.467706 0.505266,0.311815 0.871028,0.744442 1.097286,1.297884 l 0,-1.531736 2.364252,0 0,8.103004 c 0.935127,-0.148103 1.67042,-0.611911 2.205883,-1.391425 0.535426,-0.7873 0.803148,-1.792866 0.803167,-3.016703 -1.9e-5,-0.779502 -0.10937,-1.508343 -0.328054,-2.186526 -0.218722,-0.685957 -0.550546,-1.313463 -0.995475,-1.882516 -0.716458,-0.950989 -1.613892,-1.683728 -2.692308,-2.198218 -1.070904,-0.514461 -2.23229,-0.7717 -3.484163,-0.771714 -0.874822,1.4e-5 -1.711925,0.120838 -2.511312,0.362472 -0.799405,0.233867 -1.538469,0.580748 -2.217194,1.040646 -1.116145,0.763932 -1.987185,1.753908 -2.613122,2.969932 -0.618405,1.208249 -0.927606,2.517824 -0.927602,3.92873 -4e-6,1.161475 0.199846,2.252787 0.599547,3.273942 0.407236,1.013364 0.9917,1.9098 1.753395,2.689308 0.754141,0.76392 1.617639,1.344654 2.590496,1.742205 0.980384,0.405343 2.024878,0.608015 3.133485,0.608017 0.950214,-2e-6 1.900439,-0.183186 2.850678,-0.549554 0.950212,-0.36637 1.760919,-0.861359 2.432127,-1.484966 l 1.210407,1.894209 c -0.942701,0.756122 -1.972113,1.332959 -3.088235,1.730512 -1.108611,0.405341 -2.236061,0.608013 -3.382353,0.608018 -1.395184,-5e-6 -2.71117,-0.257243 -3.947964,-0.771715 -1.236809,-0.506684 -2.337863,-1.247218 -3.303167,-2.221603 -0.965312,-0.974388 -1.700606,-2.100778 -2.205882,-3.379176 -0.50528,-1.286188 -0.757919,-2.665919 -0.757918,-4.139197 -10e-7,-1.4187 0.256408,-2.771149 0.769231,-4.057349 0.512817,-1.286179 1.244339,-2.416468 2.194569,-3.390868 0.950221,-0.966578 2.055046,-1.714906 3.31448,-2.244989 1.266959,-0.53005 2.579175,-0.795082 3.936651,-0.795099 1.689278,1.7e-5 3.223967,0.335205 4.604072,1.005567 1.380073,0.662599 2.533919,1.621395 3.461539,2.876391 0.565591,0.763933 0.991683,1.59411 1.27828,2.490534 0.294097,0.888651 0.441155,1.824062 0.441177,2.806237 -2.2e-5,2.112476 -0.614651,3.753344 -1.843891,4.922604 -1.22928,1.169266 -2.963818,1.753899 -5.203621,1.753898 l -0.441175,0 0,-1.800669"
+ style="font-size:23.55380058px;font-style:normal;font-weight:normal;fill:#8fbceb;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans" />
+ <g
+ style="stroke-linecap:round;stroke-linejoin:round"
+ transform="translate(-60,0)"
+ id="g9005">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:url(#radialGradient9061);stroke-width:2.71698689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 5.65625,8.5 c -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ id="path9007"
+ sodipodi:nodetypes="csc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#eeeeec;stroke-width:0.90566409;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 6.84375,6.5 c -0.5475716,0.5922996 -0.9735778,1.2650799 -1.1875,2 -0.6436799,2.211334 0.7888742,4 3.1875,4 0.913594,0 1.829015,-0.27526 2.65625,-0.71875"
+ id="path9009"
+ sodipodi:nodetypes="cssc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path9011"
+ sodipodi:cx="5.265625"
+ sodipodi:cy="8.2578125"
+ sodipodi:rx="0.546875"
+ sodipodi:ry="0.8046875"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ transform="matrix(1.37143,0,0,0.932039,-1.73659,0.313359)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.7;fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path9013"
+ sodipodi:cx="5.265625"
+ sodipodi:cy="8.2578125"
+ sodipodi:rx="0.546875"
+ sodipodi:ry="0.8046875"
+ d="M 5.8125,8.2578125 C 5.8125,8.7022291 5.5676557,9.0625 5.265625,9.0625 4.9635943,9.0625 4.71875,8.7022291 4.71875,8.2578125 c 0,-0.4444166 0.2448443,-0.8046875 0.546875,-0.8046875 0.3020307,0 0.546875,0.3602709 0.546875,0.8046875 z"
+ transform="matrix(1.37143,0,0,0.932039,4.09704,3.71631)" />
+ </g>
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/2017/running_osmo_gsm-osmocon2017/arch-sysmobts-allinone.dot b/2017/running_osmo_gsm-osmocon2017/arch-sysmobts-allinone.dot
new file mode 100644
index 0000000..2efbfd5
--- /dev/null
+++ b/2017/running_osmo_gsm-osmocon2017/arch-sysmobts-allinone.dot
@@ -0,0 +1,27 @@
+graph G {
+ rankdir=LR;
+ MS0 [label="MS",shape=box]
+ MS1 [label="MS",shape=box]
+ MS2 [label="MS",shape=box]
+
+ MS0--PHY [label="Um"]
+ MS1--PHY [label="Um"]
+ MS2--PHY [label="Um"]
+
+ subgraph cluster_0 {
+ label = "sysmoBTS (all-in-one)"
+ OsmoBTS
+ OsmoPCU [style="dashed"]
+ PHY -- OsmoBTS [label="shmem msgq"]
+ PHY -- OsmoPCU [label="shmem msgq"]
+ OsmoPCU -- OsmoBTS [label="pcu_sock"]
+ { rank=same; OsmoBTS OsmoPCU }
+
+ OsmoNITB
+ OsmoSGSN [style="dashed"]
+ OsmoBTS -- OsmoNITB [label="Abis/IP\n(lo)"]
+ OsmoPCU -- OsmoSGSN [label="Gb/IP\n(lo)"]
+
+ { rank=same; OsmoNITB OsmoSGSN }
+ }
+}
diff --git a/2017/running_osmo_gsm-osmocon2017/arch-sysmobts.dot b/2017/running_osmo_gsm-osmocon2017/arch-sysmobts.dot
new file mode 100644
index 0000000..9375fc9
--- /dev/null
+++ b/2017/running_osmo_gsm-osmocon2017/arch-sysmobts.dot
@@ -0,0 +1,30 @@
+graph G {
+ rankdir=LR;
+ MS0 [label="MS",shape=box]
+ MS1 [label="MS",shape=box]
+ MS2 [label="MS",shape=box]
+
+ MS0--PHY [label="Um"]
+ MS1--PHY [label="Um"]
+ MS2--PHY [label="Um"]
+
+ subgraph cluster_0 {
+ label = "sysmoBTS"
+ OsmoBTS
+ OsmoPCU [style="dashed"]
+ PHY -- OsmoBTS [label="shmem msgq"]
+ PHY -- OsmoPCU [label="shmem msgq"]
+ OsmoPCU -- OsmoBTS [label="pcu_sock"]
+ { rank=same; OsmoBTS OsmoPCU }
+ }
+
+ subgraph cluster_1 {
+ label = "Linux PC"
+ OsmoNITB
+ OsmoSGSN [style="dashed"]
+ OsmoBTS -- OsmoNITB [label="Abis/IP"]
+ OsmoPCU -- OsmoSGSN [label="Gb/IP"]
+
+ { rank=same; OsmoNITB OsmoSGSN }
+ }
+}
diff --git a/2017/running_osmo_gsm-osmocon2017/arch-usrp-allinone.dot b/2017/running_osmo_gsm-osmocon2017/arch-usrp-allinone.dot
new file mode 100644
index 0000000..11ab81e
--- /dev/null
+++ b/2017/running_osmo_gsm-osmocon2017/arch-usrp-allinone.dot
@@ -0,0 +1,30 @@
+graph G {
+ rankdir=LR;
+ MS0 [label="MS",shape=box]
+ MS1 [label="MS",shape=box]
+ MS2 [label="MS",shape=box]
+
+ USRP [label="USRP Bxxx",shape=box]
+ USRP -- OsmoTRX [label="USB"]
+
+ MS0--USRP [label="Um"]
+ MS1--USRP [label="Um"]
+ MS2--USRP [label="Um"]
+
+ subgraph cluster_0 {
+ label = "Linux PC (all-in-one)"
+ OsmoTRX
+ OsmoBTS
+ OsmoPCU [style="dashed"]
+ OsmoPCU -- OsmoBTS [label="pcu_sock"]
+ OsmoTRX -- OsmoBTS [label="UDP"]
+ { rank=same; OsmoBTS OsmoPCU }
+
+ OsmoNITB
+ OsmoSGSN [style="dashed"]
+ OsmoBTS -- OsmoNITB [label="Abis/IP\n(lo)"]
+ OsmoPCU -- OsmoSGSN [label="Gb/IP\n(lo)"]
+
+ { rank=same; OsmoNITB OsmoSGSN }
+ }
+}
diff --git a/2017/running_osmo_gsm-osmocon2017/arch-usrp.dot b/2017/running_osmo_gsm-osmocon2017/arch-usrp.dot
new file mode 100644
index 0000000..9426c08
--- /dev/null
+++ b/2017/running_osmo_gsm-osmocon2017/arch-usrp.dot
@@ -0,0 +1,31 @@
+graph G {
+ rankdir=LR;
+ MS0 [label="MS",shape=box]
+ MS1 [label="MS",shape=box]
+ MS2 [label="MS",shape=box]
+
+ USRP [label="USRP Bxxx",shape=box]
+ USRP --OsmoTRX [label="USB"]
+
+ MS0--USRP [label="Um"]
+ MS1--USRP [label="Um"]
+ MS2--USRP [label="Um"]
+
+ subgraph cluster_0 {
+ label = "Linux PC (BTS)"
+ OsmoTRX
+ OsmoBTS
+ OsmoPCU [style="dashed"]
+ OsmoPCU -- OsmoBTS [label="pcu_sock"]
+ OsmoTRX -- OsmoBTS
+ { rank=same; OsmoBTS OsmoPCU }
+ }
+
+ subgraph cluster_1 {
+ label = "Linux PC (Core)"
+ OsmoNITB
+ OsmoSGSN [style="dashed"]
+ OsmoBTS -- OsmoNITB [label="Abis/IP"]
+ OsmoPCU -- OsmoSGSN [label="Gb/IP"]
+ }
+}
diff --git a/2017/running_osmo_gsm-osmocon2017/gprs_user_stack.svg b/2017/running_osmo_gsm-osmocon2017/gprs_user_stack.svg
new file mode 100644
index 0000000..6b702a2
--- /dev/null
+++ b/2017/running_osmo_gsm-osmocon2017/gprs_user_stack.svg
@@ -0,0 +1,1357 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="1052.3622"
+ height="744.09448"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.1 r9760"
+ sodipodi:docname="gprs_user_stack.svg">
+ <defs
+ id="defs4">
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lend"
+ style="overflow:visible;">
+ <path
+ id="path4387"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+ transform="scale(0.8) rotate(180) translate(12.5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lstart"
+ style="overflow:visible">
+ <path
+ id="path4384"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+ transform="scale(0.8) translate(12.5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lstart-4"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4384-8"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="matrix(0.8,0,0,0.8,10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend-9"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4387-6"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lstart-7"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4384-3"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="matrix(0.8,0,0,0.8,10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend-7"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4387-1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lstart-2"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4384-1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="matrix(0.8,0,0,0.8,10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend-5"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4387-0"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lstart-3"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4384-2"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="matrix(0.8,0,0,0.8,10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend-1"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4387-7"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lstart-6"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4384-5"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="matrix(0.8,0,0,0.8,10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend-4"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4387-2"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lstart-77"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4384-9"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="matrix(0.8,0,0,0.8,10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend-8"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4387-10"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lstart-60"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4384-10"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="matrix(0.8,0,0,0.8,10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend-2"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4387-5"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker7432"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path7434"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="matrix(0.8,0,0,0.8,10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker7436"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path7438"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker7440"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path7442"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="matrix(0.8,0,0,0.8,10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker7444"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path7446"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lstart-0"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4384-30"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="matrix(0.8,0,0,0.8,10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend-0"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4387-4"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lstart-42"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4384-4"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="matrix(0.8,0,0,0.8,10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend-99"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4387-9"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.1"
+ inkscape:cx="544.0645"
+ inkscape:cy="334.56005"
+ inkscape:document-units="mm"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:window-width="1598"
+ inkscape:window-height="1177"
+ inkscape:window-x="1600"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ units="mm"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true"
+ type="xygrid"
+ id="grid2985" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-308.2677)">
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="287.28647"
+ y="552.07013"
+ id="text3003"
+ sodipodi:linespacing="125%"
+ transform="translate(0,308.2677)"><tspan
+ sodipodi:role="line"
+ id="tspan3005" /></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="276.78516"
+ y="423.8038"
+ id="text3023"
+ sodipodi:linespacing="125%"
+ transform="translate(0,308.2677)"><tspan
+ sodipodi:role="line"
+ id="tspan3025"
+ x="276.78516"
+ y="423.8038" /></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="279.03543"
+ y="412.55237"
+ id="text3027"
+ sodipodi:linespacing="125%"
+ transform="translate(0,308.2677)"><tspan
+ sodipodi:role="line"
+ id="tspan3029"
+ x="279.03543"
+ y="412.55237" /></text>
+ <rect
+ style="fill:#afe9af;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3110"
+ width="88.58268"
+ height="35.433071"
+ x="35.433041"
+ y="768.89764" />
+ <rect
+ style="fill:#afe9af;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3112"
+ width="88.58268"
+ height="35.433071"
+ x="35.433041"
+ y="733.46454" />
+ <rect
+ style="fill:#afe9af;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3114"
+ width="88.58268"
+ height="35.433071"
+ x="35.433041"
+ y="698.03149" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="61.552505"
+ y="792.43835"
+ id="text3120"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="61.552505"
+ y="792.43835"
+ id="tspan3124">MAC</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="63.771255"
+ y="757.00531"
+ id="text3128"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3130"
+ x="63.771255"
+ y="757.00531">RLC</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="63.052505"
+ y="721.57227"
+ id="text3132"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3134"
+ x="63.052505"
+ y="721.57227">LLC</tspan></text>
+ <rect
+ style="fill:#afe9af;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3114-4"
+ width="88.58268"
+ height="35.433071"
+ x="690.94482"
+ y="698.03149" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="718.56427"
+ y="721.57227"
+ id="text3132-7"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3134-0"
+ x="718.56427"
+ y="721.57227">LLC</tspan></text>
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect2993-3-2-3"
+ width="88.58268"
+ height="35.433071"
+ x="690.94482"
+ y="839.76367" />
+ <text
+ xml:space="preserve"
+ style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="722.48712"
+ y="864.77032"
+ id="text3007-0-2-5"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3009-6-4-1"
+ x="722.48712"
+ y="864.77032">E1</tspan></text>
+ <rect
+ style="fill:#ff5555;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3534"
+ width="88.58268"
+ height="35.433071"
+ x="779.52753"
+ y="733.46454" />
+ <rect
+ style="fill:#b380ff;fill-opacity:1;stroke:#000000;stroke-width:1.68378329;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3536"
+ width="88.58268"
+ height="106.29923"
+ x="779.52753"
+ y="768.89758" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="816.12354"
+ y="757.01312"
+ id="text3546"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3548"
+ x="816.12354"
+ y="757.01312">IP</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="788.72906"
+ y="828.01202"
+ id="text3550"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3552"
+ x="788.72906"
+ y="828.01202">Ethernet</tspan></text>
+ <rect
+ style="fill:#b380ff;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3554"
+ width="88.58268"
+ height="35.433071"
+ x="779.52765"
+ y="662.59839" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="799.85803"
+ y="686.13916"
+ id="text3556"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3558"
+ x="799.85803"
+ y="686.13916">GTP-U</tspan></text>
+ <rect
+ style="fill:#ff5555;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3534-6"
+ width="88.58268"
+ height="35.433071"
+ x="938.97632"
+ y="733.46448" />
+ <rect
+ style="fill:#b380ff;fill-opacity:1;stroke:#000000;stroke-width:1.68378329;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3536-0"
+ width="88.58268"
+ height="106.29923"
+ x="938.97632"
+ y="768.89752" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="975.57227"
+ y="757.01306"
+ id="text3546-9"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3548-9"
+ x="975.57227"
+ y="757.01306">IP</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="948.17786"
+ y="828.01196"
+ id="text3550-0"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3552-8"
+ x="948.17786"
+ y="828.01196">Ethernet</tspan></text>
+ <rect
+ style="fill:#b380ff;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3554-9"
+ width="88.58268"
+ height="35.433071"
+ x="938.97644"
+ y="662.59839" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="959.30682"
+ y="686.13916"
+ id="text3556-3"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3558-1"
+ x="959.30682"
+ y="686.13916">GTP-U</tspan><tspan
+ sodipodi:role="line"
+ x="959.30682"
+ y="706.13916"
+ id="tspan7275" /></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.68190962;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Lstart);marker-end:url(#Arrow1Lend)"
+ d="m 868.11034,680.31492 70.86614,0"
+ id="path3611"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.92873204;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Lstart);marker-end:url(#Arrow1Lend)"
+ d="m 124.01572,715.74801 566.92913,0"
+ id="path3611-7"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.44654906;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Lstart);marker-end:url(#Arrow1Lend)"
+ d="m 124.01572,751.1811 318.89764,0"
+ id="path3611-7-2"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.44654906;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Lstart);marker-end:url(#Arrow1Lend)"
+ d="m 124.01572,786.61415 318.89764,0"
+ id="path3611-7-9"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect2993-0"
+ width="88.58268"
+ height="35.433071"
+ x="35.433044"
+ y="839.76373" />
+ <flowRoot
+ xml:space="preserve"
+ id="flowRoot5326"
+ style="fill:black;fill-opacity:1;stroke:none;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;font-family:helvetica;font-style:normal;font-weight:normal;font-size:16px;line-height:125%;letter-spacing:0px;word-spacing:0px"><flowRegion
+ id="flowRegion5328"><rect
+ id="rect5330"
+ width="190.52419"
+ height="596.32574"
+ x="67.508575"
+ y="90.011429" /></flowRegion><flowPara
+ id="flowPara5332" /></flowRoot> <text
+ xml:space="preserve"
+ style="font-size:14.64712048px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="79.688622"
+ y="852.36664"
+ id="text5334"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5336"
+ x="79.688622"
+ y="852.36664">Physical</tspan><tspan
+ sodipodi:role="line"
+ x="79.688622"
+ y="870.67554"
+ id="tspan5338">Layer</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="307.05768"
+ y="829.32758"
+ id="text3011"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3013"
+ x="307.05768"
+ y="829.32758" /></text>
+ <text
+ xml:space="preserve"
+ style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="301.38385"
+ y="793.89447"
+ id="text3015"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3017"
+ x="301.38385"
+ y="793.89447" /></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.84679401;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:11.08076375, 3.69358791;stroke-dashoffset:0"
+ d="m 159.44882,520.86612 0,389.76378"
+ id="path5460"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.84679401;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:11.08076375, 3.69358791;stroke-dashoffset:0"
+ d="m 407.48031,520.86612 0,389.76378"
+ id="path5460-1"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.84679401;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:11.08076375, 3.69358791;stroke-dashoffset:0"
+ d="m 655.51181,520.86612 0,389.76378"
+ id="path5460-7"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.84679401;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:11.08076375, 3.69358791;stroke-dashoffset:0"
+ d="m 903.54331,520.86612 0,389.76378"
+ id="path5460-2"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="145.78085"
+ y="928.34644"
+ id="text5494"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5496"
+ x="145.78085"
+ y="928.34644">Um</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="388.1561"
+ y="928.34644"
+ id="text5498"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5500"
+ x="388.1561"
+ y="928.34644">A-bis</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="644.21887"
+ y="928.34644"
+ id="text5502"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5504"
+ x="644.21887"
+ y="928.34644">Gb</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="892.50037"
+ y="928.34644"
+ id="text5506"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5508"
+ x="892.50037"
+ y="928.34644">Gn</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:24px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="60.822041"
+ y="928.34644"
+ id="text5510"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5512"
+ x="60.822041"
+ y="928.34644">MS</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:24px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="224.53098"
+ y="928.34644"
+ id="text5510-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5512-1"
+ x="224.53098"
+ y="928.34644">BTS+CCU</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:24px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="472.86713"
+ y="928.34644"
+ id="text5510-4-6-7"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5512-1-5-8"
+ x="472.86713"
+ y="928.34644">BSC+PCU</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:24px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="746.47583"
+ y="928.34644"
+ id="text5510-4-6-7-5"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5512-1-5-8-9"
+ x="746.47583"
+ y="928.34644">SGSN</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:24px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="948.56842"
+ y="928.34644"
+ id="text5510-4-6-7-2"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5512-1-5-8-7"
+ x="948.56842"
+ y="928.34644">GGSN</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="88.58268"
+ y="503.1496"
+ id="text5725"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5727"
+ x="88.58268"
+ y="503.1496">GPRS User Plane</tspan></text>
+ <rect
+ style="fill:#e9afaf;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect2995-7-7-2"
+ width="88.58268"
+ height="35.433071"
+ x="690.94489"
+ y="804.33075" />
+ <rect
+ style="fill:#e9afaf;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect2997-6-4-1"
+ width="88.58268"
+ height="35.433071"
+ x="690.94489"
+ y="768.89764" />
+ <text
+ xml:space="preserve"
+ style="font-size:14.59619617px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="734.90839"
+ y="818.10785"
+ id="text3011-5-4-6"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3013-0-3-2"
+ x="734.90839"
+ y="818.10785">Frame</tspan><tspan
+ id="tspan7094-0"
+ sodipodi:role="line"
+ x="734.90839"
+ y="836.35309">Relay</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="720.98328"
+ y="793.89447"
+ id="text3015-8-8-2"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3017-1-6-2"
+ x="720.98328"
+ y="793.89447">NS</tspan></text>
+ <rect
+ style="fill:#80e5ff;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3303-9"
+ width="88.58268"
+ height="35.433071"
+ x="690.94489"
+ y="733.4646" />
+ <text
+ xml:space="preserve"
+ style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="701.43738"
+ y="758.46143"
+ id="text3015-8-8-4-7"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3017-1-6-12-4"
+ x="701.43738"
+ y="758.46143">BSSGP</tspan></text>
+ <flowRoot
+ xml:space="preserve"
+ id="flowRoot7277"
+ style="fill:black;fill-opacity:1;stroke:none;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;font-family:helvetica;font-style:normal;font-weight:normal;font-size:16px;line-height:125%;letter-spacing:0px;word-spacing:0px"><flowRegion
+ id="flowRegion7279"><rect
+ id="rect7281"
+ width="184.54546"
+ height="200"
+ x="17.272728"
+ y="98.639938" /></flowRegion><flowPara
+ id="flowPara7283" /></flowRoot> <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect2993"
+ width="88.58268"
+ height="35.433071"
+ x="283.46457"
+ y="839.76379" />
+ <rect
+ style="fill:#e9afaf;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect2995"
+ width="88.58268"
+ height="35.433071"
+ x="283.46457"
+ y="804.33075" />
+ <text
+ xml:space="preserve"
+ style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="315.0069"
+ y="864.77039"
+ id="text3007"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3009"
+ x="315.0069"
+ y="864.77039">E1</tspan></text>
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect2993-0-1"
+ width="88.58268"
+ height="35.433071"
+ x="194.88188"
+ y="839.76379" />
+ <text
+ xml:space="preserve"
+ style="font-size:14.64712048px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="239.13747"
+ y="852.3667"
+ id="text5334-3"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5336-7"
+ x="239.13747"
+ y="852.3667">Physical</tspan><tspan
+ sodipodi:role="line"
+ x="239.13747"
+ y="870.6756"
+ id="tspan5338-4">Layer</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.75296879px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="327.70187"
+ y="816.6698"
+ id="text7300"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan7302"
+ x="327.70187"
+ y="816.6698">TRAU</tspan><tspan
+ sodipodi:role="line"
+ x="327.70187"
+ y="835.11102"
+ id="tspan7304">Framing</tspan></text>
+ <rect
+ style="fill:#afe9af;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3110-2"
+ width="88.58268"
+ height="35.433071"
+ x="442.91336"
+ y="768.89764" />
+ <rect
+ style="fill:#afe9af;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3112-7"
+ width="88.58268"
+ height="35.433071"
+ x="442.91336"
+ y="733.46454" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="469.03284"
+ y="792.43835"
+ id="text3120-2"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="469.03284"
+ y="792.43835"
+ id="tspan3124-8">MAC</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="471.25159"
+ y="757.00531"
+ id="text3128-0"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3130-3"
+ x="471.25159"
+ y="757.00531">RLC</tspan></text>
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect2993-3"
+ width="88.58268"
+ height="35.433071"
+ x="442.91339"
+ y="839.76367" />
+ <rect
+ style="fill:#e9afaf;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect2995-7"
+ width="88.58268"
+ height="35.433071"
+ x="442.91336"
+ y="804.33069" />
+ <text
+ xml:space="preserve"
+ style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="474.45572"
+ y="864.77032"
+ id="text3007-0"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3009-6"
+ x="474.45572"
+ y="864.77032">E1</tspan></text>
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect2993-3-2"
+ width="88.58268"
+ height="35.433071"
+ x="531.49603"
+ y="839.76373" />
+ <rect
+ style="fill:#e9afaf;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect2995-7-7"
+ width="88.58268"
+ height="35.433071"
+ x="531.49603"
+ y="804.33069" />
+ <rect
+ style="fill:#e9afaf;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect2997-6-4"
+ width="88.58268"
+ height="35.433071"
+ x="531.49603"
+ y="768.89764" />
+ <text
+ xml:space="preserve"
+ style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="563.03833"
+ y="864.77039"
+ id="text3007-0-2"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3009-6-4"
+ x="563.03833"
+ y="864.77039">E1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.59619617px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="575.45953"
+ y="818.10785"
+ id="text3011-5-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3013-0-3"
+ x="575.45953"
+ y="818.10785">Frame</tspan><tspan
+ id="tspan7094"
+ sodipodi:role="line"
+ x="575.45953"
+ y="836.35309">Relay</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="561.53442"
+ y="793.89447"
+ id="text3015-8-8"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3017-1-6"
+ x="561.53442"
+ y="793.89447">NS</tspan></text>
+ <rect
+ style="fill:#80e5ff;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3303"
+ width="88.58268"
+ height="35.433071"
+ x="531.49603"
+ y="733.4646" />
+ <text
+ xml:space="preserve"
+ style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="541.98853"
+ y="758.46143"
+ id="text3015-8-8-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3017-1-6-12"
+ x="541.98853"
+ y="758.46143">BSSGP</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.75296879px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="487.15067"
+ y="816.66974"
+ id="text7300-3"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan7302-5"
+ x="487.15067"
+ y="816.66974">TRAU</tspan><tspan
+ sodipodi:role="line"
+ x="487.15067"
+ y="835.11096"
+ id="tspan7304-6">Framing</tspan></text>
+ <rect
+ style="fill:#e5ff80;fill-opacity:1;stroke:#000000;stroke-width:1.77165353000000003;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect7330"
+ width="88.58268"
+ height="35.433071"
+ x="35.433071"
+ y="354.33069"
+ transform="translate(0,308.2677)" />
+ <rect
+ style="fill:#ff5555;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect7334"
+ width="88.58268"
+ height="35.433071"
+ x="779.52759"
+ y="698.03149" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="806.55719"
+ y="721.4668"
+ id="text3542"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3544"
+ x="806.55719"
+ y="721.4668">UDP</tspan></text>
+ <rect
+ style="fill:#ff5555;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect7334-1"
+ width="88.58268"
+ height="35.433071"
+ x="938.97638"
+ y="698.03149" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="966.00598"
+ y="721.4668"
+ id="text3542-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3544-0"
+ x="966.00598"
+ y="721.4668">UDP</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="51.833786"
+ y="686.13916"
+ id="text7360"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan7362"
+ x="51.833786"
+ y="686.13916">SNDCP</tspan></text>
+ <rect
+ style="fill:#e5ff80;fill-opacity:1;stroke:#000000;stroke-width:1.77165353000000003;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect7330-3"
+ width="88.58268"
+ height="35.433071"
+ x="690.94489"
+ y="662.59845" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ x="707.34558"
+ y="686.13922"
+ id="text7360-1"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan7362-2"
+ x="707.34558"
+ y="686.13922">SNDCP</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.92873204;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Lstart);marker-end:url(#Arrow1Lend)"
+ d="m 124.01575,680.31494 566.92913,0"
+ id="path3611-7-7"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g5799"
+ transform="translate(-4.0522022e-6,159.44883)">
+ <rect
+ y="449.99997"
+ x="35.433071"
+ height="35.433071"
+ width="88.58268"
+ id="rect3305-6"
+ style="fill:#ff80e5;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5765"
+ y="473.54852"
+ x="72.029099"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ xml:space="preserve"><tspan
+ y="473.54852"
+ x="72.029099"
+ id="tspan5767"
+ sodipodi:role="line">IP</tspan></text>
+ </g>
+ <g
+ id="g5799-9"
+ transform="translate(903.54331,159.44883)">
+ <rect
+ y="449.99997"
+ x="35.433071"
+ height="35.433071"
+ width="88.58268"
+ id="rect3305-6-2"
+ style="fill:#ff80e5;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5765-1"
+ y="473.54852"
+ x="72.029099"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ xml:space="preserve"><tspan
+ y="473.54852"
+ x="72.029099"
+ id="tspan5767-7"
+ sodipodi:role="line">IP</tspan></text>
+ </g>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.77165353;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Lstart);marker-end:url(#Arrow1Lend)"
+ d="m 124.01575,627.16533 814.96063,0"
+ id="path3611-7-1"
+ inkscape:connector-curvature="0" />
+ <g
+ transform="translate(-4.0522022e-6,159.44882)"
+ id="g6328">
+ <rect
+ y="414.56689"
+ x="35.433071"
+ height="35.433071"
+ width="88.58268"
+ id="rect3305-6-8"
+ style="fill:#ff80e5;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5765-8"
+ y="438.11545"
+ x="65.181442"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ xml:space="preserve"><tspan
+ y="438.11545"
+ x="65.181442"
+ id="tspan5767-4"
+ sodipodi:role="line">TCP</tspan></text>
+ </g>
+ <g
+ transform="translate(903.54331,159.44883)"
+ id="g6328-4">
+ <rect
+ y="414.56689"
+ x="35.433071"
+ height="35.433071"
+ width="88.58268"
+ id="rect3305-6-8-8"
+ style="fill:#ff80e5;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5765-8-8"
+ y="438.11545"
+ x="65.181442"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ xml:space="preserve"><tspan
+ y="438.11545"
+ x="65.181442"
+ id="tspan5767-4-3"
+ sodipodi:role="line">TCP</tspan></text>
+ </g>
+ <g
+ transform="translate(-4.0522022e-6,159.44882)"
+ id="g6390">
+ <rect
+ y="379.13382"
+ x="35.433071"
+ height="35.433071"
+ width="88.58268"
+ id="rect3305-6-8-8-7"
+ style="fill:#ff80e5;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5765-8-8-5"
+ y="402.68237"
+ x="58.732224"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ xml:space="preserve"><tspan
+ y="402.68237"
+ x="58.732224"
+ id="tspan5767-4-3-2"
+ sodipodi:role="line">HTTP</tspan></text>
+ </g>
+ <g
+ transform="translate(903.54331,159.44883)"
+ id="g6390-4">
+ <rect
+ y="379.13382"
+ x="35.433071"
+ height="35.433071"
+ width="88.58268"
+ id="rect3305-6-8-8-7-5"
+ style="fill:#ff80e5;fill-opacity:1;stroke:#000000;stroke-width:1.37480319;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5765-8-8-5-0"
+ y="402.68237"
+ x="58.732224"
+ style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:helvetica"
+ xml:space="preserve"><tspan
+ y="402.68237"
+ x="58.732224"
+ id="tspan5767-4-3-2-5"
+ sodipodi:role="line">HTTP</tspan></text>
+ </g>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.77165353;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Lstart);marker-end:url(#Arrow1Lend)"
+ d="m 124.01575,591.73226 814.96063,0"
+ id="path3611-7-1-4"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.77165353;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Lstart);marker-end:url(#Arrow1Lend)"
+ d="m 124.01575,556.29919 814.96063,0"
+ id="path3611-7-1-7"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.6819098;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Lstart);marker-end:url(#Arrow1Lend)"
+ d="m 620.07874,751.18108 70.86614,0"
+ id="path3611-7-2-5"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.68190974;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Lstart);marker-end:url(#Arrow1Lend)"
+ d="m 620.07874,786.61415 70.86614,0"
+ id="path3611-7-2-4"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/2017/running_osmo_gsm-osmocon2017/osmo-bts.svg b/2017/running_osmo_gsm-osmocon2017/osmo-bts.svg
new file mode 100644
index 0000000..5f24c35
--- /dev/null
+++ b/2017/running_osmo_gsm-osmocon2017/osmo-bts.svg
@@ -0,0 +1,342 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="85.403748mm"
+ height="60.830627mm"
+ viewBox="0 0 302.6117 215.54159"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="osmo-bts.svg">
+ <defs
+ id="defs4">
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:collect="always">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646"
+ inkscape:connector-curvature="0" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.3800511"
+ inkscape:cx="151.30585"
+ inkscape:cy="107.7708"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:snap-global="true"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="false"
+ inkscape:snap-to-guides="false"
+ inkscape:snap-others="false"
+ inkscape:bbox-nodes="false"
+ inkscape:snap-bbox-edge-midpoints="false"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:object-paths="false"
+ inkscape:object-nodes="true"
+ showguides="false"
+ inkscape:window-width="1022"
+ inkscape:window-height="730"
+ inkscape:window-x="0"
+ inkscape:window-y="1200"
+ inkscape:window-maximized="0"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ originx="-282.74929"
+ originy="-52.481486" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-282.74928,-784.33912)">
+ <g
+ id="g5461"
+ transform="translate(203.46457,-1.324757e-5)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4636"
+ d="m 230.31496,786.61417 0,53.14961"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker4644);marker-end:url(#marker4690)" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5151"
+ y="816.18896"
+ x="239.52753"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="816.18896"
+ x="239.52753"
+ id="tspan5153"
+ sodipodi:role="line">Abis/IP</tspan></text>
+ </g>
+ <g
+ id="g7653"
+ transform="translate(194.88189,-1.0472595e-5)">
+ <g
+ id="g4252">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="122.30629"
+ y="985.66003"
+ id="text4144"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4146"
+ x="122.30629"
+ y="985.66003">SDR Hardware</tspan></text>
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.25100005;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4172"
+ width="141.73228"
+ height="35.433071"
+ x="88.58268"
+ y="963.77948" />
+ </g>
+ <g
+ id="g4247">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="97.314629"
+ y="950.22699"
+ id="text4148"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="97.314629"
+ y="950.22699"
+ id="tspan4152">OsmoTRX</tspan></text>
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.25100005;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4160"
+ width="70.866142"
+ height="35.433071"
+ x="88.58268"
+ y="928.34644" />
+ </g>
+ <g
+ id="g4242">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="166.59451"
+ y="950.125"
+ id="text4156"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4158"
+ x="166.59451"
+ y="950.125">Transceiver</tspan></text>
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.25100005;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4162"
+ width="70.866142"
+ height="35.433071"
+ x="159.44882"
+ y="928.34644" />
+ </g>
+ </g>
+ <g
+ id="g4227"
+ transform="translate(194.88189,-1.0472595e-5)">
+ <rect
+ y="839.76373"
+ x="88.58268"
+ height="17.716536"
+ width="35.433071"
+ id="rect4225"
+ style="opacity:1;fill:#eeffaa;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ id="g10050">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="94.139557"
+ y="852.78601"
+ id="text4217"
+ sodipodi:linespacing="125%"
+ transform="translate(194.88189,-1e-5)"><tspan
+ sodipodi:role="line"
+ id="tspan4219"
+ x="94.139557"
+ y="852.78601">VTY</tspan></text>
+ <text
+ sodipodi:linespacing="125%"
+ id="text4178"
+ y="881.67499"
+ x="384.82532"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="881.67499"
+ x="384.82532"
+ id="tspan4180"
+ sodipodi:role="line">OsmoBTS</tspan></text>
+ <g
+ transform="translate(194.88189,-1.0472595e-5)"
+ id="g4232">
+ <rect
+ style="opacity:1;fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4198"
+ width="141.73228"
+ height="17.716536"
+ x="88.58268"
+ y="910.62988" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="127.64554"
+ y="923.58612"
+ id="text4182"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="127.64554"
+ y="923.58612"
+ id="tspan4186">osmo-bts-trx</tspan></text>
+ </g>
+ <g
+ transform="translate(194.88189,-1.0472595e-5)"
+ id="g5364">
+ <rect
+ style="opacity:1;fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.39999998;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4198-7"
+ width="141.73227"
+ height="17.716536"
+ x="248.03149"
+ y="910.62994" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="279.13019"
+ y="922.42224"
+ id="text4190"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="279.13019"
+ y="922.42224"
+ id="tspan4194">osmo-bts-sysmo</tspan></text>
+ </g>
+ <g
+ transform="translate(212.59843,1.6540969e-5)"
+ id="g4259">
+ <rect
+ style="opacity:1;fill:#ffaaaa;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4257"
+ width="35.433071"
+ height="17.716536"
+ x="336.61417"
+ y="839.76373" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="339.13992"
+ y="852.79199"
+ id="text4221"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4223"
+ x="339.13992"
+ y="852.79199">CTRL</tspan></text>
+ </g>
+ <rect
+ y="839.76373"
+ x="283.46457"
+ height="88.58268"
+ width="301.18112"
+ id="rect4176"
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.43057334;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ id="g7667"
+ transform="translate(194.88189,-1.0472595e-5)">
+ <text
+ sodipodi:linespacing="125%"
+ id="text4166"
+ y="959.34552"
+ x="318.90579"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="959.34552"
+ x="318.90579"
+ id="tspan4168"
+ sodipodi:role="line">sysmoBTS PHY</tspan><tspan
+ id="tspan4170"
+ y="974.34552"
+ x="318.90579"
+ sodipodi:role="line">sysmoBTS Hardware</tspan></text>
+ <rect
+ y="928.34644"
+ x="248.03149"
+ height="70.866142"
+ width="141.73228"
+ id="rect5359"
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.33630621;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect7782"
+ width="0"
+ height="0"
+ x="0"
+ y="0"
+ transform="translate(0,308.26772)" />
+ </g>
+</svg>
diff --git a/2017/running_osmo_gsm-osmocon2017/osmocom-gprs.svg b/2017/running_osmo_gsm-osmocon2017/osmocom-gprs.svg
new file mode 100644
index 0000000..0506053
--- /dev/null
+++ b/2017/running_osmo_gsm-osmocon2017/osmocom-gprs.svg
@@ -0,0 +1,1191 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="210.37825mm"
+ height="150.83063mm"
+ viewBox="0 0 745.43474 534.43923"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="osmocom-gprs.svg">
+ <defs
+ id="defs4">
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker6072"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path6074"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker5966"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path5968"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker5275"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path5277"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker5211"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path5213"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path4327"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lstart"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path4324"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644-5"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646-9" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690-8"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692-8" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644-7"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646-6" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690-4"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692-1" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker5966-4"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path5968-3" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker6072-3"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path6074-5" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644-5-6"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646-9-0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690-8-5"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692-8-1" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644-5-7"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646-9-6" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690-8-3"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692-8-4" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644-5-3"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646-9-61" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690-8-0"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692-8-3" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644-5-7-1"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646-9-6-1" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690-8-3-0"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692-8-4-6" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644-5-7-1-1"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646-9-6-1-6" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690-8-3-0-1"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692-8-4-6-2" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644-5-7-3"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646-9-6-0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690-8-3-5"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692-8-4-9" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker5966-7"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path5968-9" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker6072-4"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path6074-8" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker5966-7-7"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path5968-9-0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker6072-4-9"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path6074-8-4" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker5966-7-1"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path5968-9-4" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker6072-4-5"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path6074-8-1" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644-9-4-22"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646-8-5-2" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690-3-8-0"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692-5-5-6" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644-9-4-3"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646-8-5-7" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690-3-8-00"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692-5-5-1" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.68942857"
+ inkscape:cx="243.43182"
+ inkscape:cy="319.56575"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:snap-global="true"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="false"
+ inkscape:snap-to-guides="false"
+ inkscape:snap-others="false"
+ inkscape:bbox-nodes="false"
+ inkscape:snap-bbox-edge-midpoints="false"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:object-paths="false"
+ inkscape:object-nodes="true"
+ showguides="false"
+ inkscape:window-width="1022"
+ inkscape:window-height="730"
+ inkscape:window-x="0"
+ inkscape:window-y="1200"
+ inkscape:window-maximized="0"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ originx="-282.74928"
+ originy="-52.481501" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-282.74928,-465.4415)">
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Lstart);marker-end:url(#Arrow1Lend)"
+ d="m 584.64567,875.19684 70.86615,0"
+ id="path4318"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g6607"
+ transform="translate(194.88189,-1.0472595e-5)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4636-0"
+ d="m 549.2126,786.61417 0,53.14961"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker4644-5);marker-end:url(#marker4690-8)" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5147"
+ y="816.18896"
+ x="561.25983"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="816.18896"
+ x="561.25983"
+ id="tspan5149"
+ sodipodi:role="line">Gb/IP</tspan></text>
+ </g>
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker5275);marker-end:url(#marker5211)"
+ d="m 584.64567,963.77952 141.73229,0 0,-35.43308"
+ id="path5203"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.9524622px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="605.33478"
+ y="958.31073"
+ id="text5351"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5353"
+ x="605.33478"
+ y="958.31073"
+ style="font-size:9.34528923px">sysmoBTS direct PHY access</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="596.60864"
+ y="864.77759"
+ id="text5355"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5357"
+ x="596.60864"
+ y="864.77759">PCU Sock</tspan></text>
+ <g
+ id="g7653"
+ transform="translate(194.88189,-1.0472595e-5)">
+ <g
+ id="g4252">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="122.30629"
+ y="985.66003"
+ id="text4144"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4146"
+ x="122.30629"
+ y="985.66003">SDR Hardware</tspan></text>
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.25100005;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4172"
+ width="141.73228"
+ height="35.433071"
+ x="88.58268"
+ y="963.77948" />
+ </g>
+ <g
+ id="g4247">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="97.314629"
+ y="950.22699"
+ id="text4148"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="97.314629"
+ y="950.22699"
+ id="tspan4152">OsmoTRX</tspan></text>
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.25100005;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4160"
+ width="70.866142"
+ height="35.433071"
+ x="88.58268"
+ y="928.34644" />
+ </g>
+ <g
+ id="g4242">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="166.59451"
+ y="950.125"
+ id="text4156"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4158"
+ x="166.59451"
+ y="950.125">Transceiver</tspan></text>
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.25100005;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4162"
+ width="70.866142"
+ height="35.433071"
+ x="159.44882"
+ y="928.34644" />
+ </g>
+ </g>
+ <g
+ id="g4227"
+ transform="translate(194.88189,-1.0472595e-5)">
+ <rect
+ y="839.76373"
+ x="88.58268"
+ height="17.716536"
+ width="35.433071"
+ id="rect4225"
+ style="opacity:1;fill:#eeffaa;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ id="g10050">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="94.139557"
+ y="852.78601"
+ id="text4217"
+ sodipodi:linespacing="125%"
+ transform="translate(194.88189,-1e-5)"><tspan
+ sodipodi:role="line"
+ id="tspan4219"
+ x="94.139557"
+ y="852.78601">VTY</tspan></text>
+ <text
+ sodipodi:linespacing="125%"
+ id="text4178"
+ y="881.67499"
+ x="384.82532"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="881.67499"
+ x="384.82532"
+ id="tspan4180"
+ sodipodi:role="line">OsmoBTS</tspan></text>
+ <g
+ transform="translate(194.88189,-1.0472595e-5)"
+ id="g4232">
+ <rect
+ style="opacity:1;fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4198"
+ width="141.73228"
+ height="17.716536"
+ x="88.58268"
+ y="910.62988" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="127.64554"
+ y="923.58612"
+ id="text4182"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="127.64554"
+ y="923.58612"
+ id="tspan4186">osmo-bts-trx</tspan></text>
+ </g>
+ <g
+ transform="translate(194.88189,-1.0472595e-5)"
+ id="g5364">
+ <rect
+ style="opacity:1;fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.39999998;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4198-7"
+ width="141.73227"
+ height="17.716536"
+ x="248.03149"
+ y="910.62994" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="279.13019"
+ y="922.42224"
+ id="text4190"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="279.13019"
+ y="922.42224"
+ id="tspan4194">osmo-bts-sysmo</tspan></text>
+ </g>
+ <g
+ transform="translate(212.59843,1.6540969e-5)"
+ id="g4259">
+ <rect
+ style="opacity:1;fill:#ffaaaa;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4257"
+ width="35.433071"
+ height="17.716536"
+ x="336.61417"
+ y="839.76373" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="339.13992"
+ y="852.79199"
+ id="text4221"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4223"
+ x="339.13992"
+ y="852.79199">CTRL</tspan></text>
+ </g>
+ <rect
+ y="839.76373"
+ x="283.46457"
+ height="88.58268"
+ width="301.18112"
+ id="rect4176"
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.43057334;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ id="g7667"
+ transform="translate(194.88189,-1.0472595e-5)">
+ <text
+ sodipodi:linespacing="125%"
+ id="text4166"
+ y="959.34552"
+ x="318.90579"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="959.34552"
+ x="318.90579"
+ id="tspan4168"
+ sodipodi:role="line">sysmoBTS PHY</tspan><tspan
+ id="tspan4170"
+ y="974.34552"
+ x="318.90579"
+ sodipodi:role="line">sysmoBTS Hardware</tspan></text>
+ <rect
+ y="928.34644"
+ x="248.03149"
+ height="70.866142"
+ width="141.73228"
+ id="rect5359"
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.33630621;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ transform="translate(124.01575,-1.324757e-5)"
+ id="g5461-7">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4636-4"
+ d="m 230.31496,786.61417 0,53.14961"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker4644-7);marker-end:url(#marker4690-4)" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5151-0"
+ y="816.18896"
+ x="239.52753"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="816.18896"
+ x="239.52753"
+ id="tspan5153-3"
+ sodipodi:role="line">Abis/IP</tspan></text>
+ </g>
+ <g
+ id="g7599"
+ transform="translate(194.88189,-1.0472595e-5)">
+ <g
+ id="g4227-3-0"
+ transform="translate(372.04725,-141.73226)">
+ <rect
+ style="opacity:1;fill:#eeffaa;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4225-9-2"
+ width="35.433071"
+ height="17.716536"
+ x="88.58268"
+ y="839.76373" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="94.139557"
+ y="852.78601"
+ id="text4217-0-3"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4219-2-3"
+ x="94.139557"
+ y="852.78601">VTY</tspan></text>
+ </g>
+ <g
+ id="g4259-6-3"
+ transform="translate(265.74803,-141.73224)">
+ <rect
+ style="opacity:1;fill:#ffaaaa;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4257-3-5"
+ width="35.433071"
+ height="17.716536"
+ x="336.61417"
+ y="839.76373" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="339.13992"
+ y="852.79199"
+ id="text4221-2-6"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4223-9-0"
+ x="339.13992"
+ y="852.79199">CTRL</tspan></text>
+ </g>
+ <rect
+ y="698.03149"
+ x="460.62991"
+ height="88.58268"
+ width="177.16536"
+ id="rect5562"
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text4178-6-6"
+ y="749.26282"
+ x="500.58948"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="749.26282"
+ x="500.58948"
+ id="tspan4180-4-6"
+ sodipodi:role="line">OsmoSGSN</tspan><tspan
+ id="tspan5630"
+ y="774.26282"
+ x="500.58948"
+ sodipodi:role="line" /></text>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="387.12598"
+ y="564.94281"
+ id="text4178-6-2"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4180-4-5"
+ x="387.12598"
+ y="564.94281">OsmoNITB</tspan></text>
+ <g
+ transform="translate(195.43307,-318.89761)"
+ id="g4227-7-9">
+ <rect
+ y="839.76373"
+ x="88.58268"
+ height="17.716536"
+ width="35.433071"
+ id="rect4225-0-9"
+ style="opacity:1;fill:#eeffaa;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text4217-4-4"
+ y="852.78601"
+ x="94.139557"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="852.78601"
+ x="94.139557"
+ id="tspan4219-6-7"
+ sodipodi:role="line">VTY</tspan></text>
+ </g>
+ <g
+ id="g4259-61-7"
+ transform="translate(213.14961,-318.89762)">
+ <rect
+ y="839.76373"
+ x="336.61417"
+ height="17.716536"
+ width="35.433071"
+ id="rect4257-1-1"
+ style="opacity:1;fill:#ffaaaa;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text4221-5-2"
+ y="852.79199"
+ x="339.13992"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="852.79199"
+ x="339.13992"
+ id="tspan4223-7-1"
+ sodipodi:role="line">CTRL</tspan></text>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="374.17935"
+ y="621.99542"
+ id="text5928"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="374.17935"
+ y="621.99542"
+ id="tspan5932">Includes functionality of</tspan><tspan
+ sodipodi:role="line"
+ x="374.17935"
+ y="636.99542"
+ id="tspan5936">* BSC</tspan><tspan
+ sodipodi:role="line"
+ x="374.17935"
+ y="651.99542"
+ id="tspan5938">* MSC/VLR</tspan><tspan
+ sodipodi:role="line"
+ x="374.17935"
+ y="666.99542"
+ id="tspan5940">* HLR/AUC</tspan><tspan
+ sodipodi:role="line"
+ x="374.17935"
+ y="681.99542"
+ id="tspan5944">* SMSC</tspan></text>
+ <g
+ id="g7619"
+ transform="translate(194.88189,-1.0472595e-5)">
+ <text
+ sodipodi:linespacing="125%"
+ id="text4266"
+ y="890.99506"
+ x="603.24945"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="font-size:20px"
+ y="890.99506"
+ x="603.24945"
+ id="tspan4268"
+ sodipodi:role="line">OsmoPCU</tspan></text>
+ <g
+ id="g4259-6"
+ transform="translate(460.62992,2.7013564e-5)">
+ <rect
+ style="opacity:1;fill:#ffaaaa;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4257-3"
+ width="35.433071"
+ height="17.716536"
+ x="336.61417"
+ y="839.76373" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="339.13992"
+ y="852.79199"
+ id="text4221-2"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4223-9"
+ x="339.13992"
+ y="852.79199">CTRL</tspan></text>
+ </g>
+ <g
+ id="g4227-3"
+ transform="translate(372.04725,4.2406034e-5)">
+ <rect
+ style="opacity:1;fill:#eeffaa;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4225-9"
+ width="35.433071"
+ height="17.716536"
+ x="88.58268"
+ y="839.76373" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="94.139557"
+ y="852.78601"
+ id="text4217-0"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4219-2"
+ x="94.139557"
+ y="852.78601">VTY</tspan></text>
+ </g>
+ <rect
+ y="839.76373"
+ x="460.62991"
+ height="88.58268"
+ width="372.04724"
+ id="rect6618"
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ transform="translate(141.73228,-141.73229)"
+ id="g6607-2">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4636-0-22"
+ d="m 549.2126,786.61417 0,53.14961"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker4644-5-7);marker-end:url(#marker4690-8-3)" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5147-4"
+ y="816.18896"
+ x="561.25983"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="816.18896"
+ x="561.25983"
+ sodipodi:role="line"
+ id="tspan7108">GTP/IP</tspan></text>
+ </g>
+ <g
+ id="g7316"
+ transform="translate(194.88189,-1.0472595e-5)">
+ <rect
+ y="520.86615"
+ x="460.62991"
+ height="124.01575"
+ width="88.58268"
+ id="rect7296"
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text7300"
+ y="587.36206"
+ x="463.63654"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.19563866px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="587.36206"
+ x="463.63654"
+ id="tspan7302"
+ sodipodi:role="line">OpenGGSN</tspan></text>
+ </g>
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect7782"
+ width="0"
+ height="0"
+ x="0"
+ y="0"
+ transform="translate(0,308.26772)" />
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect10082"
+ width="301.18109"
+ height="265.74802"
+ x="284.01575"
+ y="520.86615" />
+ <g
+ id="g9402-3"
+ transform="translate(284.01575,-318.89764)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4636-5-9-3"
+ d="m 230.31496,786.61417 0,53.14961"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker4644-9-4-22);marker-end:url(#marker4690-3-8-0)" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5151-9-1-6"
+ y="816.18896"
+ x="239.52753"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="816.18896"
+ x="239.52753"
+ id="tspan5153-33-5-1"
+ sodipodi:role="line">SMPP</tspan></text>
+ </g>
+ <g
+ id="g9402-2"
+ transform="translate(124.56693,-318.89764)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4636-5-9-1"
+ d="m 230.31496,786.61417 0,53.14961"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker4644-9-4-3);marker-end:url(#marker4690-3-8-00)" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5151-9-1-2"
+ y="816.18896"
+ x="239.52753"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="816.18896"
+ x="239.52753"
+ id="tspan5153-33-5-50"
+ sodipodi:role="line">MNCC</tspan></text>
+ </g>
+ </g>
+</svg>
diff --git a/2017/running_osmo_gsm-osmocon2017/osmocom-gsm.svg b/2017/running_osmo_gsm-osmocon2017/osmocom-gsm.svg
new file mode 100644
index 0000000..8f2ac6d
--- /dev/null
+++ b/2017/running_osmo_gsm-osmocon2017/osmocom-gsm.svg
@@ -0,0 +1,1980 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="297mm"
+ height="210mm"
+ viewBox="0 0 1052.3622 744.09448"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="osmocom-gsm.svg">
+ <defs
+ id="defs4">
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible;"
+ id="marker6072"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path6074" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker5966"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart">
+ <path
+ transform="scale(0.8) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path5968" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker5275"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path5277"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ transform="scale(0.8) translate(12.5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker5211"
+ style="overflow:visible;"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path5213"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ transform="scale(0.8) rotate(180) translate(12.5,0)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible;"
+ id="marker4690"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path4692" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path4646" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lend"
+ style="overflow:visible;"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path4327"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ transform="scale(0.8) rotate(180) translate(12.5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lstart"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path4324"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ transform="scale(0.8) translate(12.5,0)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644-5"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646-9" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690-8"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692-8" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644-7"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646-6" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690-4"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692-1" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644-9"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646-8" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690-3"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692-5" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker5966-4"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path5968-3" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker6072-3"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path6074-5" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644-5-6"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646-9-0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690-8-5"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692-8-1" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644-5-7"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646-9-6" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690-8-3"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692-8-4" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644-5-3"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646-9-61" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690-8-0"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692-8-3" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644-5-7-1"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646-9-6-1" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690-8-3-0"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692-8-4-6" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644-5-7-1-1"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646-9-6-1-6" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690-8-3-0-1"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692-8-4-6-2" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644-5-7-3"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646-9-6-0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690-8-3-5"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692-8-4-9" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker5966-7"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path5968-9" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker6072-4"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path6074-8" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker5966-7-7"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path5968-9-0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker6072-4-9"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path6074-8-4" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker5966-7-1"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path5968-9-4" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker6072-4-5"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path6074-8-1" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644-9-4"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646-8-5" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690-3-8"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692-5-5" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644-9-4-5"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646-8-5-5" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690-3-8-6"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692-5-5-2" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644-9-4-2"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646-8-5-9" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690-3-8-1"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692-5-5-8" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644-7-1"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646-6-9" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690-4-1"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692-1-6" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644-7-6"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646-6-6" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690-4-3"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692-1-1" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644-9-4-22"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646-8-5-2" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690-3-8-0"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692-5-5-6" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4644-9-4-3"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4646-8-5-7" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker4690-3-8-00"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path4692-5-5-1" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.4911551"
+ inkscape:cx="556.46791"
+ inkscape:cy="372.02568"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:snap-global="true"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="false"
+ inkscape:snap-to-guides="false"
+ inkscape:snap-others="false"
+ inkscape:bbox-nodes="false"
+ inkscape:snap-bbox-edge-midpoints="false"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:object-paths="false"
+ inkscape:object-nodes="true"
+ showguides="false"
+ inkscape:window-width="1918"
+ inkscape:window-height="1162"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-308.26772)">
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Lstart);marker-end:url(#Arrow1Lend)"
+ d="m 584.64567,875.19684 70.86615,0"
+ id="path4318"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g6607"
+ transform="translate(194.88189,-1.0472595e-5)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4636-0"
+ d="m 549.2126,786.61417 0,53.14961"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker4644-5);marker-end:url(#marker4690-8)" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5147"
+ y="816.18896"
+ x="561.25983"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="816.18896"
+ x="561.25983"
+ id="tspan5149"
+ sodipodi:role="line">Gb/IP</tspan></text>
+ </g>
+ <g
+ id="g5461"
+ transform="translate(283.46457,-1.324757e-5)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4636"
+ d="m 230.31496,786.61417 0,53.14961"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker4644);marker-end:url(#marker4690)" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5151"
+ y="816.18896"
+ x="239.52753"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="816.18896"
+ x="239.52753"
+ id="tspan5153"
+ sodipodi:role="line">Abis/IP</tspan></text>
+ </g>
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker5275);marker-end:url(#marker5211)"
+ d="m 584.64567,963.77952 141.73229,0 0,-35.43308"
+ id="path5203"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.9524622px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="605.33478"
+ y="958.31073"
+ id="text5351"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5353"
+ x="605.33478"
+ y="958.31073"
+ style="font-size:9.34528923px">sysmoBTS direct PHY access</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="596.60864"
+ y="864.77759"
+ id="text5355"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5357"
+ x="596.60864"
+ y="864.77759">PCU Sock</tspan></text>
+ <g
+ id="g7653"
+ transform="translate(194.88189,-1.0472595e-5)">
+ <g
+ id="g4252">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="122.30629"
+ y="985.66003"
+ id="text4144"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4146"
+ x="122.30629"
+ y="985.66003">SDR Hardware</tspan></text>
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.25100005;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4172"
+ width="141.73228"
+ height="35.433071"
+ x="88.58268"
+ y="963.77948" />
+ </g>
+ <g
+ id="g4247">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="97.314629"
+ y="950.22699"
+ id="text4148"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="97.314629"
+ y="950.22699"
+ id="tspan4152">OsmoTRX</tspan></text>
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.25100005;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4160"
+ width="70.866142"
+ height="35.433071"
+ x="88.58268"
+ y="928.34644" />
+ </g>
+ <g
+ id="g4242">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="166.59451"
+ y="950.125"
+ id="text4156"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4158"
+ x="166.59451"
+ y="950.125">Transceiver</tspan></text>
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.25100005;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4162"
+ width="70.866142"
+ height="35.433071"
+ x="159.44882"
+ y="928.34644" />
+ </g>
+ </g>
+ <g
+ id="g4227"
+ transform="translate(194.88189,-1.0472595e-5)">
+ <rect
+ y="839.76373"
+ x="88.58268"
+ height="17.716536"
+ width="35.433071"
+ id="rect4225"
+ style="opacity:1;fill:#eeffaa;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ id="g10050">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="94.139557"
+ y="852.78601"
+ id="text4217"
+ sodipodi:linespacing="125%"
+ transform="translate(194.88189,-10e-6)"><tspan
+ sodipodi:role="line"
+ id="tspan4219"
+ x="94.139557"
+ y="852.78601">VTY</tspan></text>
+ <text
+ sodipodi:linespacing="125%"
+ id="text4178"
+ y="881.67499"
+ x="384.82532"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="881.67499"
+ x="384.82532"
+ id="tspan4180"
+ sodipodi:role="line">OsmoBTS</tspan></text>
+ <g
+ transform="translate(194.88189,-1.0472595e-5)"
+ id="g4232">
+ <rect
+ style="opacity:1;fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4198"
+ width="141.73228"
+ height="17.716536"
+ x="88.58268"
+ y="910.62988" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="127.64554"
+ y="923.58612"
+ id="text4182"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="127.64554"
+ y="923.58612"
+ id="tspan4186">osmo-bts-trx</tspan></text>
+ </g>
+ <g
+ transform="translate(194.88189,-1.0472595e-5)"
+ id="g5364">
+ <rect
+ style="opacity:1;fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.39999998;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4198-7"
+ width="141.73227"
+ height="17.716536"
+ x="248.03149"
+ y="910.62994" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="279.13019"
+ y="922.42224"
+ id="text4190"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="279.13019"
+ y="922.42224"
+ id="tspan4194">osmo-bts-sysmo</tspan></text>
+ </g>
+ <g
+ transform="translate(212.59843,1.6540969e-5)"
+ id="g4259">
+ <rect
+ style="opacity:1;fill:#ffaaaa;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4257"
+ width="35.433071"
+ height="17.716536"
+ x="336.61417"
+ y="839.76373" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="339.13992"
+ y="852.79199"
+ id="text4221"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4223"
+ x="339.13992"
+ y="852.79199">CTRL</tspan></text>
+ </g>
+ <rect
+ y="839.76373"
+ x="283.46457"
+ height="88.58268"
+ width="301.18112"
+ id="rect4176"
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.43057334;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ id="g7667"
+ transform="translate(194.88189,-1.0472595e-5)">
+ <text
+ sodipodi:linespacing="125%"
+ id="text4166"
+ y="959.34552"
+ x="318.90579"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="959.34552"
+ x="318.90579"
+ id="tspan4168"
+ sodipodi:role="line">sysmoBTS PHY</tspan><tspan
+ id="tspan4170"
+ y="974.34552"
+ x="318.90579"
+ sodipodi:role="line">sysmoBTS Hardware</tspan></text>
+ <rect
+ y="928.34644"
+ x="248.03149"
+ height="70.866142"
+ width="141.73228"
+ id="rect5359"
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.33630621;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ transform="translate(124.01575,-1.324757e-5)"
+ id="g5461-7">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4636-4"
+ d="m 230.31496,786.61417 0,53.14961"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker4644-7);marker-end:url(#marker4690-4)" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5151-0"
+ y="816.18896"
+ x="239.52753"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="816.18896"
+ x="239.52753"
+ id="tspan5153-3"
+ sodipodi:role="line">Abis/IP</tspan></text>
+ </g>
+ <g
+ id="g7578"
+ transform="translate(194.88189,-1.0472595e-5)">
+ <text
+ sodipodi:linespacing="125%"
+ id="text4178-6"
+ y="744.66223"
+ x="276.61285"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="744.66223"
+ x="276.61285"
+ id="tspan4180-4"
+ sodipodi:role="line">OsmoBSC</tspan></text>
+ <g
+ id="g4227-7"
+ transform="translate(159.44882,-141.73226)">
+ <rect
+ style="opacity:1;fill:#eeffaa;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4225-0"
+ width="35.433071"
+ height="17.716536"
+ x="88.58268"
+ y="839.76373" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="94.139557"
+ y="852.78601"
+ id="text4217-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4219-6"
+ x="94.139557"
+ y="852.78601">VTY</tspan></text>
+ </g>
+ <g
+ transform="translate(17.716542,-141.73226)"
+ id="g4259-61">
+ <rect
+ style="opacity:1;fill:#ffaaaa;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4257-1"
+ width="35.433071"
+ height="17.716536"
+ x="336.61417"
+ y="839.76373" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="339.13992"
+ y="852.79199"
+ id="text4221-5"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4223-7"
+ x="339.13992"
+ y="852.79199">CTRL</tspan></text>
+ </g>
+ <rect
+ y="698.03149"
+ x="248.03149"
+ height="88.58268"
+ width="141.73228"
+ id="rect5369"
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ id="g7599"
+ transform="translate(194.88189,-1.0472595e-5)">
+ <g
+ id="g4227-3-0"
+ transform="translate(372.04725,-141.73226)">
+ <rect
+ style="opacity:1;fill:#eeffaa;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4225-9-2"
+ width="35.433071"
+ height="17.716536"
+ x="88.58268"
+ y="839.76373" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="94.139557"
+ y="852.78601"
+ id="text4217-0-3"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4219-2-3"
+ x="94.139557"
+ y="852.78601">VTY</tspan></text>
+ </g>
+ <g
+ id="g4259-6-3"
+ transform="translate(265.74803,-141.73224)">
+ <rect
+ style="opacity:1;fill:#ffaaaa;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4257-3-5"
+ width="35.433071"
+ height="17.716536"
+ x="336.61417"
+ y="839.76373" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="339.13992"
+ y="852.79199"
+ id="text4221-2-6"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4223-9-0"
+ x="339.13992"
+ y="852.79199">CTRL</tspan></text>
+ </g>
+ <rect
+ y="698.03149"
+ x="460.62991"
+ height="88.58268"
+ width="177.16536"
+ id="rect5562"
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text4178-6-6"
+ y="749.26282"
+ x="500.58948"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="749.26282"
+ x="500.58948"
+ id="tspan4180-4-6"
+ sodipodi:role="line">OsmoSGSN</tspan><tspan
+ id="tspan5630"
+ y="774.26282"
+ x="500.58948"
+ sodipodi:role="line" /></text>
+ </g>
+ <g
+ id="g5461-5"
+ transform="translate(283.46457,-141.7323)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4636-5"
+ d="m 230.31496,786.61417 0,53.14961"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker4644-9);marker-end:url(#marker4690-3)" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5151-9"
+ y="816.18896"
+ x="239.52753"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="816.18896"
+ x="239.52753"
+ id="tspan5153-33"
+ sodipodi:role="line">A/IP</tspan></text>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="227.12598"
+ y="564.94281"
+ id="text4178-6-2"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4180-4-5"
+ x="227.12598"
+ y="564.94281">OsmoNITB</tspan></text>
+ <g
+ transform="translate(35.433068,-318.89761)"
+ id="g4227-7-9">
+ <rect
+ y="839.76373"
+ x="88.58268"
+ height="17.716536"
+ width="35.433071"
+ id="rect4225-0-9"
+ style="opacity:1;fill:#eeffaa;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text4217-4-4"
+ y="852.78601"
+ x="94.139557"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="852.78601"
+ x="94.139557"
+ id="tspan4219-6-7"
+ sodipodi:role="line">VTY</tspan></text>
+ </g>
+ <g
+ id="g4259-61-7"
+ transform="translate(53.149607,-318.89762)">
+ <rect
+ y="839.76373"
+ x="336.61417"
+ height="17.716536"
+ width="35.433071"
+ id="rect4257-1-1"
+ style="opacity:1;fill:#ffaaaa;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text4221-5-2"
+ y="852.79199"
+ x="339.13992"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="852.79199"
+ x="339.13992"
+ id="tspan4223-7-1"
+ sodipodi:role="line">CTRL</tspan></text>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="214.17935"
+ y="621.99542"
+ id="text5928"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="214.17935"
+ y="621.99542"
+ id="tspan5932">Includes functionality of</tspan><tspan
+ sodipodi:role="line"
+ x="214.17935"
+ y="636.99542"
+ id="tspan5936">* BSC</tspan><tspan
+ sodipodi:role="line"
+ x="214.17935"
+ y="651.99542"
+ id="tspan5938">* MSC/VLR</tspan><tspan
+ sodipodi:role="line"
+ x="214.17935"
+ y="666.99542"
+ id="tspan5940">* HLR/AUC</tspan><tspan
+ sodipodi:role="line"
+ x="214.17935"
+ y="681.99542"
+ id="tspan5944">* SMSC</tspan></text>
+ <g
+ id="g7619"
+ transform="translate(194.88189,-1.0472595e-5)">
+ <text
+ sodipodi:linespacing="125%"
+ id="text4266"
+ y="890.99506"
+ x="603.24945"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="font-size:20px"
+ y="890.99506"
+ x="603.24945"
+ id="tspan4268"
+ sodipodi:role="line">OsmoPCU</tspan></text>
+ <g
+ id="g4259-6"
+ transform="translate(460.62992,2.7013564e-5)">
+ <rect
+ style="opacity:1;fill:#ffaaaa;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4257-3"
+ width="35.433071"
+ height="17.716536"
+ x="336.61417"
+ y="839.76373" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="339.13992"
+ y="852.79199"
+ id="text4221-2"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4223-9"
+ x="339.13992"
+ y="852.79199">CTRL</tspan></text>
+ </g>
+ <g
+ id="g4227-3"
+ transform="translate(372.04725,4.2406034e-5)">
+ <rect
+ style="opacity:1;fill:#eeffaa;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4225-9"
+ width="35.433071"
+ height="17.716536"
+ x="88.58268"
+ y="839.76373" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="94.139557"
+ y="852.78601"
+ id="text4217-0"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4219-2"
+ x="94.139557"
+ y="852.78601">VTY</tspan></text>
+ </g>
+ <rect
+ y="839.76373"
+ x="460.62991"
+ height="88.58268"
+ width="372.04724"
+ id="rect6618"
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ transform="translate(389.76378,-1.324757e-5)"
+ id="g6607-8">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4636-0-2"
+ d="m 549.2126,786.61417 0,53.14961"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker4644-5-6);marker-end:url(#marker4690-8-5)" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5147-2"
+ y="816.18896"
+ x="561.25983"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="816.18896"
+ x="561.25983"
+ id="tspan5149-1"
+ sodipodi:role="line">Gb/IP</tspan></text>
+ </g>
+ <g
+ id="g9132">
+ <rect
+ y="698.03149"
+ x="850.39374"
+ height="88.58268"
+ width="177.16536"
+ id="rect5562-2"
+ style="opacity:1;fill:#aaccff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text4178-6-6-6"
+ y="747.43286"
+ x="872.34875"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="747.43286"
+ x="872.34875"
+ id="tspan4180-4-6-5"
+ sodipodi:role="line">3rd Party SGSN</tspan><tspan
+ id="tspan5630-8"
+ y="772.43286"
+ x="872.34875"
+ sodipodi:role="line" /></text>
+ </g>
+ <g
+ transform="translate(141.73228,-141.73229)"
+ id="g6607-2">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4636-0-22"
+ d="m 549.2126,786.61417 0,53.14961"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker4644-5-7);marker-end:url(#marker4690-8-3)" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5147-4"
+ y="816.18896"
+ x="561.25983"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="816.18896"
+ x="561.25983"
+ sodipodi:role="line"
+ id="tspan7108">GTP/IP</tspan></text>
+ </g>
+ <g
+ transform="translate(248.03149,-141.7323)"
+ id="g6607-2-2">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4636-0-22-8"
+ d="m 549.2126,786.61417 0,53.14961"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker4644-5-7-1);marker-end:url(#marker4690-8-3-0)" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5147-4-0"
+ y="816.18896"
+ x="561.25983"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="816.18896"
+ x="561.25983"
+ sodipodi:role="line"
+ id="tspan7108-4">GTP/IP</tspan></text>
+ </g>
+ <g
+ id="g7316"
+ transform="translate(194.88189,-1.0472595e-5)">
+ <rect
+ y="520.86615"
+ x="460.62991"
+ height="124.01575"
+ width="88.58268"
+ id="rect7296"
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text7300"
+ y="587.36206"
+ x="463.63654"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.19563866px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="587.36206"
+ x="463.63654"
+ id="tspan7302"
+ sodipodi:role="line">OpenGGSN</tspan></text>
+ </g>
+ <g
+ id="g7760"
+ transform="translate(194.88189,-1.0472595e-5)">
+ <rect
+ y="520.86615"
+ x="566.92914"
+ height="124.01575"
+ width="70.866142"
+ id="rect7298"
+ style="opacity:1;fill:#aaccff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text7304"
+ y="578.02979"
+ x="602.13538"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.76203346px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="578.02979"
+ x="602.13538"
+ id="tspan7306"
+ sodipodi:role="line">3rd Party</tspan><tspan
+ id="tspan7308"
+ y="598.9823"
+ x="602.13538"
+ sodipodi:role="line">GGSN</tspan></text>
+ </g>
+ <g
+ transform="translate(336.61418,-141.7323)"
+ id="g6607-2-29">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4636-0-22-3"
+ d="m 549.2126,786.61417 0,53.14961"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker4644-5-7-3);marker-end:url(#marker4690-8-3-5)" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5147-4-8"
+ y="816.18896"
+ x="561.25983"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="816.18896"
+ x="561.25983"
+ sodipodi:role="line"
+ id="tspan7108-9">GTP/IP</tspan></text>
+ </g>
+ <g
+ transform="translate(442.91339,-141.73231)"
+ id="g6607-2-2-7">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4636-0-22-8-4"
+ d="m 549.2126,786.61417 0,53.14961"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker4644-5-7-1-1);marker-end:url(#marker4690-8-3-0-1)" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5147-4-0-3"
+ y="816.18896"
+ x="561.25983"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="816.18896"
+ x="561.25983"
+ sodipodi:role="line"
+ id="tspan7108-4-9">GTP/IP</tspan></text>
+ </g>
+ <g
+ transform="translate(389.76379,-2.094519e-5)"
+ id="g7316-9">
+ <rect
+ y="520.86615"
+ x="460.62991"
+ height="124.01575"
+ width="88.58268"
+ id="rect7296-1"
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text7300-6"
+ y="587.36206"
+ x="463.63654"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.19563866px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="587.36206"
+ x="463.63654"
+ id="tspan7302-8"
+ sodipodi:role="line">OpenGGSN</tspan></text>
+ </g>
+ <g
+ id="g7754"
+ transform="translate(194.88189,-1.0472595e-5)">
+ <rect
+ y="520.86615"
+ x="761.81104"
+ height="124.01575"
+ width="70.866142"
+ id="rect7298-4"
+ style="opacity:1;fill:#aaccff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text7304-9"
+ y="578.02979"
+ x="797.01727"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.76203346px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="578.02979"
+ x="797.01727"
+ id="tspan7306-7"
+ sodipodi:role="line">3rd Party</tspan><tspan
+ id="tspan7308-4"
+ y="598.9823"
+ x="797.01727"
+ sodipodi:role="line">GGSN</tspan></text>
+ </g>
+ <g
+ id="g7738"
+ transform="translate(194.88189,-1.0472595e-5)">
+ <rect
+ y="520.86615"
+ x="248.03149"
+ height="124.01575"
+ width="141.73228"
+ id="rect5904"
+ style="opacity:1;fill:#aaccff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text4178-6-2-6"
+ y="557.16223"
+ x="256.00607"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="557.16223"
+ x="256.00607"
+ id="tspan4180-4-5-5"
+ sodipodi:role="line">3rd Party MSC</tspan></text>
+ <text
+ sodipodi:linespacing="125%"
+ id="text6612"
+ y="574.01575"
+ x="265.74802"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="574.01575"
+ x="265.74802"
+ id="tspan6614"
+ sodipodi:role="line">and/or existing other</tspan><tspan
+ id="tspan6616"
+ y="589.01575"
+ x="265.74802"
+ sodipodi:role="line">core network elements</tspan></text>
+ </g>
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect7782"
+ width="0"
+ height="0"
+ x="0"
+ y="0"
+ transform="translate(0,308.26772)" />
+ <g
+ id="g10674"
+ transform="translate(194.88189,-159.44882)">
+ <rect
+ y="520.86615"
+ x="-70.866142"
+ height="106.29921"
+ width="141.73228"
+ id="rect7768"
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text7796"
+ y="567.38342"
+ x="-66.036423"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.77378654px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="567.38342"
+ x="-66.036423"
+ id="tspan7798"
+ sodipodi:role="line">Linux Call Router</tspan></text>
+ <text
+ sodipodi:linespacing="125%"
+ id="text7800"
+ y="591.02368"
+ x="-46.175999"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="591.02368"
+ x="-46.175999"
+ id="tspan7802"
+ sodipodi:role="line">SoftSwitch / PBX</tspan></text>
+ <g
+ transform="translate(-159.44882,-53.149605)"
+ id="g9111">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="53.247967"
+ y="583.76086"
+ id="text5948-5"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5950-4"
+ x="53.247967"
+ y="583.76086">SIP</tspan></text>
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker5966-7);marker-end:url(#marker6072-4)"
+ d="m 88.582677,591.73228 -53.149606,0"
+ id="path5958-7"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="translate(-159.44882,-53.149605)"
+ id="g9094">
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker5966-7-7);marker-end:url(#marker6072-4-9)"
+ d="m 88.582677,627.16535 -53.149606,0"
+ id="path5958-7-1"
+ inkscape:connector-curvature="0" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text8985"
+ y="617.31396"
+ x="43.049"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="617.31396"
+ x="43.049"
+ id="tspan8987"
+ sodipodi:role="line">E1/PRI</tspan></text>
+ </g>
+ <g
+ transform="translate(-159.44882,-53.149605)"
+ id="g9077">
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker5966-7-1);marker-end:url(#marker6072-4-5)"
+ d="m 88.582677,662.59842 -53.149606,0"
+ id="path5958-7-5"
+ inkscape:connector-curvature="0" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text8989"
+ y="654.43243"
+ x="52.441154"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="654.43243"
+ x="52.441154"
+ id="tspan8991"
+ sodipodi:role="line">BRI</tspan></text>
+ </g>
+ </g>
+ <text
+ sodipodi:linespacing="125%"
+ id="text9116"
+ y="420.49026"
+ x="354.04681"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="420.49026"
+ x="354.04681"
+ id="tspan9118"
+ sodipodi:role="line">External SMS</tspan><tspan
+ id="tspan9120"
+ y="435.49026"
+ x="354.04681"
+ sodipodi:role="line">Applications</tspan></text>
+ <g
+ id="g9402"
+ transform="translate(283.46457,-318.89764)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4636-5-9"
+ d="m 230.31496,786.61417 0,53.14961"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker4644-9-4);marker-end:url(#marker4690-3-8)" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5151-9-1"
+ y="816.18896"
+ x="239.52753"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="816.18896"
+ x="239.52753"
+ id="tspan5153-33-5"
+ sodipodi:role="line">SS7</tspan></text>
+ </g>
+ <g
+ id="g9402-1"
+ transform="translate(566.92913,-318.89764)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4636-5-9-4"
+ d="m 230.31496,786.61417 0,53.14961"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker4644-9-4-5);marker-end:url(#marker4690-3-8-6)" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5151-9-1-3"
+ y="816.18896"
+ x="239.52753"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="816.18896"
+ x="239.52753"
+ id="tspan5153-33-5-5"
+ sodipodi:role="line">SS7</tspan></text>
+ </g>
+ <g
+ id="g9402-8"
+ transform="translate(761.81102,-318.89764)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4636-5-9-0"
+ d="m 230.31496,786.61417 0,53.14961"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker4644-9-4-2);marker-end:url(#marker4690-3-8-1)" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5151-9-1-0"
+ y="816.18896"
+ x="239.52753"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="816.18896"
+ x="239.52753"
+ id="tspan5153-33-5-7"
+ sodipodi:role="line">SS7</tspan></text>
+ </g>
+ <g
+ id="g10071"
+ transform="translate(35.433068,4.4314868e-5)">
+ <rect
+ y="839.76373"
+ x="88.58268"
+ height="159.44882"
+ width="141.73228"
+ id="rect10069"
+ style="opacity:1;fill:#aaccff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text4178-5"
+ y="882.36993"
+ x="98.257568"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="882.36993"
+ x="98.257568"
+ id="tspan4180-40"
+ sodipodi:role="line">3rd Party BTS</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="115.93767"
+ y="909.9455"
+ id="text9931"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="115.93767"
+ y="909.9455"
+ id="tspan9935">Some support for</tspan><tspan
+ sodipodi:role="line"
+ x="115.93767"
+ y="924.9455"
+ id="tspan9939">* Siemens</tspan><tspan
+ sodipodi:role="line"
+ x="115.93767"
+ y="939.9455"
+ id="tspan9943">* Nokia</tspan><tspan
+ sodipodi:role="line"
+ x="115.93767"
+ y="954.9455"
+ id="tspan9947">* Ericsson</tspan><tspan
+ sodipodi:role="line"
+ x="115.93767"
+ y="969.9455"
+ id="tspan9949">* ip.access</tspan></text>
+ </g>
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect10082"
+ width="301.18109"
+ height="265.74802"
+ x="124.01575"
+ y="520.86615" />
+ <g
+ transform="translate(-88.582677,-2.7749754e-6)"
+ id="g5461-7-5">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4636-4-8"
+ d="m 230.31496,786.61417 0,53.14961"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker4644-7-1);marker-end:url(#marker4690-4-1)" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5151-0-5"
+ y="816.18896"
+ x="239.52753"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="816.18896"
+ x="239.52753"
+ id="tspan5153-3-0"
+ sodipodi:role="line">Abis/IP</tspan></text>
+ </g>
+ <g
+ transform="translate(-17.716535,-2.7749754e-6)"
+ id="g5461-7-4">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4636-4-1"
+ d="m 230.31496,786.61417 0,53.14961"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker4644-7-6);marker-end:url(#marker4690-4-3)" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5151-0-8"
+ y="816.18896"
+ x="239.52753"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="816.18896"
+ x="239.52753"
+ id="tspan5153-3-6"
+ sodipodi:role="line">Abis/E1</tspan></text>
+ </g>
+ <g
+ id="g9402-3"
+ transform="translate(124.01575,-318.89764)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4636-5-9-3"
+ d="m 230.31496,786.61417 0,53.14961"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker4644-9-4-22);marker-end:url(#marker4690-3-8-0)" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5151-9-1-6"
+ y="816.18896"
+ x="239.52753"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="816.18896"
+ x="239.52753"
+ id="tspan5153-33-5-1"
+ sodipodi:role="line">SMPP</tspan></text>
+ </g>
+ <g
+ id="g9402-2"
+ transform="translate(-35.43307,-318.89764)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4636-5-9-1"
+ d="m 230.31496,786.61417 0,53.14961"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker4644-9-4-3);marker-end:url(#marker4690-3-8-00)" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text5151-9-1-2"
+ y="816.18896"
+ x="239.52753"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:LMSans10;-inkscape-font-specification:LMSans10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="816.18896"
+ x="239.52753"
+ id="tspan5153-33-5-50"
+ sodipodi:role="line">MNCC</tspan></text>
+ </g>
+ </g>
+</svg>
diff --git a/2017/running_osmo_gsm-osmocon2017/running-osmo-gsm.adoc b/2017/running_osmo_gsm-osmocon2017/running-osmo-gsm.adoc
new file mode 100644
index 0000000..1f87a65
--- /dev/null
+++ b/2017/running_osmo_gsm-osmocon2017/running-osmo-gsm.adoc
@@ -0,0 +1,495 @@
+Running a basic Osmocom GSM network
+===================================
+:author: Harald Welte <laforge@gnumonks.org>
+:copyright: sysmocom - s.f.m.c. GmbH (License: CC-BY-SA)
+:backend: slidy
+:max-width: 45em
+//:data-uri:
+//:icons:
+
+
+== What this talk is about
+
+[role="incremental"]
+* Implementing GSM/GPRS network elements as FOSS
+* Applied Protocol Archaeology
+* Doing all of that on top of Linux (in userspace)
+
+
+== Running your own Internet-style network
+
+* use off-the-shelf hardware (x86, Ethernet card)
+* use any random Linux distribution
+* configure Linux kernel TCP/IP network stack
+** enjoy fancy features like netfilter/iproute2/tc
+* use apache/lighttpd/nginx on the server
+* use Firefox/chromium/konqueor/lynx on the client
+* do whatever modification/optimization on any part of the stack
+
+
+== Running your own GSM network
+
+Until 2009 the situation looked like this:
+
+* go to Ericsson/Huawei/ZTE/Nokia/Alcatel/...
+* spend lots of time convincing them that you're an eligible customer
+* spend a six-digit figure for even the most basic full network
+* end up with black boxes you can neither study nor improve
+
+[role="incremental"]
+- WTF?
+- I've grown up with FOSS and the Internet. I know a better world.
+
+
+== Why no cellular FOSS?
+
+- both cellular (2G/3G/4G) and TCP/IP/HTTP protocol specs are publicly
+ available for decades. Can you believe it?
+- Internet protocol stacks have lots of FOSS implementations
+- cellular protocol stacks have no FOSS implementations for the
+ first almost 20 years of their existence?
+[role="incremental"]
+- it's the classic conflict
+ * classic circuit-switched telco vs. the BBS community
+ * ITU-T/OSI/ISO vs. Arpanet and TCP/IP
+
+
+== Enter Osmocom
+
+In 2008, some people (most present in this room) started to write FOSS
+for GSM
+
+- to boldly go where no FOSS hacker has gone before
+[role="incremental"]
+** where protocol stacks are deep
+** and acronyms are plentiful
+** we went from `bs11-abis` to `bsc_hack` to 'OpenBSC'
+** many other related projects were created
+** finally leading to the 'Osmocom' umbrella project
+
+
+== Classic GSM network architecture
+
+image::Gsm_structures.svg[width=850]
+
+
+== GSM Acronyms, Radio Access Network
+
+MS::
+ Mobile Station (your phone)
+BTS::
+ Base Transceiver Station, consists of 1..n TRX
+TRX::
+ Transceiver for one radio channel, serves 8 TS
+TS::
+ Timeslots in the GSM radio interface; each runs a specific combination of logical channels
+BSC::
+ Base Station Controller
+
+
+== GSM Acronyms, Core Network
+
+MSC::
+ Mobile Switching Center; Terminates MM + CC Sub-layers
+
+HLR::
+ Home Location Register; Subscriber Database
+
+SMSC::
+ SMS Service Center
+
+
+== GSM Acronyms, Layer 2 + 3
+
+LAPDm::
+ Link Access Protocol, D-Channel. Like LAPD in ISDN
+RR::
+ Radio Resource (establish/release dedicated channels)
+MM::
+ Mobility Management (registration, location, authentication)
+CC::
+ Call Control (voice, circuit switched data, fax)
+CM::
+ Connection Management
+
+
+== Osmocom GSM components
+
+image::osmocom-gsm.svg[width=850]
+
+
+== Classic GSM network as digraph
+
+[graphviz]
+----
+digraph G {
+ rankdir=LR;
+ MS0 [label="MS"]
+ MS1 [label="MS"]
+ MS2 [label="MS"]
+ MS3 [label="MS"]
+ BTS0 [label="BTS"]
+ BTS1 [label="BTS"]
+ MSC [label="MSC/VLR"]
+ HLR [label="HLR/AUC"]
+ MS0->BTS0 [label="Um"]
+ MS1->BTS0 [label="Um"]
+ MS2->BTS1 [label="Um"]
+ MS3->BTS1 [label="Um"]
+ BTS0->BSC [label="Abis"]
+ BTS1->BSC [label="Abis"]
+ BSC->MSC [label="A"]
+ MSC->HLR [label="C"]
+ MSC->EIR [label="F"]
+ MSC->SMSC
+}
+----
+
+== Simplified OsmoNITB GSM network
+
+[graphviz]
+----
+digraph G {
+ rankdir=LR;
+ MS0 [label="MS"]
+ MS1 [label="MS"]
+ MS2 [label="MS"]
+ MS3 [label="MS"]
+ BTS0 [label="BTS"]
+ BTS1 [label="BTS"]
+ MS0->BTS0 [label="Um"]
+ MS1->BTS0 [label="Um"]
+ MS2->BTS1 [label="Um"]
+ MS3->BTS1 [label="Um"]
+ BTS0->BSC [label="Abis"]
+ BTS1->BSC [label="Abis"]
+ subgraph cluster_nitb {
+ label = "OsmoNITB";
+ BSC
+ MSC [label="MSC/VLR"]
+ HLR [label="HLR/AUC"]
+ BSC->MSC [label="A"]
+ MSC->HLR [label="C"]
+ MSC->EIR [label="F"]
+ MSC->SMSC;
+ }
+}
+----
+
+which further reduces to the following minimal setup:
+
+[graphviz]
+----
+digraph G {
+ rankdir=LR;
+ MS0 [label="MS"]
+ BTS0 [label="BTS"]
+ MS0->BTS0 [label="Um"]
+ BTS0->BSC [label="Abis"]
+ BSC [label="OsmoNITB"];
+}
+----
+
+So our minimal setup is a 'Phone', a 'BTS' and 'OsmoNITB'.
+
+== Which BTS to use?
+
+* Proprietary BTS of classic vendor
+** Siemens BS-11 is what we started with
+** Nokia, Ericsson, and others available 2nd hand
+* 'OsmoBTS' software implementation, running with
+** Proprietary HW + PHY (DSP): 'sysmoBTS', or
+** General purpose SDR (like USRP) + 'OsmoTRX'
+
+We assume a sysmoBTS in the following tutorial
+
+
+== OsmoBTS Overview
+
+image::osmo-bts.svg[]
+
+* Implementation of GSM BTS
+* supports variety of hardware/PHY options
+** `osmo-bts-sysmo`: BTS family by sysmocom
+** `osmo-bts-trx`: Used with 'OsmoTRX' + general-purpose SDR
+** `osmo-bts-octphy`: Octasic OCTBTS hardware / OCTSDR-2G PHY
+** `osmo-bts-litecell15`: Nutaq Litecell 1.5 hardware/PHY
+
+See separate talk about BTS hardware options later today.
+
+== BTS Hardware vs. BTS software
+
+* A classic GSM BTS is hardware + software
+* It has two interfaces
+** Um to the radio side, towards phones
+** Abis to the wired back-haul side, towards BSC
+* with today's flexible architecture, this is not always true
+** the hardware might just be a network-connected SDR and BTS software
+runs o a different CPU/computer, _or_
+** the BTS and BSC, or even the NITB may run on the same board
+
+
+== Physical vs. Logical Arch (sysmoBTS)
+
+[graphviz]
+----
+include::arch-sysmobts.dot[]
+----
+
+[graphviz]
+----
+include::arch-sysmobts-allinone.dot[]
+----
+
+== Physical vs. Logical Arch (SDR e.g. USRP B2xx)
+
+[graphviz]
+----
+include::arch-usrp.dot[]
+----
+
+[graphviz]
+----
+include::arch-usrp-allinone.dot[]
+----
+
+== IP layer traffic
+
+* Abis/IP signaling runs inside IPA multiplex inside TCP
+** Port 3002 and 3003 betewen BTS and BSC
+** Connections initiated from BTS to BSC
+* Voice data is carried in RTP/UDP on dynamic ports
+
+=> Make sure you permit the above communication in your
+network/firewall config
+
+== Configuring Osmocom software
+
+* all _native_ Osmo* GSM infrastructure programs share common architecture, as
+ defined by various libraries 'libosmo{core,gsm,vty,abis,netif,...}'
+* part of this is configuration handling
+** interactive configuration via command line interface (*vty*), similar
+ to Cisco routers
+** based on a fork of the VTY code from Zebra/Quagga, now 'libosmovty'
+* you can manually edit the config file,
+* or use `configure terminal` and interactively change it
+
+
+== Configuring OsmoBTS
+
+* 'OsmoBTS' in our example scenario runs on the embedded ARM/Linux system
+ inside the 'sysmoBTS'
+* we access the 'sysmoBTS' via serial console or ssh
+* we then edit the configuration file `/etc/osmocom/osmo-bts.cfg` as
+ described in the following slide
+
+
+== Configuring OsmoBTS
+
+----
+bts 0
+ band DCS1800 <1>
+ ipa unit-id 1801 0 <2>
+ oml remote-ip 192.168.100.11 <3>
+----
+<1> the GSM frequency band in which the BTS operates
+<2> the unit-id by which this BTS identifies itself to the BSC
+<3> the IP address of the BSC (to establish the OML connection towards it)
+
+NOTE: All other configuration is downloaded by the BSC via OML. So most
+BTS settings are configured in the BSC/NITB configuration file.
+
+
+== Purpose of Unit ID
+
+* Unit IDs consist of three parts:
+** Site Number, BTS Number, TRX Number
+
+[graphviz]
+----
+graph G {
+ rankdir=LR;
+ BTS0 [label="BTS\nUnit 5/0[/0]"]
+ BTS1 [label="BTS\nUnit 23/0[/0]"]
+ BTS2 [label="BTS\nUnit 42/0[/0]"]
+ NAT
+ BSC [label="BSC/NITB"]
+
+ BTS0 -- NAT [label="10.9.23.5"]
+ BTS1 -- NAT [label="10.9.23.23"]
+ BTS2 -- NAT [label="10.9.23.42"]
+ NAT -- BSC [label="172.16.23.42"]
+}
+----
+
+* source IP of all BTSs would be identical
+
+=> BSC identifies BTS on Unit ID, not on Source IP!
+
+
+== Configuring OsmoNITB
+
+* 'OsmoNITB' is the `osmo-nitb` executable built from the `openbsc`
+ source tree / git repository
+** just your usual `git clone && autoreconf -fi && ./configure && make install`
+** (in reality, the `libosmo*` dependencies are required first...)
+** nightly packages for Debian 8, Ubuntu 16.04 and 16.10 available
+* 'OsmoNITB' runs on any Linux system, like your speakers' laptop
+** you can actually also run it on the ARM/Linux of the 'sysmoBTS' itself,
+ having a literal 'Network In The Box' with power as only external
+ dependency
+
+
+== Configuring OsmoNITB
+
+----
+network
+ network country code 1 <1>
+ mobile network code 1 <2>
+ short name Osmocom <3>
+ long name Osmocom
+ auth policy closed <4>
+ encryption a5 0 <5>
+----
+<1> MCC (Country Code) e.g. 262 for Germany; 1 == Test
+<2> MNC (Network Code) e.g. mcc=262, mnc=02 == Vodafone; 1 == Test
+<3> Operator name to be sent to the phone *after* registration
+<4> Only accept subscribers (SIM cards) explicitly authorized in HLR
+<5> Use A5/0 (== no encryption)
+
+
+== Configuring BTS in OsmoNITB (BTS)
+
+----
+network
+ bts 0
+ type sysmobts <1>
+ band DCS1800 <2>
+ ms max power 33 <3>
+ periodic location update 6 <4>
+ ip.access unit_id 1801 0 <5>
+ codec-support fr hr efr amr <6>
+----
+<1> type of the BTS that we use (must match BTS)
+<2> frequency band of the BTS (must match BTS)
+<3> maximum transmit power phones are permitted (33 dBm == 2W)
+<4> interval at which phones should send periodic location update (6 minutes)
+<5> Unit ID of the BTS (must match BTS)
+<6> Voice codecs supported by the BTS
+
+
+== Configuring BTS in OsmoNITB (TRX)
+
+----
+network
+ bts 0
+ trx 0
+ arfcn 871 <1>
+ max_power_red 0 <2>
+ timeslot 0
+ phys_chan_config CCCH+SDCCH4 <3>
+ timeslot 1
+ phys_chan_config TCH/F <4>
+ ...
+ timeslot 7
+ phys_chan_config PDCH <5>
+----
+<1> The RF channel number used by this TRX
+<2> The maximum power *reduction* in dBm. 0 = no reduction
+<3> Every BTS needs need one timeslot with a CCCH
+<4> We configure TS1 to TS6 as TCH/F for voice
+<5> We configure TS6 as PDCH for GPRS
+
+
+== What a GSM phone does after power-up
+
+* Check SIM card for last cell before switch-off
+** if that cell is found again, use that
+** if not, perform a network scan
+*** try to find strong carriers, check if they contain BCCH
+*** create a list of available cells + networks
+*** if one of the networks MCC+MNC matches first digits of 'IMSI', this is
+the home network, which has preference over others
+* perform 'LOCATION UPDATE' (TYPE=IMSI ATTACH) procedure to network
+* when network sends 'LOCATION UPDATE ACCEPT', *camp* on that cell
+
+-> let's check if we can perform 'LOCATION UPDATE' on our own network
+
+
+== Verifying our network
+
+* look at stderr of 'OsmoBTS' and 'OsmoNITB'
+** 'OsmoBTS' will terminate if Abis cannot be set-up
+** expected to be re-spawned by init / systemd
+* use MS to search for networks, try manual registration
+* observe registration attempts `logging level mm info`
+
+-> should show 'LOCATION UPDATE' request / reject / accept
+
+* use the VTY to explore system state (`show *`)
+* use the VTY to change subscriber parameters like extension number
+
+
+== Exploring your GSM networks services
+
+* use `*#100#` from any registered MS to obtain own number
+* voice calls from mobile to mobile
+* SMS from mobile to mobile
+* SMS to/from external applications (via SMPP)
+* voice to/from external PBX (via MNCC)
+* explore the VTY interfaces of all network elements
+** send SMS from the command line
+** experiment with 'silent call' feature
+** experiment with logging levels
+* use wireshark to investigate GSM protocols
+
+
+== Using the VTY
+
+* The VTY can be used not only to configure, but also to interactively
+ explore the system status (`show` commands)
+* Every Osmo* program has its own telnet port
+|===
+|Program|Telnet Port
+|OsmoPCU|4240
+|OsmoBTS|4241
+|OsmoNITB|4242
+|OsmoSGSN|4245
+|===
+* ports are bound to 127.0.0.1 by default
+* try tab-completion, `?` and `list` commands
+
+== Using the VTY (continued)
+
+* e.g. `show subsciber` to display data about subscriber:
+----
+OpenBSC> show subscriber imsi 901700000003804
+ ID: 12, Authorized: 1
+ Extension: 3804
+ LAC: 0/0x0
+ IMSI: 901700000003804
+ TMSI: F2D4FA0A
+ Expiration Time: Mon, 07 Dec 2015 09:45:16 +0100
+ Paging: not paging Requests: 0
+ Use count: 1
+----
+
+* try `show bts`, `show trx`, `show lchan`, `show statistics`, ...
+
+== Further Reading
+
+User Manuals::
+See http://ftp.osmocom.org/docs/latest/
+Wiki::
+See http://osmocom.org/projects/openbsc
+
+== The End
+
+* so long, and thanks for all the fish
+* I hope you have questions!
+
+[role="incremental"]
+* have fun exploring mobile technologies using Osmocom
+* interested in working with more acronyms? Come join the project!
+
+* Check out https://osmocom.org/ and openbsc@lists.osmocom.org
diff --git a/2017/running_osmo_gsm-osmocon2017/running-osmo-gsm.html b/2017/running_osmo_gsm-osmocon2017/running-osmo-gsm.html
new file mode 100644
index 0000000..c162c20
--- /dev/null
+++ b/2017/running_osmo_gsm-osmocon2017/running-osmo-gsm.html
@@ -0,0 +1,5018 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+<head>
+<title>Running a basic Osmocom GSM network</title>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="copyright" content="Copyright &#169; sysmocom - s.f.m.c. GmbH (License: CC-BY-SA)" />
+<meta name="generator" content="AsciiDoc 8.6.9" />
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overriden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+/* slidy.css
+
+ Copyright (c) 2005-2010 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+ W3C liability, trademark, document use and software licensing
+ rules apply, see:
+
+ http://www.w3.org/Consortium/Legal/copyright-documents
+ http://www.w3.org/Consortium/Legal/copyright-software
+*/
+
+/*
+ SJR: 2010-09-29: Modified for AsciiDoc slidy backend.
+ Mostly just commented out stuff that is handled by AsciiDoc's CSS files.
+*/
+
+body
+{
+ margin: 0 0 0 0;
+ padding: 0 0 0 0;
+ width: 100%;
+ height: 100%;
+ color: black;
+ background-color: white;
+/*
+ font-family: "Gill Sans MT", "Gill Sans", GillSans, sans-serif;
+*/
+ font-size: 14pt;
+}
+
+div.toolbar {
+ position: fixed; z-index: 200;
+ top: auto; bottom: 0; left: 0; right: 0;
+ height: 1.2em; text-align: right;
+ padding-left: 1em;
+ padding-right: 1em;
+ font-size: 60%;
+ color: red;
+ background-color: rgb(240,240,240);
+ border-top: solid 1px rgb(180,180,180);
+}
+
+div.toolbar span.copyright {
+ color: black;
+ margin-left: 0.5em;
+}
+
+div.initial_prompt {
+ position: absolute;
+ z-index: 1000;
+ bottom: 1.2em;
+ width: 90%;
+ background-color: rgb(200,200,200);
+ opacity: 0.35;
+ background-color: rgb(200,200,200, 0.35);
+ cursor: pointer;
+}
+
+div.initial_prompt p.help {
+ text-align: center;
+}
+
+div.initial_prompt p.close {
+ text-align: right;
+ font-style: italic;
+}
+
+div.slidy_toc {
+ position: absolute;
+ z-index: 300;
+ width: 60%;
+ max-width: 30em;
+ height: 30em;
+ overflow: auto;
+ top: auto;
+ right: auto;
+ left: 4em;
+ bottom: 4em;
+ padding: 1em;
+ background: rgb(240,240,240);
+ border-style: solid;
+ border-width: 2px;
+ font-size: 60%;
+}
+
+div.slidy_toc .toc_heading {
+ text-align: center;
+ width: 100%;
+ margin: 0;
+ margin-bottom: 1em;
+ border-bottom-style: solid;
+ border-bottom-color: rgb(180,180,180);
+ border-bottom-width: 1px;
+}
+
+div.slide {
+ z-index: 20;
+ margin: 0 0 0 0;
+ padding-top: 0;
+ padding-bottom: 0;
+ padding-left: 20px;
+ padding-right: 20px;
+ border-width: 0;
+ clear: both;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ line-height: 120%;
+ background-color: transparent;
+}
+
+div.background {
+ display: none;
+}
+
+div.handout {
+ margin-left: 20px;
+ margin-right: 20px;
+}
+
+div.slide.titlepage {
+ text-align: center;
+}
+
+div.slide.titlepage.h1 {
+ padding-top: 10%;
+}
+
+div.slide h1 {
+ padding-left: 0;
+ padding-right: 20pt;
+ padding-top: 4pt;
+ padding-bottom: 4pt;
+ margin-top: 0;
+ margin-left: 0;
+ margin-right: 60pt;
+ margin-bottom: 0.5em;
+ display: block;
+ font-size: 160%;
+ line-height: 1.2em;
+ background: transparent;
+}
+
+div.toc {
+ position: absolute;
+ top: auto;
+ bottom: 4em;
+ left: 4em;
+ right: auto;
+ width: 60%;
+ max-width: 30em;
+ height: 30em;
+ border: solid thin black;
+ padding: 1em;
+ background: rgb(240,240,240);
+ color: black;
+ z-index: 300;
+ overflow: auto;
+ display: block;
+ visibility: visible;
+}
+
+div.toc-heading {
+ width: 100%;
+ border-bottom: solid 1px rgb(180,180,180);
+ margin-bottom: 1em;
+ text-align: center;
+}
+
+/*
+pre {
+ font-size: 80%;
+ font-weight: bold;
+ line-height: 120%;
+ padding-top: 0.2em;
+ padding-bottom: 0.2em;
+ padding-left: 1em;
+ padding-right: 1em;
+ border-style: solid;
+ border-left-width: 1em;
+ border-top-width: thin;
+ border-right-width: thin;
+ border-bottom-width: thin;
+ border-color: #95ABD0;
+ color: #00428C;
+ background-color: #E4E5E7;
+}
+*/
+
+/*
+li pre { margin-left: 0; }
+
+blockquote { font-style: italic }
+
+img { background-color: transparent }
+
+p.copyright { font-size: smaller }
+*/
+
+.center { text-align: center }
+.footnote { font-size: smaller; margin-left: 2em; }
+
+/*
+a img { border-width: 0; border-style: none }
+*/
+
+a:visited { color: navy }
+a:link { color: navy }
+a:hover { color: red; text-decoration: underline }
+a:active { color: red; text-decoration: underline }
+
+a {text-decoration: none}
+.navbar a:link {color: white}
+.navbar a:visited {color: yellow}
+.navbar a:active {color: red}
+.navbar a:hover {color: red}
+
+/*
+ul { list-style-type: square; }
+ul ul { list-style-type: disc; }
+ul ul ul { list-style-type: circle; }
+ul ul ul ul { list-style-type: disc; }
+li { margin-left: 0.5em; margin-top: 0.5em; }
+li li { font-size: 85%; font-style: italic }
+li li li { font-size: 85%; font-style: normal }
+*/
+
+div dt
+{
+ margin-left: 0;
+ margin-top: 1em;
+ margin-bottom: 0.5em;
+ font-weight: bold;
+}
+div dd
+{
+ margin-left: 2em;
+ margin-bottom: 0.5em;
+}
+
+
+/*
+p,pre,ul,ol,blockquote,h2,h3,h4,h5,h6,dl,table {
+ margin-left: 1em;
+ margin-right: 1em;
+}
+*/
+
+p.subhead { font-weight: bold; margin-top: 2em; }
+
+.smaller { font-size: smaller }
+.bigger { font-size: 130% }
+
+/*
+td,th { padding: 0.2em }
+*/
+
+ul {
+ margin: 0.5em 1.5em 0.5em 1.5em;
+ padding: 0;
+}
+
+ol {
+ margin: 0.5em 1.5em 0.5em 1.5em;
+ padding: 0;
+}
+
+ul { list-style-type: square; }
+ul ul { list-style-type: disc; }
+ul ul ul { list-style-type: circle; }
+ul ul ul ul { list-style-type: disc; }
+
+/*
+ul li {
+ list-style: square;
+ margin: 0.1em 0em 0.6em 0;
+ padding: 0 0 0 0;
+ line-height: 140%;
+}
+
+ol li {
+ margin: 0.1em 0em 0.6em 1.5em;
+ padding: 0 0 0 0px;
+ line-height: 140%;
+ list-style-type: decimal;
+}
+
+li ul li {
+ font-size: 85%;
+ font-style: italic;
+ list-style-type: disc;
+ background: transparent;
+ padding: 0 0 0 0;
+}
+li li ul li {
+ font-size: 85%;
+ font-style: normal;
+ list-style-type: circle;
+ background: transparent;
+ padding: 0 0 0 0;
+}
+li li li ul li {
+ list-style-type: disc;
+ background: transparent;
+ padding: 0 0 0 0;
+}
+
+li ol li {
+ list-style-type: decimal;
+}
+
+
+li li ol li {
+ list-style-type: decimal;
+}
+*/
+
+/*
+ setting class="outline" on ol or ul makes it behave as an
+ ouline list where blocklevel content in li elements is
+ hidden by default and can be expanded or collapsed with
+ mouse click. Set class="expand" on li to override default
+*/
+
+ol.outline li:hover { cursor: pointer }
+ol.outline li.nofold:hover { cursor: default }
+
+ul.outline li:hover { cursor: pointer }
+ul.outline li.nofold:hover { cursor: default }
+
+ol.outline { list-style:decimal; }
+ol.outline ol { list-style-type:lower-alpha }
+
+ol.outline li.nofold {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/nofold-dim.gif) no-repeat 0px 0.5em;
+}
+ol.outline li.unfolded {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/fold-dim.gif) no-repeat 0px 0.5em;
+}
+ol.outline li.folded {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/unfold-dim.gif) no-repeat 0px 0.5em;
+}
+ol.outline li.unfolded:hover {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/fold.gif) no-repeat 0px 0.5em;
+}
+ol.outline li.folded:hover {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/unfold.gif) no-repeat 0px 0.5em;
+}
+
+ul.outline li.nofold {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/nofold-dim.gif) no-repeat 0px 0.5em;
+}
+ul.outline li.unfolded {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/fold-dim.gif) no-repeat 0px 0.5em;
+}
+ul.outline li.folded {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/unfold-dim.gif) no-repeat 0px 0.5em;
+}
+ul.outline li.unfolded:hover {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/fold.gif) no-repeat 0px 0.5em;
+}
+ul.outline li.folded:hover {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/unfold.gif) no-repeat 0px 0.5em;
+}
+
+/* for slides with class "title" in table of contents */
+a.titleslide { font-weight: bold; font-style: italic }
+
+/*
+ hide images for work around for save as bug
+ where browsers fail to save images used by CSS
+*/
+img.hidden { display: none; visibility: hidden }
+div.initial_prompt { display: none; visibility: hidden }
+
+ div.slide {
+ visibility: visible;
+ position: inherit;
+ }
+ div.handout {
+ border-top-style: solid;
+ border-top-width: thin;
+ border-top-color: black;
+ }
+
+@media screen {
+ .hidden { display: none; visibility: visible }
+
+ div.slide.hidden { display: block; visibility: visible }
+ div.handout.hidden { display: block; visibility: visible }
+ div.background { display: none; visibility: hidden }
+ body.single_slide div.initial_prompt { display: block; visibility: visible }
+ body.single_slide div.background { display: block; visibility: visible }
+ body.single_slide div.background.hidden { display: none; visibility: hidden }
+ body.single_slide .invisible { visibility: hidden }
+ body.single_slide .hidden { display: none; visibility: hidden }
+ body.single_slide div.slide { position: absolute }
+ body.single_slide div.handout { display: none; visibility: hidden }
+}
+
+@media print {
+ .hidden { display: block; visibility: visible }
+
+/*
+ div.slide pre { font-size: 60%; padding-left: 0.5em; }
+*/
+ div.toolbar { display: none; visibility: hidden; }
+ div.slidy_toc { display: none; visibility: hidden; }
+ div.background { display: none; visibility: hidden; }
+ div.slide { page-break-before: always }
+ /* :first-child isn't reliable for print media */
+ div.slide.first-slide { page-break-before: avoid }
+}
+
+
+/* SJR: AsciiDoc slidy backend tweaks */
+
+ol, ul {
+ margin: 0.8em 1.5em 0.8em 1.8em;
+}
+li > ul, li > ol {
+ margin-top: 0.5em;
+}
+
+.outline > li.folded,
+.outline > li.unfolded {
+ color: #527bbd;
+}
+ul > li{ color: #aaa; }
+ul > li > *, ol > li > * { color: black; }
+
+li {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+/* slidy.js
+
+ Copyright (c) 2005-2010 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+ W3C liability, trademark, document use and software licensing
+ rules apply, see:
+
+ http://www.w3.org/Consortium/Legal/copyright-documents
+ http://www.w3.org/Consortium/Legal/copyright-software
+*/
+
+// the slidy object implementation
+var w3c_slidy = {
+ // classify which kind of browser we're running under
+ ns_pos: (typeof window.pageYOffset!='undefined'),
+ khtml: ((navigator.userAgent).indexOf("KHTML") >= 0 ? true : false),
+ opera: ((navigator.userAgent).indexOf("Opera") >= 0 ? true : false),
+ ipad: ((navigator.userAgent).indexOf("iPad") >= 0 ? true : false),
+ iphone: ((navigator.userAgent).indexOf("iPhone") >= 0 ? true : false),
+ ie: (typeof document.all != "undefined" && !this.opera),
+ ie6: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 6") != -1),
+ ie7: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 7") != -1),
+ ie8: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 8") != -1),
+ ie9: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 9") != -1),
+ keyboardless: (this.ipad || this.iphone),
+
+ // are we running as XHTML? (doesn't work on Opera)
+ is_xhtml: /xml/.test(document.contentType),
+
+ slide_number: 0, // integer slide count: 0, 1, 2, ...
+ slide_number_element: null, // element containing slide number
+ slides: [], // set to array of slide div's
+ notes: [], // set to array of handout div's
+ backgrounds: [], // set to array of background div's
+ toolbar: null, // element containing toolbar
+ title: null, // document title
+ last_shown: null, // last incrementally shown item
+ eos: null, // span element for end of slide indicator
+ toc: null, // table of contents
+ outline: null, // outline element with the focus
+ selected_text_len: 0, // length of drag selection on document
+ view_all: 0, // 1 to view all slides + handouts
+ want_toolbar: true, // user preference to show/hide toolbar
+ mouse_click_enabled: true, // enables left click for next slide
+ scroll_hack: 0, // IE work around for position: fixed
+ disable_slide_click: false, // used by clicked anchors
+
+ lang: "en", // updated to language specified by html file
+
+ help_anchor: null, // used for keyboard focus hack in showToolbar()
+ help_page: "http://www.w3.org/Talks/Tools/Slidy2/help/help.html",
+ help_text: "Navigate with mouse click, space bar, Cursor Left/Right, " +
+ "or Pg Up and Pg Dn. Use S and B to change font size.",
+
+ size_index: 0,
+ size_adjustment: 0,
+ sizes: new Array("10pt", "12pt", "14pt", "16pt", "18pt", "20pt",
+ "22pt", "24pt", "26pt", "28pt", "30pt", "32pt"),
+
+ // needed for efficient resizing
+ last_width: 0,
+ last_height: 0,
+
+
+ // Needed for cross browser support for relative width/height on
+ // object elements. The work around is to save width/height attributes
+ // and then to recompute absolute width/height dimensions on resizing
+ objects: [],
+
+ // attach initialiation event handlers
+ set_up: function () {
+ var init = function() { w3c_slidy.init(); };
+ if (typeof window.addEventListener != "undefined")
+ window.addEventListener("load", init, false);
+ else
+ window.attachEvent("onload", init);
+ },
+
+ hide_slides: function () {
+ if (document.body && !w3c_slidy.initialized)
+ document.body.style.visibility = "hidden";
+ else
+ setTimeout(w3c_slidy.hide_slides, 50);
+ },
+
+ // hack to persuade IE to compute correct document height
+ // as needed for simulating fixed positioning of toolbar
+ ie_hack: function () {
+ window.resizeBy(0,-1);
+ window.resizeBy(0, 1);
+ },
+
+ init: function () {
+ //alert("slidy starting test 10");
+ document.body.style.visibility = "visible";
+ w3c_slidy_i18n.init();
+ this.add_toolbar();
+ this.wrap_implicit_slides();
+ this.collect_slides();
+ this.collect_notes();
+ this.collect_backgrounds();
+ this.objects = document.body.getElementsByTagName("object");
+ this.patch_anchors();
+ this.slide_number = this.find_slide_number(location.href);
+ window.offscreenbuffering = true;
+ this.size_adjustment = this.find_size_adjust();
+ this.time_left = this.find_duration();
+ this.hide_image_toolbar(); // suppress IE image toolbar popup
+ this.init_outliner(); // activate fold/unfold support
+ this.title = document.title;
+
+ // work around for opera bug
+ this.is_xhtml = (document.body.tagName == "BODY" ? false : true);
+
+ if (this.slides.length > 0)
+ {
+ var slide = this.slides[this.slide_number];
+
+ if (this.slide_number > 0)
+ {
+ this.set_visibility_all_incremental("visible");
+ this.last_shown = this.previous_incremental_item(null);
+ this.set_eos_status(true);
+ }
+ else
+ {
+ this.last_shown = null;
+ this.set_visibility_all_incremental("hidden");
+ this.set_eos_status(!this.next_incremental_item(this.last_shown));
+ }
+
+ this.set_location();
+ this.add_class(this.slides[0], "first-slide");
+ w3c_slidy.show_slide(slide);
+ }
+
+ this.toc = this.table_of_contents();
+
+ this.add_initial_prompt();
+
+ // bind event handlers without interfering with custom page scripts
+ // Tap events behave too weirdly to support clicks reliably on
+ // iPhone and iPad, so exclude these from click handler
+
+ if (!this.keyboardless)
+ this.add_listener(document.body, "click", this.mouse_button_click);
+
+ this.add_listener(document, "keydown", this.key_down);
+ this.add_listener(document, "keypress", this.key_press);
+ this.add_listener(window, "resize", this.resized);
+ this.add_listener(window, "scroll", this.scrolled);
+ this.add_listener(window, "unload", this.unloaded);
+
+ if (!document.body.onclick)
+ document.body.onclick = function () { };
+
+ this.single_slide_view();
+
+ //this.set_location();
+
+ this.resized();
+
+ if (this.ie7)
+ setTimeout(w3c_slidy.ie_hack, 100);
+
+ this.show_toolbar();
+
+ // for back button detection
+ setInterval(function () { w3c_slidy.check_location(); }, 200);
+ w3c_slidy.initialized = true;
+ },
+
+ // create div element with links to each slide
+ table_of_contents: function () {
+ var toc = this.create_element("div");
+ this.add_class(toc, "slidy_toc hidden");
+ //toc.setAttribute("tabindex", "0");
+
+ var heading = this.create_element("div");
+ this.add_class(heading, "toc-heading");
+ heading.innerHTML = "Table of Contents".localize();
+
+ toc.appendChild(heading);
+ var previous = null;
+
+ for (var i = 0; i < this.slides.length; ++i)
+ {
+ var title = this.has_class(this.slides[i], "title");
+ var num = document.createTextNode((i + 1) + ". ");
+
+ toc.appendChild(num);
+
+ var a = this.create_element("a");
+ a.setAttribute("href", "#(" + (i+1) + ")");
+
+ if (title)
+ this.add_class(a, "titleslide");
+
+ var name = document.createTextNode(this.slide_name(i));
+ a.appendChild(name);
+ a.onclick = w3c_slidy.toc_click;
+ a.onkeydown = w3c_slidy.toc_keydown;
+ a.previous = previous;
+
+ if (previous)
+ previous.next = a;
+
+ toc.appendChild(a);
+
+ if (i == 0)
+ toc.first = a;
+
+ if (i < this.slides.length - 1)
+ {
+ var br = this.create_element("br");
+ toc.appendChild(br);
+ }
+
+ previous = a;
+ }
+
+ toc.focus = function () {
+ if (this.first)
+ this.first.focus();
+ }
+
+ toc.onmouseup = w3c_slidy.mouse_button_up;
+
+ toc.onclick = function (e) {
+ e||(e=window.event);
+
+ if (w3c_slidy.selected_text_len <= 0)
+ w3c_slidy.hide_table_of_contents();
+
+ w3c_slidy.stop_propagation(e);
+
+ if (e.cancel != undefined)
+ e.cancel = true;
+
+ if (e.returnValue != undefined)
+ e.returnValue = false;
+
+ return false;
+ };
+
+ document.body.insertBefore(toc, document.body.firstChild);
+ return toc;
+ },
+
+ is_shown_toc: function () {
+ return !w3c_slidy.has_class(w3c_slidy.toc, "hidden");
+ },
+
+ show_table_of_contents: function () {
+ w3c_slidy.remove_class(w3c_slidy.toc, "hidden");
+ var toc = w3c_slidy.toc;
+ toc.focus();
+
+ if (w3c_slidy.ie7 && w3c_slidy.slide_number == 0)
+ setTimeout(w3c_slidy.ie_hack, 100);
+ },
+
+ hide_table_of_contents: function () {
+ w3c_slidy.add_class(w3c_slidy.toc, "hidden");
+
+ if (!w3c_slidy.opera)
+ w3c_slidy.help_anchor.focus();
+ },
+
+ toggle_table_of_contents: function () {
+ if (w3c_slidy.is_shown_toc())
+ w3c_slidy.hide_table_of_contents();
+ else
+ w3c_slidy.show_table_of_contents();
+ },
+
+ // called on clicking toc entry
+ toc_click: function (e) {
+ if (!e)
+ e = window.event;
+
+ var target = w3c_slidy.get_target(e);
+
+ if (target && target.nodeType == 1)
+ {
+ var uri = target.getAttribute("href");
+
+ if (uri)
+ {
+ //alert("going to " + uri);
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.slide_number = w3c_slidy.find_slide_number(uri);
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_location();
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+ w3c_slidy.show_slide(slide);
+ //target.focus();
+
+ try
+ {
+ if (!w3c_slidy.opera)
+ w3c_slidy.help_anchor.focus();
+ }
+ catch (e)
+ {
+ }
+ }
+ }
+
+ w3c_slidy.hide_table_of_contents(e);
+ if (w3c_slidy.ie7) w3c_slidy.ie_hack();
+ w3c_slidy.stop_propagation(e);
+ return w3c_slidy.cancel(e);
+ },
+
+ // called onkeydown for toc entry
+ toc_keydown: function (event) {
+ var key;
+
+ if (!event)
+ var event = window.event;
+
+ // kludge around NS/IE differences
+ if (window.event)
+ key = window.event.keyCode;
+ else if (event.which)
+ key = event.which;
+ else
+ return true; // Yikes! unknown browser
+
+ // ignore event if key value is zero
+ // as for alt on Opera and Konqueror
+ if (!key)
+ return true;
+
+ // check for concurrent control/command/alt key
+ // but are these only present on mouse events?
+
+ if (event.ctrlKey || event.altKey)
+ return true;
+
+ if (key == 13)
+ {
+ var uri = this.getAttribute("href");
+
+ if (uri)
+ {
+ //alert("going to " + uri);
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.slide_number = w3c_slidy.find_slide_number(uri);
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_location();
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+ w3c_slidy.show_slide(slide);
+ //target.focus();
+
+ try
+ {
+ if (!w3c_slidy.opera)
+ w3c_slidy.help_anchor.focus();
+ }
+ catch (e)
+ {
+ }
+ }
+
+ w3c_slidy.hide_table_of_contents();
+
+ if (self.ie7)
+ w3c_slidy.ie_hack();
+
+ return w3c_slidy.cancel(event);
+ }
+
+ if (key == 40 && this.next)
+ {
+ this.next.focus();
+ return w3c_slidy.cancel(event);
+ }
+
+ if (key == 38 && this.previous)
+ {
+ this.previous.focus();
+ return w3c_slidy.cancel(event);
+ }
+
+ return true;
+ },
+
+
+ // ### OBSOLETE ###
+ before_print: function () {
+ this.show_all_slides();
+ this.hide_toolbar();
+ alert("before print");
+ },
+
+ // ### OBSOLETE ###
+ after_print: function () {
+ if (!this.view_all)
+ {
+ this.single_slide_view();
+ this.show_toolbar();
+ }
+ alert("after print");
+ },
+
+ // ### OBSOLETE ###
+ print_slides: function () {
+ this.before_print();
+ window.print();
+ this.after_print();
+ },
+
+ // ### OBSOLETE ?? ###
+ toggle_view: function () {
+ if (this.view_all)
+ {
+ this.single_slide_view();
+ this.show_toolbar();
+ this.view_all = 0;
+ }
+ else
+ {
+ this.show_all_slides();
+ this.hide_toolbar();
+ this.view_all = 1;
+ }
+ },
+
+ // prepare for printing ### OBSOLETE ###
+ show_all_slides: function () {
+ this.remove_class(document.body, "single_slide");
+ this.set_visibility_all_incremental("visible");
+ },
+
+ // restore after printing ### OBSOLETE ###
+ single_slide_view: function () {
+ this.add_class(document.body, "single_slide");
+ this.set_visibility_all_incremental("visible");
+ this.last_shown = this.previous_incremental_item(null);
+ },
+
+ // suppress IE's image toolbar pop up
+ hide_image_toolbar: function () {
+ if (!this.ns_pos)
+ {
+ var images = document.getElementsByTagName("IMG");
+
+ for (var i = 0; i < images.length; ++i)
+ images[i].setAttribute("galleryimg", "no");
+ }
+ },
+
+ unloaded: function (e) {
+ //alert("unloaded");
+ },
+
+ // Safari and Konqueror don't yet support getComputedStyle()
+ // and they always reload page when location.href is updated
+ is_KHTML: function () {
+ var agent = navigator.userAgent;
+ return (agent.indexOf("KHTML") >= 0 ? true : false);
+ },
+
+ // find slide name from first h1 element
+ // default to document title + slide number
+ slide_name: function (index) {
+ var name = null;
+ var slide = this.slides[index];
+
+ var heading = this.find_heading(slide);
+
+ if (heading)
+ name = this.extract_text(heading);
+
+ if (!name)
+ name = this.title + "(" + (index + 1) + ")";
+
+ name.replace(/\&/g, "&amp;");
+ name.replace(/\</g, "&lt;");
+ name.replace(/\>/g, "&gt;");
+
+ return name;
+ },
+
+ // find first h1 element in DOM tree
+ find_heading: function (node) {
+ if (!node || node.nodeType != 1)
+ return null;
+
+ if (node.nodeName == "H1" || node.nodeName == "h1")
+ return node;
+
+ var child = node.firstChild;
+
+ while (child)
+ {
+ node = this.find_heading(child);
+
+ if (node)
+ return node;
+
+ child = child.nextSibling;
+ }
+
+ return null;
+ },
+
+ // recursively extract text from DOM tree
+ extract_text: function (node) {
+ if (!node)
+ return "";
+
+ // text nodes
+ if (node.nodeType == 3)
+ return node.nodeValue;
+
+ // elements
+ if (node.nodeType == 1)
+ {
+ node = node.firstChild;
+ var text = "";
+
+ while (node)
+ {
+ text = text + this.extract_text(node);
+ node = node.nextSibling;
+ }
+
+ return text;
+ }
+
+ return "";
+ },
+
+ // find copyright text from meta element
+ find_copyright: function () {
+ var name, content;
+ var meta = document.getElementsByTagName("meta");
+
+ for (var i = 0; i < meta.length; ++i)
+ {
+ name = meta[i].getAttribute("name");
+ content = meta[i].getAttribute("content");
+
+ if (name == "copyright")
+ return content;
+ }
+
+ return null;
+ },
+
+ find_size_adjust: function () {
+ var name, content, offset;
+ var meta = document.getElementsByTagName("meta");
+
+ for (var i = 0; i < meta.length; ++i)
+ {
+ name = meta[i].getAttribute("name");
+ content = meta[i].getAttribute("content");
+
+ if (name == "font-size-adjustment")
+ return 1 * content;
+ }
+
+ return 1;
+ },
+
+ // <meta name="duration" content="20" /> for 20 minutes
+ find_duration: function () {
+ var name, content, offset;
+ var meta = document.getElementsByTagName("meta");
+
+ for (var i = 0; i < meta.length; ++i)
+ {
+ name = meta[i].getAttribute("name");
+ content = meta[i].getAttribute("content");
+
+ if (name == "duration")
+ return 60000 * content;
+ }
+
+ return null;
+ },
+
+ replace_by_non_breaking_space: function (str) {
+ for (var i = 0; i < str.length; ++i)
+ str[i] = 160;
+ },
+
+ // ### CHECK ME ### is use of "li" okay for text/html?
+ // for XHTML do we also need to specify namespace?
+ init_outliner: function () {
+ var items = document.getElementsByTagName("li");
+
+ for (var i = 0; i < items.length; ++i)
+ {
+ var target = items[i];
+
+ if (!this.has_class(target.parentNode, "outline"))
+ continue;
+
+ target.onclick = this.outline_click;
+/* ### more work needed for IE6
+ if (!this.ns_pos)
+ {
+ target.onmouseover = this.hover_outline;
+ target.onmouseout = this.unhover_outline;
+ }
+*/
+ if (this.foldable(target))
+ {
+ target.foldable = true;
+ target.onfocus = function () {w3c_slidy.outline = this;};
+ target.onblur = function () {w3c_slidy.outline = null;};
+
+ if (!target.getAttribute("tabindex"))
+ target.setAttribute("tabindex", "0");
+
+ if (this.has_class(target, "expand"))
+ this.unfold(target);
+ else
+ this.fold(target);
+ }
+ else
+ {
+ this.add_class(target, "nofold");
+ target.visible = true;
+ target.foldable = false;
+ }
+ }
+ },
+
+ foldable: function (item) {
+ if (!item || item.nodeType != 1)
+ return false;
+
+ var node = item.firstChild;
+
+ while (node)
+ {
+ if (node.nodeType == 1 && this.is_block(node))
+ return true;
+
+ node = node.nextSibling;
+ }
+
+ return false;
+ },
+
+ // ### CHECK ME ### switch to add/remove "hidden" class
+ fold: function (item) {
+ if (item)
+ {
+ this.remove_class(item, "unfolded");
+ this.add_class(item, "folded");
+ }
+
+ var node = item ? item.firstChild : null;
+
+ while (node)
+ {
+ if (node.nodeType == 1 && this.is_block(node)) // element
+ {
+ w3c_slidy.add_class(node, "hidden");
+ }
+
+ node = node.nextSibling;
+ }
+
+ item.visible = false;
+ },
+
+ // ### CHECK ME ### switch to add/remove "hidden" class
+ unfold: function (item) {
+ if (item)
+ {
+ this.add_class(item, "unfolded");
+ this.remove_class(item, "folded");
+ }
+
+ var node = item ? item.firstChild : null;
+
+ while (node)
+ {
+ if (node.nodeType == 1 && this.is_block(node)) // element
+ {
+ w3c_slidy.remove_class(node, "hidden");
+ }
+
+ node = node.nextSibling;
+ }
+
+ item.visible = true;
+ },
+
+ outline_click: function (e) {
+ if (!e)
+ e = window.event;
+
+ var rightclick = false;
+ var target = w3c_slidy.get_target(e);
+
+ while (target && target.visible == undefined)
+ target = target.parentNode;
+
+ if (!target)
+ return true;
+
+ if (e.which)
+ rightclick = (e.which == 3);
+ else if (e.button)
+ rightclick = (e.button == 2);
+
+ if (!rightclick && target.visible != undefined)
+ {
+ if (target.foldable)
+ {
+ if (target.visible)
+ w3c_slidy.fold(target);
+ else
+ w3c_slidy.unfold(target);
+ }
+
+ w3c_slidy.stop_propagation(e);
+ e.cancel = true;
+ e.returnValue = false;
+ }
+
+ return false;
+ },
+
+ add_initial_prompt: function () {
+ var prompt = this.create_element("div");
+ prompt.setAttribute("class", "initial_prompt");
+
+ var p1 = this.create_element("p");
+ prompt.appendChild(p1);
+ p1.setAttribute("class", "help");
+
+ if (this.keyboardless)
+ p1.innerHTML = "Tap footer to move to next slide";
+ else
+ p1.innerHTML = "Space or Right Arrow to move to next " +
+ "slide, click help below for more details";
+
+ this.add_listener(prompt, "click", function (e) {
+ document.body.removeChild(prompt);
+ w3c_slidy.stop_propagation(e);
+
+ if (e.cancel != undefined)
+ e.cancel = true;
+
+ if (e.returnValue != undefined)
+ e.returnValue = false;
+
+ return false;
+ });
+
+ document.body.appendChild(prompt);
+ this.initial_prompt = prompt;
+ setTimeout(function() {document.body.removeChild(prompt);}, 5000);
+ },
+
+ add_toolbar: function () {
+ var counter, page;
+
+ this.toolbar = this.create_element("div");
+ this.toolbar.setAttribute("class", "toolbar");
+
+ // a reasonably behaved browser
+ if (this.ns_pos || !this.ie6)
+ {
+ var right = this.create_element("div");
+ right.setAttribute("style", "float: right; text-align: right");
+
+ counter = this.create_element("span")
+ counter.innerHTML = "slide".localize() + " n/m";
+ right.appendChild(counter);
+ this.toolbar.appendChild(right);
+
+ var left = this.create_element("div");
+ left.setAttribute("style", "text-align: left");
+
+ // global end of slide indicator
+ this.eos = this.create_element("span");
+ this.eos.innerHTML = "* ";
+ left.appendChild(this.eos);
+
+ var help = this.create_element("a");
+ help.setAttribute("href", this.help_page);
+ help.setAttribute("title", this.help_text.localize());
+ help.innerHTML = "help?".localize();
+ left.appendChild(help);
+ this.help_anchor = help; // save for focus hack
+
+ var gap1 = document.createTextNode(" ");
+ left.appendChild(gap1);
+
+ var contents = this.create_element("a");
+ contents.setAttribute("href", "javascript:w3c_slidy.toggle_table_of_contents()");
+ contents.setAttribute("title", "table of contents".localize());
+ contents.innerHTML = "contents?".localize();
+ left.appendChild(contents);
+
+ var gap2 = document.createTextNode(" ");
+ left.appendChild(gap2);
+
+ var copyright = this.find_copyright();
+
+ if (copyright)
+ {
+ var span = this.create_element("span");
+ span.className = "copyright";
+ span.innerHTML = copyright;
+ left.appendChild(span);
+ }
+
+ this.toolbar.setAttribute("tabindex", "0");
+ this.toolbar.appendChild(left);
+ }
+ else // IE6 so need to work around its poor CSS support
+ {
+ this.toolbar.style.position = (this.ie7 ? "fixed" : "absolute");
+ this.toolbar.style.zIndex = "200";
+ this.toolbar.style.width = "99.9%";
+ this.toolbar.style.height = "1.2em";
+ this.toolbar.style.top = "auto";
+ this.toolbar.style.bottom = "0";
+ this.toolbar.style.left = "0";
+ this.toolbar.style.right = "0";
+ this.toolbar.style.textAlign = "left";
+ this.toolbar.style.fontSize = "60%";
+ this.toolbar.style.color = "red";
+ this.toolbar.borderWidth = 0;
+ this.toolbar.className = "toolbar";
+ this.toolbar.style.background = "rgb(240,240,240)";
+
+ // would like to have help text left aligned
+ // and page counter right aligned, floating
+ // div's don't work, so instead use nested
+ // absolutely positioned div's.
+
+ var sp = this.create_element("span");
+ sp.innerHTML = "&nbsp;&nbsp;*&nbsp;";
+ this.toolbar.appendChild(sp);
+ this.eos = sp; // end of slide indicator
+
+ var help = this.create_element("a");
+ help.setAttribute("href", this.help_page);
+ help.setAttribute("title", this.help_text.localize());
+ help.innerHTML = "help?".localize();
+ this.toolbar.appendChild(help);
+ this.help_anchor = help; // save for focus hack
+
+ var gap1 = document.createTextNode(" ");
+ this.toolbar.appendChild(gap1);
+
+ var contents = this.create_element("a");
+ contents.setAttribute("href", "javascript:toggleTableOfContents()");
+ contents.setAttribute("title", "table of contents".localize());
+ contents.innerHTML = "contents?".localize();
+ this.toolbar.appendChild(contents);
+
+ var gap2 = document.createTextNode(" ");
+ this.toolbar.appendChild(gap2);
+
+ var copyright = this.find_copyright();
+
+ if (copyright)
+ {
+ var span = this.create_element("span");
+ span.innerHTML = copyright;
+ span.style.color = "black";
+ span.style.marginLeft = "0.5em";
+ this.toolbar.appendChild(span);
+ }
+
+ counter = this.create_element("div")
+ counter.style.position = "absolute";
+ counter.style.width = "auto"; //"20%";
+ counter.style.height = "1.2em";
+ counter.style.top = "auto";
+ counter.style.bottom = 0;
+ counter.style.right = "0";
+ counter.style.textAlign = "right";
+ counter.style.color = "red";
+ counter.style.background = "rgb(240,240,240)";
+
+ counter.innerHTML = "slide".localize() + " n/m";
+ this.toolbar.appendChild(counter);
+ }
+
+ // ensure that click isn't passed through to the page
+ this.toolbar.onclick =
+ function (e) {
+ if (!e)
+ e = window.event;
+
+ var target = e.target;
+
+ if (!target && e.srcElement)
+ target = e.srcElement;
+
+ // work around Safari bug
+ if (target && target.nodeType == 3)
+ target = target.parentNode;
+
+ w3c_slidy.stop_propagation(e);
+
+ if (target && target.nodeName.toLowerCase() != "a")
+ w3c_slidy.mouse_button_click(e);
+ };
+
+ this.slide_number_element = counter;
+ this.set_eos_status(false);
+ document.body.appendChild(this.toolbar);
+ },
+
+ // wysiwyg editors make it hard to use div elements
+ // e.g. amaya loses the div when you copy and paste
+ // this function wraps div elements around implicit
+ // slides which start with an h1 element and continue
+ // up to the next heading or div element
+ wrap_implicit_slides: function () {
+ var i, heading, node, next, div;
+ var headings = document.getElementsByTagName("h1");
+
+ if (!headings)
+ return;
+
+ for (i = 0; i < headings.length; ++i)
+ {
+ heading = headings[i];
+
+ if (heading.parentNode != document.body)
+ continue;
+
+ node = heading.nextSibling;
+
+ div = document.createElement("div");
+ this.add_class(div, "slide");
+ document.body.replaceChild(div, heading);
+ div.appendChild(heading);
+
+ while (node)
+ {
+ if (node.nodeType == 1 && // an element
+ (node.nodeName == "H1" ||
+ node.nodeName == "h1" ||
+ node.nodeName == "DIV" ||
+ node.nodeName == "div"))
+ break;
+
+ next = node.nextSibling;
+ node = document.body.removeChild(node);
+ div.appendChild(node);
+ node = next;
+ }
+ }
+ },
+
+// return new array of all slides
+ collect_slides: function () {
+ var slides = new Array();
+ var divs = document.body.getElementsByTagName("div");
+
+ for (var i = 0; i < divs.length; ++i)
+ {
+ div = divs.item(i);
+
+ if (this.has_class(div, "slide"))
+ {
+ // add slide to collection
+ slides[slides.length] = div;
+
+ // hide each slide as it is found
+ this.add_class(div, "hidden");
+
+ // add dummy <br/> at end for scrolling hack
+ var node1 = document.createElement("br");
+ div.appendChild(node1);
+ var node2 = document.createElement("br");
+ div.appendChild(node2);
+ }
+ else if (this.has_class(div, "background"))
+ { // work around for Firefox SVG reload bug
+ // which otherwise replaces 1st SVG graphic with 2nd
+ div.style.display = "block";
+ }
+ }
+
+ this.slides = slides;
+ },
+
+ // return new array of all <div class="handout">
+ collect_notes: function () {
+ var notes = new Array();
+ var divs = document.body.getElementsByTagName("div");
+
+ for (var i = 0; i < divs.length; ++i)
+ {
+ div = divs.item(i);
+
+ if (this.has_class(div, "handout"))
+ {
+ // add note to collection
+ notes[notes.length] = div;
+
+ // and hide it
+ this.add_class(div, "hidden");
+ }
+ }
+
+ this.notes = notes;
+ },
+
+ // return new array of all <div class="background">
+ // including named backgrounds e.g. class="background titlepage"
+ collect_backgrounds: function () {
+ var backgrounds = new Array();
+ var divs = document.body.getElementsByTagName("div");
+
+ for (var i = 0; i < divs.length; ++i)
+ {
+ div = divs.item(i);
+
+ if (this.has_class(div, "background"))
+ {
+ // add background to collection
+ backgrounds[backgrounds.length] = div;
+
+ // and hide it
+ this.add_class(div, "hidden");
+ }
+ }
+
+ this.backgrounds = backgrounds;
+ },
+
+ // set click handlers on all anchors
+ patch_anchors: function () {
+ var self = w3c_slidy;
+ var handler = function (event) {
+ // compare this.href with location.href
+ // for link to another slide in this doc
+
+ if (self.page_address(this.href) == self.page_address(location.href))
+ {
+ // yes, so find new slide number
+ var newslidenum = self.find_slide_number(this.href);
+
+ if (newslidenum != self.slide_number)
+ {
+ var slide = self.slides[self.slide_number];
+ self.hide_slide(slide);
+ self.slide_number = newslidenum;
+ slide = self.slides[self.slide_number];
+ self.show_slide(slide);
+ self.set_location();
+ }
+ }
+ else if (this.target == null)
+ location.href = this.href;
+
+ this.blur();
+ self.disable_slide_click = true;
+ };
+
+ var anchors = document.body.getElementsByTagName("a");
+
+ for (var i = 0; i < anchors.length; ++i)
+ {
+ if (window.addEventListener)
+ anchors[i].addEventListener("click", handler, false);
+ else
+ anchors[i].attachEvent("onclick", handler);
+ }
+ },
+
+ // ### CHECK ME ### see which functions are invoked via setTimeout
+ // either directly or indirectly for use of w3c_slidy vs this
+ show_slide_number: function () {
+ var timer = w3c_slidy.get_timer();
+ w3c_slidy.slide_number_element.innerHTML = timer + "slide".localize() + " " +
+ (w3c_slidy.slide_number + 1) + "/" + w3c_slidy.slides.length;
+ },
+
+ // every 200mS check if the location has been changed as a
+ // result of the user activating the Back button/menu item
+ // doesn't work for Opera < 9.5
+ check_location: function () {
+ var hash = location.hash;
+
+ if (w3c_slidy.slide_number > 0 && (hash == "" || hash == "#"))
+ w3c_slidy.goto_slide(0);
+ else if (hash.length > 2 && hash != "#("+(w3c_slidy.slide_number+1)+")")
+ {
+ var num = parseInt(location.hash.substr(2));
+
+ if (!isNaN(num))
+ w3c_slidy.goto_slide(num-1);
+ }
+
+ if (w3c_slidy.time_left && w3c_slidy.slide_number > 0)
+ {
+ w3c_slidy.show_slide_number();
+
+ if (w3c_slidy.time_left > 0)
+ w3c_slidy.time_left -= 200;
+ }
+ },
+
+ get_timer: function () {
+ var timer = "";
+ if (w3c_slidy.time_left)
+ {
+ var mins, secs;
+ secs = Math.floor(w3c_slidy.time_left/1000);
+ mins = Math.floor(secs / 60);
+ secs = secs % 60;
+ timer = (mins ? mins+"m" : "") + secs + "s ";
+ }
+
+ return timer;
+ },
+
+ // this doesn't push location onto history stack for IE
+ // for which a hidden iframe hack is needed: load page into
+ // the iframe with script that set's parent's location.hash
+ // but that won't work for standalone use unless we can
+ // create the page dynamically via a javascript: URL
+ set_location: function () {
+ var uri = w3c_slidy.page_address(location.href);
+ var hash = "#(" + (w3c_slidy.slide_number+1) + ")";
+
+ if (w3c_slidy.slide_number >= 0)
+ uri = uri + hash;
+
+ if (w3c_slidy.ie && !w3c_slidy.ie8)
+ w3c_slidy.push_hash(hash);
+
+ if (uri != location.href) // && !khtml
+ location.href = uri;
+
+ if (this.khtml)
+ hash = "(" + (w3c_slidy.slide_number+1) + ")";
+
+ if (!this.ie && location.hash != hash && location.hash != "")
+ location.hash = hash;
+
+ document.title = w3c_slidy.title + " (" + (w3c_slidy.slide_number+1) + ")";
+ w3c_slidy.show_slide_number();
+ },
+
+ page_address: function (uri) {
+ var i = uri.indexOf("#");
+
+ if (i < 0)
+ i = uri.indexOf("%23");
+
+ // check if anchor is entire page
+
+ if (i < 0)
+ return uri; // yes
+
+ return uri.substr(0, i);
+ },
+
+ // only used for IE6 and IE7
+ on_frame_loaded: function (hash) {
+ location.hash = hash;
+ var uri = w3c_slidy.page_address(location.href);
+ location.href = uri + hash;
+ },
+
+ // history hack with thanks to Bertrand Le Roy
+ push_hash: function (hash) {
+ if (hash == "") hash = "#(1)";
+ window.location.hash = hash;
+
+ var doc = document.getElementById("historyFrame").contentWindow.document;
+ doc.open("javascript:'<html></html>'");
+ // PWL modified this string literal to break the close script tag
+ // which otherwise gets parsed when incorporated
+ doc.write("<html><head><script type=\"text/javascript\">window.parent.w3c_slidy.on_frame_loaded('"+
+ (hash) + "');</" + "script></head><body>hello mum</body></html>");
+ doc.close();
+ },
+
+ // find current slide based upon location
+ // first find target anchor and then look
+ // for associated div element enclosing it
+ // finally map that to slide number
+ find_slide_number: function (uri) {
+ // first get anchor from page location
+
+ var i = uri.indexOf("#");
+
+ // check if anchor is entire page
+ if (i < 0)
+ return 0; // yes
+
+ var anchor = unescape(uri.substr(i+1));
+
+ // now use anchor as XML ID to find target
+ var target = document.getElementById(anchor);
+
+ if (!target)
+ {
+ // does anchor look like "(2)" for slide 2 ??
+ // where first slide is (1)
+ var re = /\((\d)+\)/;
+
+ if (anchor.match(re))
+ {
+ var num = parseInt(anchor.substring(1, anchor.length-1));
+
+ if (num > this.slides.length)
+ num = 1;
+
+ if (--num < 0)
+ num = 0;
+
+ return num;
+ }
+
+ // accept [2] for backwards compatibility
+ re = /\[(\d)+\]/;
+
+ if (anchor.match(re))
+ {
+ var num = parseInt(anchor.substring(1, anchor.length-1));
+
+ if (num > this.slides.length)
+ num = 1;
+
+ if (--num < 0)
+ num = 0;
+
+ return num;
+ }
+
+ // oh dear unknown anchor
+ return 0;
+ }
+
+ // search for enclosing slide
+
+ while (true)
+ {
+ // browser coerces html elements to uppercase!
+ if (target.nodeName.toLowerCase() == "div" &&
+ this.has_class(target, "slide"))
+ {
+ // found the slide element
+ break;
+ }
+
+ // otherwise try parent element if any
+
+ target = target.parentNode;
+
+ if (!target)
+ {
+ return 0; // no luck!
+ }
+ };
+
+ for (i = 0; i < slides.length; ++i)
+ {
+ if (slides[i] == target)
+ return i; // success
+ }
+
+ // oh dear still no luck
+ return 0;
+ },
+
+ previous_slide: function (incremental) {
+ if (!w3c_slidy.view_all)
+ {
+ var slide;
+
+ if ((incremental || w3c_slidy.slide_number == 0) && w3c_slidy.last_shown != null)
+ {
+ w3c_slidy.last_shown = w3c_slidy.hide_previous_item(w3c_slidy.last_shown);
+ w3c_slidy.set_eos_status(false);
+ }
+ else if (w3c_slidy.slide_number > 0)
+ {
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+
+ w3c_slidy.slide_number = w3c_slidy.slide_number - 1;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.set_visibility_all_incremental("visible");
+ w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);
+ w3c_slidy.set_eos_status(true);
+ w3c_slidy.show_slide(slide);
+ }
+
+ w3c_slidy.set_location();
+
+ if (!w3c_slidy.ns_pos)
+ w3c_slidy.refresh_toolbar(200);
+ }
+ },
+
+ next_slide: function (incremental) {
+ if (!w3c_slidy.view_all)
+ {
+ var slide, last = w3c_slidy.last_shown;
+
+ if (incremental || w3c_slidy.slide_number == w3c_slidy.slides.length - 1)
+ w3c_slidy.last_shown = w3c_slidy.reveal_next_item(w3c_slidy.last_shown);
+
+ if ((!incremental || w3c_slidy.last_shown == null) &&
+ w3c_slidy.slide_number < w3c_slidy.slides.length - 1)
+ {
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+
+ w3c_slidy.slide_number = w3c_slidy.slide_number + 1;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.show_slide(slide);
+ }
+ else if (!w3c_slidy.last_shown)
+ {
+ if (last && incremental)
+ w3c_slidy.last_shown = last;
+ }
+
+ w3c_slidy.set_location();
+
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+
+ if (!w3c_slidy.ns_pos)
+ w3c_slidy.refresh_toolbar(200);
+ }
+ },
+
+ // to first slide with nothing revealed
+ // i.e. state at start of presentation
+ first_slide: function () {
+ if (!w3c_slidy.view_all)
+ {
+ var slide;
+
+ if (w3c_slidy.slide_number != 0)
+ {
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+
+ w3c_slidy.slide_number = 0;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.show_slide(slide);
+ }
+
+ w3c_slidy.set_eos_status(
+ !w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+ w3c_slidy.set_location();
+ }
+ },
+
+ // goto last slide with everything revealed
+ // i.e. state at end of presentation
+ last_slide: function () {
+ if (!w3c_slidy.view_all)
+ {
+ var slide;
+
+ w3c_slidy.last_shown = null; //revealNextItem(lastShown);
+
+ if (w3c_slidy.last_shown == null &&
+ w3c_slidy.slide_number < w3c_slidy.slides.length - 1)
+ {
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.slide_number = w3c_slidy.slides.length - 1;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.set_visibility_all_incremental("visible");
+ w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);
+
+ w3c_slidy.show_slide(slide);
+ }
+ else
+ {
+ w3c_slidy.set_visibility_all_incremental("visible");
+ w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);
+ }
+
+ w3c_slidy.set_eos_status(true);
+ w3c_slidy.set_location();
+ }
+ },
+
+
+ // ### check this and consider add/remove class
+ set_eos_status: function (state) {
+ if (this.eos)
+ this.eos.style.color = (state ? "rgb(240,240,240)" : "red");
+ },
+
+ // first slide is 0
+ goto_slide: function (num) {
+ //alert("going to slide " + (num+1));
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.slide_number = num;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+ document.title = w3c_slidy.title + " (" + (w3c_slidy.slide_number+1) + ")";
+ w3c_slidy.show_slide(slide);
+ w3c_slidy.show_slide_number();
+ },
+
+
+ show_slide: function (slide) {
+ this.sync_background(slide);
+ window.scrollTo(0,0);
+ this.remove_class(slide, "hidden");
+ },
+
+ hide_slide: function (slide) {
+ this.add_class(slide, "hidden");
+ },
+
+ // show just the backgrounds pertinent to this slide
+ // when slide background-color is transparent
+ // this should now work with rgba color values
+ sync_background: function (slide) {
+ var background;
+ var bgColor;
+
+ if (slide.currentStyle)
+ bgColor = slide.currentStyle["backgroundColor"];
+ else if (document.defaultView)
+ {
+ var styles = document.defaultView.getComputedStyle(slide,null);
+
+ if (styles)
+ bgColor = styles.getPropertyValue("background-color");
+ else // broken implementation probably due Safari or Konqueror
+ {
+ //alert("defective implementation of getComputedStyle()");
+ bgColor = "transparent";
+ }
+ }
+ else
+ bgColor == "transparent";
+
+ if (bgColor == "transparent" ||
+ bgColor.indexOf("rgba") >= 0 ||
+ bgColor.indexOf("opacity") >= 0)
+ {
+ var slideClass = this.get_class_list(slide);
+
+ for (var i = 0; i < this.backgrounds.length; i++)
+ {
+ background = this.backgrounds[i];
+
+ var bgClass = this.get_class_list(background);
+
+ if (this.matching_background(slideClass, bgClass))
+ this.remove_class(background, "hidden");
+ else
+ this.add_class(background, "hidden");
+ }
+ }
+ else // forcibly hide all backgrounds
+ this.hide_backgrounds();
+ },
+
+ hide_backgrounds: function () {
+ for (var i = 0; i < this.backgrounds.length; i++)
+ {
+ background = this.backgrounds[i];
+ this.add_class(background, "hidden");
+ }
+ },
+
+ // compare classes for slide and background
+ matching_background: function (slideClass, bgClass) {
+ var i, count, pattern, result;
+
+ // define pattern as regular expression
+ pattern = /\w+/g;
+
+ // check background class names
+ result = bgClass.match(pattern);
+
+ for (i = count = 0; i < result.length; i++)
+ {
+ if (result[i] == "hidden")
+ continue;
+
+ if (result[i] == "background")
+ continue;
+
+ ++count;
+ }
+
+ if (count == 0) // default match
+ return true;
+
+ // check for matches and place result in array
+ result = slideClass.match(pattern);
+
+ // now check if desired name is present for background
+ for (i = count = 0; i < result.length; i++)
+ {
+ if (result[i] == "hidden")
+ continue;
+
+ if (this.has_token(bgClass, result[i]))
+ return true;
+ }
+
+ return false;
+ },
+
+ resized: function () {
+ var width = 0;
+
+ if ( typeof( window.innerWidth ) == 'number' )
+ width = window.innerWidth; // Non IE browser
+ else if (document.documentElement && document.documentElement.clientWidth)
+ width = document.documentElement.clientWidth; // IE6
+ else if (document.body && document.body.clientWidth)
+ width = document.body.clientWidth; // IE4
+
+ var height = 0;
+
+ if ( typeof( window.innerHeight ) == 'number' )
+ height = window.innerHeight; // Non IE browser
+ else if (document.documentElement && document.documentElement.clientHeight)
+ height = document.documentElement.clientHeight; // IE6
+ else if (document.body && document.body.clientHeight)
+ height = document.body.clientHeight; // IE4
+
+ if (height && (width/height > 1.05*1024/768))
+ {
+ width = height * 1024.0/768;
+ }
+
+ // IE fires onresize even when only font size is changed!
+ // so we do a check to avoid blocking < and > actions
+ if (width != w3c_slidy.last_width || height != w3c_slidy.last_height)
+ {
+ if (width >= 1100)
+ w3c_slidy.size_index = 5; // 4
+ else if (width >= 1000)
+ w3c_slidy.size_index = 4; // 3
+ else if (width >= 800)
+ w3c_slidy.size_index = 3; // 2
+ else if (width >= 600)
+ w3c_slidy.size_index = 2; // 1
+ else if (width)
+ w3c_slidy.size_index = 0;
+
+ // add in font size adjustment from meta element e.g.
+ // <meta name="font-size-adjustment" content="-2" />
+ // useful when slides have too much content ;-)
+
+ if (0 <= w3c_slidy.size_index + w3c_slidy.size_adjustment &&
+ w3c_slidy.size_index + w3c_slidy.size_adjustment < w3c_slidy.sizes.length)
+ w3c_slidy.size_index = w3c_slidy.size_index + w3c_slidy.size_adjustment;
+
+ // enables cross browser use of relative width/height
+ // on object elements for use with SVG and Flash media
+ w3c_slidy.adjust_object_dimensions(width, height);
+
+ if (document.body.style.fontSize != w3c_slidy.sizes[w3c_slidy.size_index])
+ {
+ document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];
+ }
+
+ w3c_slidy.last_width = width;
+ w3c_slidy.last_height = height;
+
+ // force reflow to work around Mozilla bug
+ if (w3c_slidy.ns_pos)
+ {
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.show_slide(slide);
+ }
+
+ // force correct positioning of toolbar
+ w3c_slidy.refresh_toolbar(200);
+ }
+ },
+
+ scrolled: function () {
+ if (w3c_slidy.toolbar && !w3c_slidy.ns_pos && !w3c_slidy.ie7)
+ {
+ w3c_slidy.hack_offset = w3c_slidy.scroll_x_offset();
+ // hide toolbar
+ w3c_slidy.toolbar.style.display = "none";
+
+ // make it reappear later
+ if (w3c_slidy.scrollhack == 0 && !w3c_slidy.view_all)
+ {
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, 1000);
+ w3c_slidy.scrollhack = 1;
+ }
+ }
+ },
+
+ hide_toolbar: function () {
+ w3c_slidy.add_class(w3c_slidy.toolbar, "hidden");
+ window.focus();
+ },
+
+ // used to ensure IE refreshes toolbar in correct position
+ refresh_toolbar: function (interval) {
+ if (!w3c_slidy.ns_pos && !w3c_slidy.ie7)
+ {
+ w3c_slidy.hide_toolbar();
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, interval);
+ }
+ },
+
+ // restores toolbar after short delay
+ show_toolbar: function () {
+ if (w3c_slidy.want_toolbar)
+ {
+ w3c_slidy.toolbar.style.display = "block";
+
+ if (!w3c_slidy.ns_pos)
+ {
+ // adjust position to allow for scrolling
+ var xoffset = w3c_slidy.scroll_x_offset();
+ w3c_slidy.toolbar.style.left = xoffset;
+ w3c_slidy.toolbar.style.right = xoffset;
+
+ // determine vertical scroll offset
+ //var yoffset = scrollYOffset();
+
+ // bottom is doc height - window height - scroll offset
+ //var bottom = documentHeight() - lastHeight - yoffset
+
+ //if (yoffset > 0 || documentHeight() > lastHeight)
+ // bottom += 16; // allow for height of scrollbar
+
+ w3c_slidy.toolbar.style.bottom = 0; //bottom;
+ }
+
+ w3c_slidy.remove_class(w3c_slidy.toolbar, "hidden");
+ }
+
+ w3c_slidy.scrollhack = 0;
+
+
+ // set the keyboard focus to the help link on the
+ // toolbar to ensure that document has the focus
+ // IE doesn't always work with window.focus()
+ // and this hack has benefit of Enter for help
+
+ try
+ {
+ if (!w3c_slidy.opera)
+ w3c_slidy.help_anchor.focus();
+ }
+ catch (e)
+ {
+ }
+ },
+
+// invoked via F key
+ toggle_toolbar: function () {
+ if (!w3c_slidy.view_all)
+ {
+ if (w3c_slidy.has_class(w3c_slidy.toolbar, "hidden"))
+ {
+ w3c_slidy.remove_class(w3c_slidy.toolbar, "hidden")
+ w3c_slidy.want_toolbar = 1;
+ }
+ else
+ {
+ w3c_slidy.add_class(w3c_slidy.toolbar, "hidden")
+ w3c_slidy.want_toolbar = 0;
+ }
+ }
+ },
+
+ scroll_x_offset: function () {
+ if (window.pageXOffset)
+ return self.pageXOffset;
+
+ if (document.documentElement &&
+ document.documentElement.scrollLeft)
+ return document.documentElement.scrollLeft;
+
+ if (document.body)
+ return document.body.scrollLeft;
+
+ return 0;
+ },
+
+ scroll_y_offset: function () {
+ if (window.pageYOffset)
+ return self.pageYOffset;
+
+ if (document.documentElement &&
+ document.documentElement.scrollTop)
+ return document.documentElement.scrollTop;
+
+ if (document.body)
+ return document.body.scrollTop;
+
+ return 0;
+ },
+
+ // looking for a way to determine height of slide content
+ // the slide itself is set to the height of the window
+ optimize_font_size: function () {
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+
+ //var dh = documentHeight(); //getDocHeight(document);
+ var dh = slide.scrollHeight;
+ var wh = getWindowHeight();
+ var u = 100 * dh / wh;
+
+ alert("window utilization = " + u + "% (doc "
+ + dh + " win " + wh + ")");
+ },
+
+ // from document object
+ get_doc_height: function (doc) {
+ if (!doc)
+ doc = document;
+
+ if (doc && doc.body && doc.body.offsetHeight)
+ return doc.body.offsetHeight; // ns/gecko syntax
+
+ if (doc && doc.body && doc.body.scrollHeight)
+ return doc.body.scrollHeight;
+
+ alert("couldn't determine document height");
+ },
+
+ get_window_height: function () {
+ if ( typeof( window.innerHeight ) == 'number' )
+ return window.innerHeight; // Non IE browser
+
+ if (document.documentElement && document.documentElement.clientHeight)
+ return document.documentElement.clientHeight; // IE6
+
+ if (document.body && document.body.clientHeight)
+ return document.body.clientHeight; // IE4
+ },
+
+ document_height: function () {
+ var sh, oh;
+
+ sh = document.body.scrollHeight;
+ oh = document.body.offsetHeight;
+
+ if (sh && oh)
+ {
+ return (sh > oh ? sh : oh);
+ }
+
+ // no idea!
+ return 0;
+ },
+
+ smaller: function () {
+ if (w3c_slidy.size_index > 0)
+ {
+ --w3c_slidy.size_index;
+ }
+
+ w3c_slidy.toolbar.style.display = "none";
+ document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.show_slide(slide);
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, 50);
+ },
+
+ bigger: function () {
+ if (w3c_slidy.size_index < w3c_slidy.sizes.length - 1)
+ {
+ ++w3c_slidy.size_index;
+ }
+
+ w3c_slidy.toolbar.style.display = "none";
+ document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.show_slide(slide);
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, 50);
+ },
+
+ // enables cross browser use of relative width/height
+ // on object elements for use with SVG and Flash media
+ // with thanks to Ivan Herman for the suggestion
+ adjust_object_dimensions: function (width, height) {
+ for( var i = 0; i < w3c_slidy.objects.length; i++ )
+ {
+ var obj = this.objects[i];
+ var mimeType = obj.getAttribute("type");
+
+ if (mimeType == "image/svg+xml" || mimeType == "application/x-shockwave-flash")
+ {
+ if ( !obj.initialWidth )
+ obj.initialWidth = obj.getAttribute("width");
+
+ if ( !obj.initialHeight )
+ obj.initialHeight = obj.getAttribute("height");
+
+ if ( obj.initialWidth && obj.initialWidth.charAt(obj.initialWidth.length-1) == "%" )
+ {
+ var w = parseInt(obj.initialWidth.slice(0, obj.initialWidth.length-1));
+ var newW = width * (w/100.0);
+ obj.setAttribute("width",newW);
+ }
+
+ if ( obj.initialHeight &&
+ obj.initialHeight.charAt(obj.initialHeight.length-1) == "%" )
+ {
+ var h = parseInt(obj.initialHeight.slice(0, obj.initialHeight.length-1));
+ var newH = height * (h/100.0);
+ obj.setAttribute("height", newH);
+ }
+ }
+ }
+ },
+
+ // needed for Opera to inhibit default behavior
+ // since Opera delivers keyPress even if keyDown
+ // was cancelled
+ key_press: function (event) {
+ if (!event)
+ event = window.event;
+
+ if (!w3c_slidy.key_wanted)
+ return w3c_slidy.cancel(event);
+
+ return true;
+ },
+
+ // See e.g. http://www.quirksmode.org/js/events/keys.html for keycodes
+ key_down: function (event) {
+ var key;
+
+ w3c_slidy.key_wanted = true;
+
+ if (!event)
+ event = window.event;
+
+ // kludge around NS/IE differences
+ if (window.event)
+ key = window.event.keyCode;
+ else if (event.which)
+ key = event.which;
+ else
+ return true; // Yikes! unknown browser
+
+ // ignore event if key value is zero
+ // as for alt on Opera and Konqueror
+ if (!key)
+ return true;
+
+ // check for concurrent control/command/alt key
+ // but are these only present on mouse events?
+
+ if (event.ctrlKey || event.altKey || event.metaKey)
+ return true;
+
+ // dismiss table of contents if visible
+ if (w3c_slidy.is_shown_toc() && key != 9 && key != 16 && key != 38 && key != 40)
+ {
+ w3c_slidy.hide_table_of_contents();
+
+ if (key == 27 || key == 84 || key == 67)
+ return w3c_slidy.cancel(event);
+ }
+
+ if (key == 34) // Page Down
+ {
+ if (w3c_slidy.view_all)
+ return true;
+
+ w3c_slidy.next_slide(false);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 33) // Page Up
+ {
+ if (w3c_slidy.view_all)
+ return true;
+
+ w3c_slidy.previous_slide(false);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 32) // space bar
+ {
+ w3c_slidy.next_slide(true);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 37) // Left arrow
+ {
+ w3c_slidy.previous_slide(!event.shiftKey);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 36) // Home
+ {
+ w3c_slidy.first_slide();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 35) // End
+ {
+ w3c_slidy.last_slide();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 39) // Right arrow
+ {
+ w3c_slidy.next_slide(!event.shiftKey);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 13) // Enter
+ {
+ if (w3c_slidy.outline)
+ {
+ if (w3c_slidy.outline.visible)
+ w3c_slidy.fold(w3c_slidy.outline);
+ else
+ w3c_slidy.unfold(w3c_slidy.outline);
+
+ return w3c_slidy.cancel(event);
+ }
+ }
+ else if (key == 188) // < for smaller fonts
+ {
+ w3c_slidy.smaller();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 190) // > for larger fonts
+ {
+ w3c_slidy.bigger();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 189 || key == 109) // - for smaller fonts
+ {
+ w3c_slidy.smaller();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 187 || key == 191 || key == 107) // = + for larger fonts
+ {
+ w3c_slidy.bigger();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 83) // S for smaller fonts
+ {
+ w3c_slidy.smaller();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 66) // B for larger fonts
+ {
+ w3c_slidy.bigger();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 90) // Z for last slide
+ {
+ w3c_slidy.last_slide();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 70) // F for toggle toolbar
+ {
+ w3c_slidy.toggle_toolbar();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 65) // A for toggle view single/all slides
+ {
+ w3c_slidy.toggle_view();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 75) // toggle action of left click for next page
+ {
+ w3c_slidy.mouse_click_enabled = !w3c_slidy.mouse_click_enabled;
+ var alert_msg = (w3c_slidy.mouse_click_enabled ?
+ "enabled" : "disabled") + " mouse click advance";
+
+ alert(alert_msg.localize());
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 84 || key == 67) // T or C for table of contents
+ {
+ if (w3c_slidy.toc)
+ w3c_slidy.toggle_table_of_contents();
+
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 72) // H for help
+ {
+ window.location = w3c_slidy.help_page;
+ return w3c_slidy.cancel(event);
+ }
+ //else alert("key code is "+ key);
+
+ return true;
+ },
+
+ // safe for both text/html and application/xhtml+xml
+ create_element: function (name) {
+ if (this.xhtml && (typeof document.createElementNS != 'undefined'))
+ return document.createElementNS("http://www.w3.org/1999/xhtml", name)
+
+ return document.createElement(name);
+ },
+
+ get_element_style: function (elem, IEStyleProp, CSSStyleProp) {
+ if (elem.currentStyle)
+ {
+ return elem.currentStyle[IEStyleProp];
+ }
+ else if (window.getComputedStyle)
+ {
+ var compStyle = window.getComputedStyle(elem, "");
+ return compStyle.getPropertyValue(CSSStyleProp);
+ }
+ return "";
+ },
+
+ // the string str is a whitespace separated list of tokens
+ // test if str contains a particular token, e.g. "slide"
+ has_token: function (str, token) {
+ if (str)
+ {
+ // define pattern as regular expression
+ var pattern = /\w+/g;
+
+ // check for matches
+ // place result in array
+ var result = str.match(pattern);
+
+ // now check if desired token is present
+ for (var i = 0; i < result.length; i++)
+ {
+ if (result[i] == token)
+ return true;
+ }
+ }
+
+ return false;
+ },
+
+ get_class_list: function (element) {
+ if (typeof element.className != 'undefined')
+ return element.className;
+
+ return element.getAttribute("class");
+ },
+
+ has_class: function (element, name) {
+ if (element.nodeType != 1)
+ return false;
+
+ var regexp = new RegExp("(^| )" + name + "\W*");
+
+ if (typeof element.className != 'undefined')
+ return regexp.test(element.className);
+
+ return regexp.test(element.getAttribute("class"));
+ },
+
+ remove_class: function (element, name) {
+ var regexp = new RegExp("(^| )" + name + "\W*");
+ var clsval = "";
+
+ if (typeof element.className != 'undefined')
+ {
+ clsval = element.className;
+
+ if (clsval)
+ {
+ clsval = clsval.replace(regexp, "");
+ element.className = clsval;
+ }
+ }
+ else
+ {
+ clsval = element.getAttribute("class");
+
+ if (clsval)
+ {
+ clsval = clsval.replace(regexp, "");
+ element.setAttribute("class", clsval);
+ }
+ }
+ },
+
+ add_class: function (element, name) {
+ if (!this.has_class(element, name))
+ {
+ if (typeof element.className != 'undefined')
+ element.className += " " + name;
+ else
+ {
+ var clsval = element.getAttribute("class");
+ clsval = clsval ? clsval + " " + name : name;
+ element.setAttribute("class", clsval);
+ }
+ }
+ },
+
+ // HTML elements that can be used with class="incremental"
+ // note that you can also put the class on containers like
+ // up, ol, dl, and div to make their contents appear
+ // incrementally. Upper case is used since this is what
+ // browsers report for HTML node names (text/html).
+ incremental_elements: null,
+ okay_for_incremental: function (name) {
+ if (!this.incremental_elements)
+ {
+ var inclist = new Array();
+ inclist["p"] = true;
+ inclist["pre"] = true;
+ inclist["li"] = true;
+ inclist["blockquote"] = true;
+ inclist["dt"] = true;
+ inclist["dd"] = true;
+ inclist["h2"] = true;
+ inclist["h3"] = true;
+ inclist["h4"] = true;
+ inclist["h5"] = true;
+ inclist["h6"] = true;
+ inclist["span"] = true;
+ inclist["address"] = true;
+ inclist["table"] = true;
+ inclist["tr"] = true;
+ inclist["th"] = true;
+ inclist["td"] = true;
+ inclist["img"] = true;
+ inclist["object"] = true;
+ this.incremental_elements = inclist;
+ }
+ return this.incremental_elements[name.toLowerCase()];
+ },
+
+ next_incremental_item: function (node) {
+ var br = this.is_xhtml ? "br" : "BR";
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+
+ for (;;)
+ {
+ node = w3c_slidy.next_node(slide, node);
+
+ if (node == null || node.parentNode == null)
+ break;
+
+ if (node.nodeType == 1) // ELEMENT
+ {
+ if (node.nodeName == br)
+ continue;
+
+ if (w3c_slidy.has_class(node, "incremental")
+ && w3c_slidy.okay_for_incremental(node.nodeName))
+ return node;
+
+ if (w3c_slidy.has_class(node.parentNode, "incremental")
+ && !w3c_slidy.has_class(node, "non-incremental"))
+ return node;
+ }
+ }
+
+ return node;
+ },
+
+ previous_incremental_item: function (node) {
+ var br = this.is_xhtml ? "br" : "BR";
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+
+ for (;;)
+ {
+ node = w3c_slidy.previous_node(slide, node);
+
+ if (node == null || node.parentNode == null)
+ break;
+
+ if (node.nodeType == 1)
+ {
+ if (node.nodeName == br)
+ continue;
+
+ if (w3c_slidy.has_class(node, "incremental")
+ && w3c_slidy.okay_for_incremental(node.nodeName))
+ return node;
+
+ if (w3c_slidy.has_class(node.parentNode, "incremental")
+ && !w3c_slidy.has_class(node, "non-incremental"))
+ return node;
+ }
+ }
+
+ return node;
+ },
+
+ // set visibility for all elements on current slide with
+ // a parent element with attribute class="incremental"
+ set_visibility_all_incremental: function (value) {
+ var node = this.next_incremental_item(null);
+
+ if (value == "hidden")
+ {
+ while (node)
+ {
+ w3c_slidy.add_class(node, "invisible");
+ node = w3c_slidy.next_incremental_item(node);
+ }
+ }
+ else // value == "visible"
+ {
+ while (node)
+ {
+ w3c_slidy.remove_class(node, "invisible");
+ node = w3c_slidy.next_incremental_item(node);
+ }
+ }
+ },
+
+ // reveal the next hidden item on the slide
+ // node is null or the node that was last revealed
+ reveal_next_item: function (node) {
+ node = w3c_slidy.next_incremental_item(node);
+
+ if (node && node.nodeType == 1) // an element
+ w3c_slidy.remove_class(node, "invisible");
+
+ return node;
+ },
+
+ // exact inverse of revealNextItem(node)
+ hide_previous_item: function (node) {
+ if (node && node.nodeType == 1) // an element
+ w3c_slidy.add_class(node, "invisible");
+
+ return this.previous_incremental_item(node);
+ },
+
+ // left to right traversal of root's content
+ next_node: function (root, node) {
+ if (node == null)
+ return root.firstChild;
+
+ if (node.firstChild)
+ return node.firstChild;
+
+ if (node.nextSibling)
+ return node.nextSibling;
+
+ for (;;)
+ {
+ node = node.parentNode;
+
+ if (!node || node == root)
+ break;
+
+ if (node && node.nextSibling)
+ return node.nextSibling;
+ }
+
+ return null;
+ },
+
+ // right to left traversal of root's content
+ previous_node: function (root, node) {
+ if (node == null)
+ {
+ node = root.lastChild;
+
+ if (node)
+ {
+ while (node.lastChild)
+ node = node.lastChild;
+ }
+
+ return node;
+ }
+
+ if (node.previousSibling)
+ {
+ node = node.previousSibling;
+
+ while (node.lastChild)
+ node = node.lastChild;
+
+ return node;
+ }
+
+ if (node.parentNode != root)
+ return node.parentNode;
+
+ return null;
+ },
+
+ previous_sibling_element: function (el) {
+ el = el.previousSibling;
+
+ while (el && el.nodeType != 1)
+ el = el.previousSibling;
+
+ return el;
+ },
+
+ next_sibling_element: function (el) {
+ el = el.nextSibling;
+
+ while (el && el.nodeType != 1)
+ el = el.nextSibling;
+
+ return el;
+ },
+
+ first_child_element: function (el) {
+ var node;
+
+ for (node = el.firstChild; node; node = node.nextSibling)
+ {
+ if (node.nodeType == 1)
+ break;
+ }
+
+ return node;
+ },
+
+ first_tag: function (element, tag) {
+ var node;
+
+ if (!this.is_xhtml)
+ tag = tag.toUpperCase();
+
+ for (node = element.firstChild; node; node = node.nextSibling)
+ {
+ if (node.nodeType == 1 && node.nodeName == tag)
+ break;
+ }
+
+ return node;
+ },
+
+ hide_selection: function () {
+ if (window.getSelection) // Firefox, Chromium, Safari, Opera
+ {
+ var selection = window.getSelection();
+
+ if (selection.rangeCount > 0)
+ {
+ var range = selection.getRangeAt(0);
+ range.collapse (false);
+ }
+ }
+ else // Internet Explorer
+ {
+ var textRange = document.selection.createRange ();
+ textRange.collapse (false);
+ }
+ },
+
+ get_selected_text: function () {
+ try
+ {
+ if (window.getSelection)
+ return window.getSelection().toString();
+
+ if (document.getSelection)
+ return document.getSelection().toString();
+
+ if (document.selection)
+ return document.selection.createRange().text;
+ }
+ catch (e)
+ {
+ }
+
+ return "";
+ },
+
+ // make note of length of selected text
+ // as this evaluates to zero in click event
+ mouse_button_up: function (e) {
+ w3c_slidy.selected_text_len = w3c_slidy.get_selected_text().length;
+ },
+
+ // right mouse button click is reserved for context menus
+ // it is more reliable to detect rightclick than leftclick
+ mouse_button_click: function (e) {
+ var rightclick = false;
+ var leftclick = false;
+ var middleclick = false;
+ var target;
+
+ if (!e)
+ var e = window.event;
+
+ if (e.target)
+ target = e.target;
+ else if (e.srcElement)
+ target = e.srcElement;
+
+ // work around Safari bug
+ if (target.nodeType == 3)
+ target = target.parentNode;
+
+ if (e.which) // all browsers except IE
+ {
+ leftclick = (e.which == 1);
+ middleclick = (e.which == 2);
+ rightclick = (e.which == 3);
+ }
+ else if (e.button)
+ {
+ // Konqueror gives 1 for left, 4 for middle
+ // IE6 gives 0 for left and not 1 as I expected
+
+ if (e.button == 4)
+ middleclick = true;
+
+ // all browsers agree on 2 for right button
+ rightclick = (e.button == 2);
+ }
+ else leftclick = true;
+/*
+ alert("you clicked over a " + target.nodeName + " element\n" +
+ "w3c_slidy.mouse_click_enabled = " + w3c_slidy.mouse_click_enabled + "\n" +
+ "leftclick = " + leftclick + "\n" +
+ "selected text length = " + w3c_slidy.selected_text_len);
+ //alert("selected text length = " + w3c_slidy.selected_text_len);
+*/
+ if (w3c_slidy.selected_text_len > 0)
+ {
+ w3c_slidy.stop_propagation(e);
+ e.cancel = true;
+ e.returnValue = false;
+ return false;
+ }
+
+ // dismiss table of contents
+ w3c_slidy.hide_table_of_contents();
+
+ // check if target is something that probably want's clicks
+ // e.g. a, embed, object, input, textarea, select, option
+ var tag = target.nodeName.toLowerCase();
+
+ if (w3c_slidy.mouse_click_enabled && leftclick &&
+ tag != "a" &&
+ tag != "embed" &&
+ tag != "object" &&
+ tag != "video" &&
+ tag != "input" &&
+ tag != "textarea" &&
+ tag != "select" &&
+ tag != "option" &&
+ !target.onclick)
+ {
+ w3c_slidy.next_slide(true);
+ w3c_slidy.stop_propagation(e);
+ e.cancel = true;
+ e.returnValue = false;
+ return false;
+ }
+ },
+
+ get_key: function (e)
+ {
+ var key;
+
+ // kludge around NS/IE differences
+ if (typeof window.event != "undefined")
+ key = window.event.keyCode;
+ else if (e.which)
+ key = e.which;
+
+ return key;
+ },
+
+ get_target: function (e) {
+ var target;
+
+ if (!e)
+ e = window.event;
+
+ if (e.target)
+ target = e.target;
+ else if (e.srcElement)
+ target = e.srcElement;
+
+ if (target.nodeType != 1)
+ target = target.parentNode;
+
+ return target;
+ },
+
+ // does display property provide correct defaults?
+ is_block: function (elem) {
+ var tag = elem.nodeName.toLowerCase();
+
+ return tag == "ol" || tag == "ul" || tag == "p" ||
+ tag == "li" || tag == "table" || tag == "pre" ||
+ tag == "h1" || tag == "h2" || tag == "h3" ||
+ tag == "h4" || tag == "h5" || tag == "h6" ||
+ tag == "blockquote" || tag == "address";
+ },
+
+ add_listener: function (element, event, handler) {
+ if (window.addEventListener)
+ element.addEventListener(event, handler, false);
+ else
+ element.attachEvent("on"+event, handler);
+ },
+
+ // used to prevent event propagation from field controls
+ stop_propagation: function (event) {
+ event = event ? event : window.event;
+ event.cancelBubble = true; // for IE
+
+ if (event.stopPropagation)
+ event.stopPropagation();
+
+ return true;
+ },
+
+ cancel: function (event) {
+ if (event)
+ {
+ event.cancel = true;
+ event.returnValue = false;
+
+ if (event.preventDefault)
+ event.preventDefault();
+ }
+
+ w3c_slidy.key_wanted = false;
+ return false;
+ }
+};
+
+// for each language define an associative array
+// and also the help text which is longer
+
+var w3c_slidy_i18n = {
+ strings_es: {
+ "slide":"pág.",
+ "help?":"Ayuda",
+ "contents?":"Índice",
+ "table of contents":"tabla de contenidos",
+ "Table of Contents":"Tabla de Contenidos",
+ "restart presentation":"Reiniciar presentación",
+ "restart?":"Inicio"
+ },
+ help_es:
+ "Utilice el ratón, barra espaciadora, teclas Izda/Dcha, " +
+ "o Re pág y Av pág. Use S y B para cambiar el tamaño de fuente.",
+
+ strings_ca: {
+ "slide":"pàg..",
+ "help?":"Ajuda",
+ "contents?":"Índex",
+ "table of contents":"taula de continguts",
+ "Table of Contents":"Taula de Continguts",
+ "restart presentation":"Reiniciar presentació",
+ "restart?":"Inici"
+ },
+ help_ca:
+ "Utilitzi el ratolí, barra espaiadora, tecles Esq./Dta. " +
+ "o Re pàg y Av pàg. Usi S i B per canviar grandària de font.",
+
+ strings_cs: {
+ "slide":"snímek",
+ "help?":"nápověda",
+ "contents?":"obsah",
+ "table of contents":"obsah prezentace",
+ "Table of Contents":"Obsah prezentace",
+ "restart presentation":"znovu spustit prezentaci",
+ "restart?":"restart"
+ },
+ help_cs:
+ "Prezentaci můžete procházet pomocí kliknutí myši, mezerníku, " +
+ "šipek vlevo a vpravo nebo kláves PageUp a PageDown. Písmo se " +
+ "dá zvětšit a zmenšit pomocí kláves B a S.",
+
+ strings_nl: {
+ "slide":"pagina",
+ "help?":"Help?",
+ "contents?":"Inhoud?",
+ "table of contents":"inhoudsopgave",
+ "Table of Contents":"Inhoudsopgave",
+ "restart presentation":"herstart presentatie",
+ "restart?":"Herstart?"
+ },
+ help_nl:
+ "Navigeer d.m.v. het muis, spatiebar, Links/Rechts toetsen, " +
+ "of PgUp en PgDn. Gebruik S en B om de karaktergrootte te veranderen.",
+
+ strings_de: {
+ "slide":"Seite",
+ "help?":"Hilfe",
+ "contents?":"Übersicht",
+ "table of contents":"Inhaltsverzeichnis",
+ "Table of Contents":"Inhaltsverzeichnis",
+ "restart presentation":"Präsentation neu starten",
+ "restart?":"Neustart"
+ },
+ help_de:
+ "Benutzen Sie die Maus, Leerschlag, die Cursortasten links/rechts oder " +
+ "Page up/Page Down zum Wechseln der Seiten und S und B für die Schriftgrösse.",
+
+ strings_pl: {
+ "slide":"slajd",
+ "help?":"pomoc?",
+ "contents?":"spis treści?",
+ "table of contents":"spis treści",
+ "Table of Contents":"Spis Treści",
+ "restart presentation":"Restartuj prezentację",
+ "restart?":"restart?"
+ },
+ help_pl:
+ "Zmieniaj slajdy klikając myszą, naciskając spację, strzałki lewo/prawo" +
+ "lub PgUp / PgDn. Użyj klawiszy S i B, aby zmienić rozmiar czczionki.",
+
+ strings_fr: {
+ "slide":"page",
+ "help?":"Aide",
+ "contents?":"Index",
+ "table of contents":"table des matières",
+ "Table of Contents":"Table des matières",
+ "restart presentation":"Recommencer l'exposé",
+ "restart?":"Début"
+ },
+ help_fr:
+ "Naviguez avec la souris, la barre d'espace, les flèches " +
+ "gauche/droite ou les touches Pg Up, Pg Dn. Utilisez " +
+ "les touches S et B pour modifier la taille de la police.",
+
+ strings_hu: {
+ "slide":"oldal",
+ "help?":"segítség",
+ "contents?":"tartalom",
+ "table of contents":"tartalomjegyzék",
+ "Table of Contents":"Tartalomjegyzék",
+ "restart presentation":"bemutató újraindítása",
+ "restart?":"újraindítás"
+ },
+ help_hu:
+ "Az oldalak közti lépkedéshez kattintson az egérrel, vagy " +
+ "használja a szóköz, a bal, vagy a jobb nyíl, illetve a Page Down, " +
+ "Page Up billentyűket. Az S és a B billentyűkkel változtathatja " +
+ "a szöveg méretét.",
+
+ strings_it: {
+ "slide":"pag.",
+ "help?":"Aiuto",
+ "contents?":"Indice",
+ "table of contents":"indice",
+ "Table of Contents":"Indice",
+ "restart presentation":"Ricominciare la presentazione",
+ "restart?":"Inizio"
+ },
+ help_it:
+ "Navigare con mouse, barra spazio, frecce sinistra/destra o " +
+ "PgUp e PgDn. Usare S e B per cambiare la dimensione dei caratteri.",
+
+ strings_el: {
+ "slide":"σελίδα",
+ "help?":"βοήθεια;",
+ "contents?":"περιεχόμενα;",
+ "table of contents":"πίνακας περιεχομένων",
+ "Table of Contents":"Πίνακας Περιεχομένων",
+ "restart presentation":"επανεκκίνηση παρουσίασης",
+ "restart?":"επανεκκίνηση;"
+ },
+ help_el:
+ "Πλοηγηθείτε με το κλίκ του ποντικιού, το space, τα βέλη αριστερά/δεξιά, " +
+ "ή Page Up και Page Down. Χρησιμοποιήστε τα πλήκτρα S και B για να αλλάξετε " +
+ "το μέγεθος της γραμματοσειράς.",
+
+ strings_ja: {
+ "slide":"スライド",
+ "help?":"ヘルプ",
+ "contents?":"目次",
+ "table of contents":"目次を表示",
+ "Table of Contents":"目次",
+ "restart presentation":"最初から再生",
+ "restart?":"最初から"
+ },
+ help_ja:
+ "マウス左クリック ・ スペース ・ 左右キー " +
+ "または Page Up ・ Page Downで操作, S ・ Bでフォントサイズ変更",
+
+ strings_zh: {
+ "slide":"幻灯片",
+ "help?":"帮助?",
+ "contents?":"内容?",
+ "table of contents":"目录",
+ "Table of Contents":"目录",
+ "restart presentation":"重新启动展示",
+ "restart?":"重新启动?"
+ },
+ help_zh:
+ "用鼠标点击, 空格条, 左右箭头, Pg Up 和 Pg Dn 导航. " +
+ "用 S, B 改变字体大小.",
+
+ strings_ru: {
+ "slide":"слайд",
+ "help?":"помощь?",
+ "contents?":"содержание?",
+ "table of contents":"оглавление",
+ "Table of Contents":"Оглавление",
+ "restart presentation":"перезапустить презентацию",
+ "restart?":"перезапуск?"
+ },
+ help_ru:
+ "Перемещайтесь кликая мышкой, используя клавишу пробел, стрелки" +
+ "влево/вправо или Pg Up и Pg Dn. Клавиши S и B меняют размер шрифта.",
+
+ strings_sv: {
+ "slide":"sida",
+ "help?":"hjälp",
+ "contents?":"innehåll",
+ "table of contents":"innehållsförteckning",
+ "Table of Contents":"Innehållsförteckning",
+ "restart presentation":"visa presentationen från början",
+ "restart?":"börja om"
+ },
+ help_sv:
+ "Bläddra med ett klick med vänstra musknappen, mellanslagstangenten, " +
+ "vänster- och högerpiltangenterna eller tangenterna Pg Up, Pg Dn. " +
+ "Använd tangenterna S och B för att ändra textens storlek.",
+
+// each such language array is declared in the localize array
+// which is set on string prototype and used as in "foo".localize();
+ localize: {
+ "es":this.strings_es,
+ "ca":this.strings_ca,
+ "cs":this.strings_cs,
+ "nl":this.strings_nl,
+ "de":this.strings_de,
+ "pl":this.strings_pl,
+ "fr":this.strings_fr,
+ "hu":this.strings_hu,
+ "it":this.strings_it,
+ "el":this.strings_el,
+ "jp":this.strings_ja,
+ "zh":this.strings_zh,
+ "ru":this.strings_ru,
+ "sv":this.strings_sv
+ },
+
+ init: function () {
+ var i18n = w3c_slidy_i18n;
+ var help_text = w3c_slidy.help_text;
+ i18n.strings_es[help_text] = i18n.help_es;
+ i18n.strings_ca[help_text] = i18n.help_ca;
+ i18n.strings_cs[help_text] = i18n.help_cs;
+ i18n.strings_nl[help_text] = i18n.help_nl;
+ i18n.strings_de[help_text] = i18n.help_de;
+ i18n.strings_pl[help_text] = i18n.help_pl;
+ i18n.strings_fr[help_text] = i18n.help_fr;
+ i18n.strings_hu[help_text] = i18n.help_hu;
+ i18n.strings_it[help_text] = i18n.help_it;
+ i18n.strings_el[help_text] = i18n.help_el;
+ i18n.strings_ja[help_text] = i18n.help_ja;
+ i18n.strings_zh[help_text] = i18n.help_zh;
+ i18n.strings_ru[help_text] = i18n.help_ru;
+ i18n.strings_sv[help_text] = i18n.help_sv;
+
+ w3c_slidy.lang = document.body.parentNode.getAttribute("lang");
+
+ if (!w3c_slidy.lang)
+ w3c_slidy.lang = document.body.parentNode.getAttribute("xml:lang");
+
+ if (!w3c_slidy.lang)
+ w3c_slidy.lang = "en";
+
+ // add localize method to all strings
+ // for use as in "contents".localize()
+ String.prototype.localize = function() {
+ if (this == "")
+ return this;
+
+ // try full language code, e.g. en-US
+ var s, lookup = w3c_slidy_i18n.localize[w3c_slidy.lang];
+
+ if (lookup)
+ {
+ s = lookup[this];
+
+ if (s)
+ return s;
+ }
+
+ // strip country code suffix, e.g.
+ // try en if undefined for en-US
+ var lg = w3c_slidy.lang.split("-");
+
+ if (lg.length > 1)
+ {
+ lookup = w3c_slidy_i18n.localize[lg[0]];
+
+ if (lookup)
+ {
+ s = lookup[this];
+
+ if (s)
+ return s;
+ }
+ }
+
+ // otherwise string as is
+ return this;
+ };
+ }
+};
+
+// hack for back button behavior
+if (w3c_slidy.ie6 || w3c_slidy.ie7)
+{
+ document.write("<iframe id='historyFrame' " +
+ "src='javascript:\"<html"+"></"+"html>\"' " +
+ "height='1' width='1' " +
+ "style='position:absolute;left:-800px'></iframe>");
+}
+
+// attach event listeners for initialization
+w3c_slidy.set_up();
+
+// hide the slides as soon as body element is available
+// to reduce annoying screen mess before the onload event
+setTimeout(w3c_slidy.hide_slides, 50);
+
+/*]]>*/
+</script>
+</head>
+<body class="article" style="max-width:45em">
+<div id="header" class="slide">
+<h1>Running a basic Osmocom GSM network</h1>
+<span id="author">Harald Welte &lt;laforge@gnumonks.org&gt;</span><br />
+</div>
+<div class="sect1 slide">
+<h1 id="_what_this_talk_is_about">What this talk is about</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class=" incremental">
+<li>
+<span>
+Implementing GSM/GPRS network elements as FOSS
+</span>
+</li>
+<li>
+<span>
+Applied Protocol Archaeology
+</span>
+</li>
+<li>
+<span>
+Doing all of that on top of Linux (in userspace)
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_running_your_own_internet_style_network">Running your own Internet-style network</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+use off-the-shelf hardware (x86, Ethernet card)
+</span>
+</li>
+<li>
+<span>
+use any random Linux distribution
+</span>
+</li>
+<li>
+<span>
+configure Linux kernel TCP/IP network stack
+</span>
+<ul class="">
+<li>
+<span>
+enjoy fancy features like netfilter/iproute2/tc
+</span>
+</li>
+</ul>
+</li>
+<li>
+<span>
+use apache/lighttpd/nginx on the server
+</span>
+</li>
+<li>
+<span>
+use Firefox/chromium/konqueor/lynx on the client
+</span>
+</li>
+<li>
+<span>
+do whatever modification/optimization on any part of the stack
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_running_your_own_gsm_network">Running your own GSM network</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="paragraph"><p>Until 2009 the situation looked like this:</p></div>
+<ul class="">
+<li>
+<span>
+go to Ericsson/Huawei/ZTE/Nokia/Alcatel/&#8230;
+</span>
+</li>
+<li>
+<span>
+spend lots of time convincing them that you&#8217;re an eligible customer
+</span>
+</li>
+<li>
+<span>
+spend a six-digit figure for even the most basic full network
+</span>
+</li>
+<li>
+<span>
+end up with black boxes you can neither study nor improve
+</span>
+<ul class=" incremental">
+<li>
+<span>
+WTF?
+</span>
+</li>
+<li>
+<span>
+I&#8217;ve grown up with FOSS and the Internet. I know a better world.
+</span>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_why_no_cellular_foss">Why no cellular FOSS?</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+both cellular (2G/3G/4G) and TCP/IP/HTTP protocol specs are publicly
+ available for decades. Can you believe it?
+</span>
+</li>
+<li>
+<span>
+Internet protocol stacks have lots of FOSS implementations
+</span>
+</li>
+<li>
+<span>
+cellular protocol stacks have no FOSS implementations for the
+ first almost 20 years of their existence?
+</span>
+</li>
+<li>
+<span>
+it&#8217;s the classic conflict
+</span>
+<ul class=" incremental">
+<li>
+<span>
+classic circuit-switched telco vs. the BBS community
+</span>
+</li>
+<li>
+<span>
+ITU-T/OSI/ISO vs. Arpanet and TCP/IP
+</span>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_enter_osmocom">Enter Osmocom</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="paragraph"><p>In 2008, some people (most present in this room) started to write FOSS
+for GSM</p></div>
+<ul class="">
+<li>
+<span>
+to boldly go where no FOSS hacker has gone before
+</span>
+<ul class=" incremental">
+<li>
+<span>
+where protocol stacks are deep
+</span>
+</li>
+<li>
+<span>
+and acronyms are plentiful
+</span>
+</li>
+<li>
+<span>
+we went from <code>bs11-abis</code> to <code>bsc_hack</code> to <em>OpenBSC</em>
+</span>
+</li>
+<li>
+<span>
+many other related projects were created
+</span>
+</li>
+<li>
+<span>
+finally leading to the <em>Osmocom</em> umbrella project
+</span>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_classic_gsm_network_architecture">Classic GSM network architecture</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="imageblock">
+<div class="content">
+<img src="Gsm_structures.svg" alt="Gsm_structures.svg" width="850" />
+</div>
+</div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_gsm_acronyms_radio_access_network">GSM Acronyms, Radio Access Network</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="dlist"><dl class="">
+<dt class="hdlist1">
+MS
+</dt>
+<dd>
+<p>
+ Mobile Station (your phone)
+</p>
+</dd>
+<dt class="hdlist1">
+BTS
+</dt>
+<dd>
+<p>
+ Base Transceiver Station, consists of 1..n TRX
+</p>
+</dd>
+<dt class="hdlist1">
+TRX
+</dt>
+<dd>
+<p>
+ Transceiver for one radio channel, serves 8 TS
+</p>
+</dd>
+<dt class="hdlist1">
+TS
+</dt>
+<dd>
+<p>
+ Timeslots in the GSM radio interface; each runs a specific combination of logical channels
+</p>
+</dd>
+<dt class="hdlist1">
+BSC
+</dt>
+<dd>
+<p>
+ Base Station Controller
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_gsm_acronyms_core_network">GSM Acronyms, Core Network</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="dlist"><dl class="">
+<dt class="hdlist1">
+MSC
+</dt>
+<dd>
+<p>
+ Mobile Switching Center; Terminates MM + CC Sub-layers
+</p>
+</dd>
+<dt class="hdlist1">
+HLR
+</dt>
+<dd>
+<p>
+ Home Location Register; Subscriber Database
+</p>
+</dd>
+<dt class="hdlist1">
+SMSC
+</dt>
+<dd>
+<p>
+ SMS Service Center
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_gsm_acronyms_layer_2_3">GSM Acronyms, Layer 2 + 3</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="dlist"><dl class="">
+<dt class="hdlist1">
+LAPDm
+</dt>
+<dd>
+<p>
+ Link Access Protocol, D-Channel. Like LAPD in ISDN
+</p>
+</dd>
+<dt class="hdlist1">
+RR
+</dt>
+<dd>
+<p>
+ Radio Resource (establish/release dedicated channels)
+</p>
+</dd>
+<dt class="hdlist1">
+MM
+</dt>
+<dd>
+<p>
+ Mobility Management (registration, location, authentication)
+</p>
+</dd>
+<dt class="hdlist1">
+CC
+</dt>
+<dd>
+<p>
+ Call Control (voice, circuit switched data, fax)
+</p>
+</dd>
+<dt class="hdlist1">
+CM
+</dt>
+<dd>
+<p>
+ Connection Management
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_osmocom_gsm_components">Osmocom GSM components</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="imageblock">
+<div class="content">
+<img src="osmocom-gsm.svg" alt="osmocom-gsm.svg" width="850" />
+</div>
+</div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_classic_gsm_network_as_digraph">Classic GSM network as digraph</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="imageblock graphviz">
+<div class="content">
+<img src="running-osmo-gsm__1.png" alt="running-osmo-gsm__1.png" />
+</div>
+</div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_simplified_osmonitb_gsm_network">Simplified OsmoNITB GSM network</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="imageblock graphviz">
+<div class="content">
+<img src="running-osmo-gsm__2.png" alt="running-osmo-gsm__2.png" />
+</div>
+</div>
+<div class="paragraph"><p>which further reduces to the following minimal setup:</p></div>
+<div class="imageblock graphviz">
+<div class="content">
+<img src="running-osmo-gsm__3.png" alt="running-osmo-gsm__3.png" />
+</div>
+</div>
+<div class="paragraph"><p>So our minimal setup is a <em>Phone</em>, a <em>BTS</em> and <em>OsmoNITB</em>.</p></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_which_bts_to_use">Which BTS to use?</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+Proprietary BTS of classic vendor
+</span>
+<ul class="">
+<li>
+<span>
+Siemens BS-11 is what we started with
+</span>
+</li>
+<li>
+<span>
+Nokia, Ericsson, and others available 2nd hand
+</span>
+</li>
+</ul>
+</li>
+<li>
+<span>
+<em>OsmoBTS</em> software implementation, running with
+</span>
+<ul class="">
+<li>
+<span>
+Proprietary HW + PHY (DSP): <em>sysmoBTS</em>, or
+</span>
+</li>
+<li>
+<span>
+General purpose SDR (like USRP) + <em>OsmoTRX</em>
+</span>
+</li>
+</ul>
+</li>
+</ul>
+<div class="paragraph"><p>We assume a sysmoBTS in the following tutorial</p></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_osmobts_overview">OsmoBTS Overview</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="imageblock">
+<div class="content">
+<img src="osmo-bts.svg" alt="osmo-bts.svg" />
+</div>
+</div>
+<ul class="">
+<li>
+<span>
+Implementation of GSM BTS
+</span>
+</li>
+<li>
+<span>
+supports variety of hardware/PHY options
+</span>
+<ul class="">
+<li>
+<span>
+<code>osmo-bts-sysmo</code>: BTS family by sysmocom
+</span>
+</li>
+<li>
+<span>
+<code>osmo-bts-trx</code>: Used with <em>OsmoTRX</em> + general-purpose SDR
+</span>
+</li>
+<li>
+<span>
+<code>osmo-bts-octphy</code>: Octasic OCTBTS hardware / OCTSDR-2G PHY
+</span>
+</li>
+<li>
+<span>
+<code>osmo-bts-litecell15</code>: Nutaq Litecell 1.5 hardware/PHY
+</span>
+</li>
+</ul>
+</li>
+</ul>
+<div class="paragraph"><p>See separate talk about BTS hardware options later today.</p></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_bts_hardware_vs_bts_software">BTS Hardware vs. BTS software</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+A classic GSM BTS is hardware + software
+</span>
+</li>
+<li>
+<span>
+It has two interfaces
+</span>
+<ul class="">
+<li>
+<span>
+Um to the radio side, towards phones
+</span>
+</li>
+<li>
+<span>
+Abis to the wired back-haul side, towards BSC
+</span>
+</li>
+</ul>
+</li>
+<li>
+<span>
+with today&#8217;s flexible architecture, this is not always true
+</span>
+<ul class="">
+<li>
+<span>
+the hardware might just be a network-connected SDR and BTS software
+runs o a different CPU/computer, <em>or</em>
+</span>
+</li>
+<li>
+<span>
+the BTS and BSC, or even the NITB may run on the same board
+</span>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_physical_vs_logical_arch_sysmobts">Physical vs. Logical Arch (sysmoBTS)</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="imageblock graphviz">
+<div class="content">
+<img src="running-osmo-gsm__4.png" alt="running-osmo-gsm__4.png" />
+</div>
+</div>
+<div class="imageblock graphviz">
+<div class="content">
+<img src="running-osmo-gsm__5.png" alt="running-osmo-gsm__5.png" />
+</div>
+</div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_physical_vs_logical_arch_sdr_e_g_usrp_b2xx">Physical vs. Logical Arch (SDR e.g. USRP B2xx)</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="imageblock graphviz">
+<div class="content">
+<img src="running-osmo-gsm__6.png" alt="running-osmo-gsm__6.png" />
+</div>
+</div>
+<div class="imageblock graphviz">
+<div class="content">
+<img src="running-osmo-gsm__7.png" alt="running-osmo-gsm__7.png" />
+</div>
+</div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_ip_layer_traffic">IP layer traffic</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+Abis/IP signaling runs inside IPA multiplex inside TCP
+</span>
+<ul class="">
+<li>
+<span>
+Port 3002 and 3003 betewen BTS and BSC
+</span>
+</li>
+<li>
+<span>
+Connections initiated from BTS to BSC
+</span>
+</li>
+</ul>
+</li>
+<li>
+<span>
+Voice data is carried in RTP/UDP on dynamic ports
+</span>
+</li>
+</ul>
+<div class="paragraph"><p>&#8658; Make sure you permit the above communication in your
+network/firewall config</p></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_configuring_osmocom_software">Configuring Osmocom software</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+all <em>native</em> Osmo* GSM infrastructure programs share common architecture, as
+ defined by various libraries <em>libosmo{core,gsm,vty,abis,netif,&#8230;}</em>
+</span>
+</li>
+<li>
+<span>
+part of this is configuration handling
+</span>
+<ul class="">
+<li>
+<span>
+interactive configuration via command line interface (<strong>vty</strong>), similar
+ to Cisco routers
+</span>
+</li>
+<li>
+<span>
+based on a fork of the VTY code from Zebra/Quagga, now <em>libosmovty</em>
+</span>
+</li>
+</ul>
+</li>
+<li>
+<span>
+you can manually edit the config file,
+</span>
+</li>
+<li>
+<span>
+or use <code>configure terminal</code> and interactively change it
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_configuring_osmobts">Configuring OsmoBTS</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+<em>OsmoBTS</em> in our example scenario runs on the embedded ARM/Linux system
+ inside the <em>sysmoBTS</em>
+</span>
+</li>
+<li>
+<span>
+we access the <em>sysmoBTS</em> via serial console or ssh
+</span>
+</li>
+<li>
+<span>
+we then edit the configuration file <code>/etc/osmocom/osmo-bts.cfg</code> as
+ described in the following slide
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_configuring_osmobts_2">Configuring OsmoBTS</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="listingblock">
+<div class="content">
+<pre><code>bts 0
+ band DCS1800 <b>&lt;1&gt;</b>
+ ipa unit-id 1801 0 <b>&lt;2&gt;</b>
+ oml remote-ip 192.168.100.11 <b>&lt;3&gt;</b></code></pre>
+</div></div>
+<div class="colist arabic"><ol>
+<li>
+<p>
+the GSM frequency band in which the BTS operates
+</p>
+</li>
+<li>
+<p>
+the unit-id by which this BTS identifies itself to the BSC
+</p>
+</li>
+<li>
+<p>
+the IP address of the BSC (to establish the OML connection towards it)
+</p>
+</li>
+</ol></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">All other configuration is downloaded by the BSC via OML. So most
+BTS settings are configured in the BSC/NITB configuration file.</td>
+</tr></table>
+</div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_purpose_of_unit_id">Purpose of Unit ID</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+Unit IDs consist of three parts:
+</span>
+<ul class="">
+<li>
+<span>
+Site Number, BTS Number, TRX Number
+</span>
+</li>
+</ul>
+</li>
+</ul>
+<div class="imageblock graphviz">
+<div class="content">
+<img src="running-osmo-gsm__8.png" alt="running-osmo-gsm__8.png" />
+</div>
+</div>
+<ul class="">
+<li>
+<span>
+source IP of all BTSs would be identical
+</span>
+</li>
+</ul>
+<div class="paragraph"><p>&#8658; BSC identifies BTS on Unit ID, not on Source IP!</p></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_configuring_osmonitb">Configuring OsmoNITB</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+<em>OsmoNITB</em> is the <code>osmo-nitb</code> executable built from the <code>openbsc</code>
+ source tree / git repository
+</span>
+<ul class="">
+<li>
+<span>
+just your usual <code>git clone &amp;&amp; autoreconf -fi &amp;&amp; ./configure &amp;&amp; make install</code>
+</span>
+</li>
+<li>
+<span>
+(in reality, the <code>libosmo*</code> dependencies are required first&#8230;)
+</span>
+</li>
+<li>
+<span>
+nightly packages for Debian 8, Ubuntu 16.04 and 16.10 available
+</span>
+</li>
+</ul>
+</li>
+<li>
+<span>
+<em>OsmoNITB</em> runs on any Linux system, like your speakers' laptop
+</span>
+<ul class="">
+<li>
+<span>
+you can actually also run it on the ARM/Linux of the <em>sysmoBTS</em> itself,
+ having a literal <em>Network In The Box</em> with power as only external
+ dependency
+</span>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_configuring_osmonitb_2">Configuring OsmoNITB</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="listingblock">
+<div class="content">
+<pre><code>network
+ network country code 1 <b>&lt;1&gt;</b>
+ mobile network code 1 <b>&lt;2&gt;</b>
+ short name Osmocom <b>&lt;3&gt;</b>
+ long name Osmocom
+ auth policy closed <b>&lt;4&gt;</b>
+ encryption a5 0 <b>&lt;5&gt;</b></code></pre>
+</div></div>
+<div class="colist arabic"><ol>
+<li>
+<p>
+MCC (Country Code) e.g. 262 for Germany; 1 == Test
+</p>
+</li>
+<li>
+<p>
+MNC (Network Code) e.g. mcc=262, mnc=02 == Vodafone; 1 == Test
+</p>
+</li>
+<li>
+<p>
+Operator name to be sent to the phone <strong>after</strong> registration
+</p>
+</li>
+<li>
+<p>
+Only accept subscribers (SIM cards) explicitly authorized in HLR
+</p>
+</li>
+<li>
+<p>
+Use A5/0 (== no encryption)
+</p>
+</li>
+</ol></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_configuring_bts_in_osmonitb_bts">Configuring BTS in OsmoNITB (BTS)</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="listingblock">
+<div class="content">
+<pre><code>network
+ bts 0
+ type sysmobts <b>&lt;1&gt;</b>
+ band DCS1800 <b>&lt;2&gt;</b>
+ ms max power 33 <b>&lt;3&gt;</b>
+ periodic location update 6 <b>&lt;4&gt;</b>
+ ip.access unit_id 1801 0 <b>&lt;5&gt;</b>
+ codec-support fr hr efr amr <b>&lt;6&gt;</b></code></pre>
+</div></div>
+<div class="colist arabic"><ol>
+<li>
+<p>
+type of the BTS that we use (must match BTS)
+</p>
+</li>
+<li>
+<p>
+frequency band of the BTS (must match BTS)
+</p>
+</li>
+<li>
+<p>
+maximum transmit power phones are permitted (33 dBm == 2W)
+</p>
+</li>
+<li>
+<p>
+interval at which phones should send periodic location update (6 minutes)
+</p>
+</li>
+<li>
+<p>
+Unit ID of the BTS (must match BTS)
+</p>
+</li>
+<li>
+<p>
+Voice codecs supported by the BTS
+</p>
+</li>
+</ol></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_configuring_bts_in_osmonitb_trx">Configuring BTS in OsmoNITB (TRX)</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="listingblock">
+<div class="content">
+<pre><code>network
+ bts 0
+ trx 0
+ arfcn 871 <b>&lt;1&gt;</b>
+ max_power_red 0 <b>&lt;2&gt;</b>
+ timeslot 0
+ phys_chan_config CCCH+SDCCH4 <b>&lt;3&gt;</b>
+ timeslot 1
+ phys_chan_config TCH/F <b>&lt;4&gt;</b>
+ ...
+ timeslot 7
+ phys_chan_config PDCH <b>&lt;5&gt;</b></code></pre>
+</div></div>
+<div class="colist arabic"><ol>
+<li>
+<p>
+The RF channel number used by this TRX
+</p>
+</li>
+<li>
+<p>
+The maximum power <strong>reduction</strong> in dBm. 0 = no reduction
+</p>
+</li>
+<li>
+<p>
+Every BTS needs need one timeslot with a CCCH
+</p>
+</li>
+<li>
+<p>
+We configure TS1 to TS6 as TCH/F for voice
+</p>
+</li>
+<li>
+<p>
+We configure TS6 as PDCH for GPRS
+</p>
+</li>
+</ol></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_what_a_gsm_phone_does_after_power_up">What a GSM phone does after power-up</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+Check SIM card for last cell before switch-off
+</span>
+<ul class="">
+<li>
+<span>
+if that cell is found again, use that
+</span>
+</li>
+<li>
+<span>
+if not, perform a network scan
+</span>
+<ul class="">
+<li>
+<span>
+try to find strong carriers, check if they contain BCCH
+</span>
+</li>
+<li>
+<span>
+create a list of available cells + networks
+</span>
+</li>
+<li>
+<span>
+if one of the networks MCC+MNC matches first digits of <em>IMSI</em>, this is
+the home network, which has preference over others
+</span>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li>
+<span>
+perform <em>LOCATION UPDATE</em> (TYPE=IMSI ATTACH) procedure to network
+</span>
+</li>
+<li>
+<span>
+when network sends <em>LOCATION UPDATE ACCEPT</em>, <strong>camp</strong> on that cell
+</span>
+</li>
+</ul>
+<div class="paragraph"><p>&#8594; let&#8217;s check if we can perform <em>LOCATION UPDATE</em> on our own network</p></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_verifying_our_network">Verifying our network</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+look at stderr of <em>OsmoBTS</em> and <em>OsmoNITB</em>
+</span>
+<ul class="">
+<li>
+<span>
+<em>OsmoBTS</em> will terminate if Abis cannot be set-up
+</span>
+</li>
+<li>
+<span>
+expected to be re-spawned by init / systemd
+</span>
+</li>
+</ul>
+</li>
+<li>
+<span>
+use MS to search for networks, try manual registration
+</span>
+</li>
+<li>
+<span>
+observe registration attempts <code>logging level mm info</code>
+</span>
+</li>
+</ul>
+<div class="paragraph"><p>&#8594; should show <em>LOCATION UPDATE</em> request / reject / accept</p></div>
+<ul class="">
+<li>
+<span>
+use the VTY to explore system state (<code>show *</code>)
+</span>
+</li>
+<li>
+<span>
+use the VTY to change subscriber parameters like extension number
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_exploring_your_gsm_networks_services">Exploring your GSM networks services</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+use <code>*#100#</code> from any registered MS to obtain own number
+</span>
+</li>
+<li>
+<span>
+voice calls from mobile to mobile
+</span>
+</li>
+<li>
+<span>
+SMS from mobile to mobile
+</span>
+</li>
+<li>
+<span>
+SMS to/from external applications (via SMPP)
+</span>
+</li>
+<li>
+<span>
+voice to/from external PBX (via MNCC)
+</span>
+</li>
+<li>
+<span>
+explore the VTY interfaces of all network elements
+</span>
+<ul class="">
+<li>
+<span>
+send SMS from the command line
+</span>
+</li>
+<li>
+<span>
+experiment with <em>silent call</em> feature
+</span>
+</li>
+<li>
+<span>
+experiment with logging levels
+</span>
+</li>
+</ul>
+</li>
+<li>
+<span>
+use wireshark to investigate GSM protocols
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_using_the_vty">Using the VTY</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+The VTY can be used not only to configure, but also to interactively
+ explore the system status (<code>show</code> commands)
+</span>
+</li>
+<li>
+<span>
+Every Osmo* program has its own telnet port
+</span>
+</li>
+</ul>
+<div class="tableblock">
+<table rules="all"
+width="100%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<col width="50%" />
+<col width="50%" />
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">Program</p></td>
+<td align="left" valign="top"><p class="table">Telnet Port</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">OsmoPCU</p></td>
+<td align="left" valign="top"><p class="table">4240</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">OsmoBTS</p></td>
+<td align="left" valign="top"><p class="table">4241</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">OsmoNITB</p></td>
+<td align="left" valign="top"><p class="table">4242</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">OsmoSGSN</p></td>
+<td align="left" valign="top"><p class="table">4245</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<ul class="">
+<li>
+<span>
+ports are bound to 127.0.0.1 by default
+</span>
+</li>
+<li>
+<span>
+try tab-completion, <code>?</code> and <code>list</code> commands
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_using_the_vty_continued">Using the VTY (continued)</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+e.g. <code>show subsciber</code> to display data about subscriber:
+</span>
+</li>
+</ul>
+<div class="listingblock">
+<div class="content">
+<pre><code>OpenBSC&gt; show subscriber imsi 901700000003804
+ ID: 12, Authorized: 1
+ Extension: 3804
+ LAC: 0/0x0
+ IMSI: 901700000003804
+ TMSI: F2D4FA0A
+ Expiration Time: Mon, 07 Dec 2015 09:45:16 +0100
+ Paging: not paging Requests: 0
+ Use count: 1</code></pre>
+</div></div>
+<ul class="">
+<li>
+<span>
+try <code>show bts</code>, <code>show trx</code>, <code>show lchan</code>, <code>show statistics</code>, &#8230;
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_further_reading">Further Reading</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="dlist"><dl class="">
+<dt class="hdlist1">
+User Manuals
+</dt>
+<dd>
+<p>
+See <a href="http://ftp.osmocom.org/docs/latest/">http://ftp.osmocom.org/docs/latest/</a>
+</p>
+</dd>
+<dt class="hdlist1">
+Wiki
+</dt>
+<dd>
+<p>
+See <a href="http://osmocom.org/projects/openbsc">http://osmocom.org/projects/openbsc</a>
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_the_end">The End</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+so long, and thanks for all the fish
+</span>
+</li>
+<li>
+<span>
+I hope you have questions!
+</span>
+</li>
+<li>
+<span>
+have fun exploring mobile technologies using Osmocom
+</span>
+</li>
+<li>
+<span>
+interested in working with more acronyms? Come join the project!
+</span>
+</li>
+<li>
+<span>
+Check out <a href="https://osmocom.org/">https://osmocom.org/</a> and <a href="mailto:openbsc@lists.osmocom.org">openbsc@lists.osmocom.org</a>
+</span>
+</li>
+</ul>
+</div>
+</div>
+</body>
+</html>
diff --git a/2017/welcome_intro-osmocon2017/welcome_intro.adoc b/2017/welcome_intro-osmocon2017/welcome_intro.adoc
index 70c9e43..6e918a1 100644
--- a/2017/welcome_intro-osmocon2017/welcome_intro.adoc
+++ b/2017/welcome_intro-osmocon2017/welcome_intro.adoc
@@ -12,6 +12,7 @@ image:images/osmocon.png[width="90%"]
== A diverse audience
+[role="incremental"]
* Osmocom developers
* Commercial cellular Operators
* Community Wireless Network Operators
@@ -22,11 +23,14 @@ image:images/osmocon.png[width="90%"]
== Thanks to..
+[role="incremental"]
* Heike for organization, backoffice, registration
* Maike for ticket sales, registration
* our hosts here at JGH Berlin
* our Speakers
-* the anonymous Sponsor of the travel grants
+* the anonymous sponsor of the travel grants
+* C3VOC of Chaos Computer Club for video recordings
+* Everyone who ever contributed code to Osmocom!
== Schedule
@@ -103,7 +107,7 @@ Date: Tue Dec 23 20:25:15 2008 +0000
* organizes this event as Osmocom is no legal entity
* unfortunately is doing >= 80% of commits in Osmocom cellular
infrastructure projects.
-** Osmocom must not depend on sysmocom
+** Osmocom should not depend on sysmocom
** we need more commitment and contributions from all users and beneficiaries
== EOF
diff --git a/2017/welcome_intro-osmocon2017/welcome_intro.html b/2017/welcome_intro-osmocon2017/welcome_intro.html
new file mode 100644
index 0000000..1f0a70b
--- /dev/null
+++ b/2017/welcome_intro-osmocon2017/welcome_intro.html
@@ -0,0 +1,4205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+<head>
+<title>Welcome to Osmocom Conference 2017</title>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="copyright" content="Copyright &#169; 2017 by Harald Welte (License: CC-BY-SA)" />
+<meta name="generator" content="AsciiDoc 8.6.9" />
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overriden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+/* slidy.css
+
+ Copyright (c) 2005-2010 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+ W3C liability, trademark, document use and software licensing
+ rules apply, see:
+
+ http://www.w3.org/Consortium/Legal/copyright-documents
+ http://www.w3.org/Consortium/Legal/copyright-software
+*/
+
+/*
+ SJR: 2010-09-29: Modified for AsciiDoc slidy backend.
+ Mostly just commented out stuff that is handled by AsciiDoc's CSS files.
+*/
+
+body
+{
+ margin: 0 0 0 0;
+ padding: 0 0 0 0;
+ width: 100%;
+ height: 100%;
+ color: black;
+ background-color: white;
+/*
+ font-family: "Gill Sans MT", "Gill Sans", GillSans, sans-serif;
+*/
+ font-size: 14pt;
+}
+
+div.toolbar {
+ position: fixed; z-index: 200;
+ top: auto; bottom: 0; left: 0; right: 0;
+ height: 1.2em; text-align: right;
+ padding-left: 1em;
+ padding-right: 1em;
+ font-size: 60%;
+ color: red;
+ background-color: rgb(240,240,240);
+ border-top: solid 1px rgb(180,180,180);
+}
+
+div.toolbar span.copyright {
+ color: black;
+ margin-left: 0.5em;
+}
+
+div.initial_prompt {
+ position: absolute;
+ z-index: 1000;
+ bottom: 1.2em;
+ width: 90%;
+ background-color: rgb(200,200,200);
+ opacity: 0.35;
+ background-color: rgb(200,200,200, 0.35);
+ cursor: pointer;
+}
+
+div.initial_prompt p.help {
+ text-align: center;
+}
+
+div.initial_prompt p.close {
+ text-align: right;
+ font-style: italic;
+}
+
+div.slidy_toc {
+ position: absolute;
+ z-index: 300;
+ width: 60%;
+ max-width: 30em;
+ height: 30em;
+ overflow: auto;
+ top: auto;
+ right: auto;
+ left: 4em;
+ bottom: 4em;
+ padding: 1em;
+ background: rgb(240,240,240);
+ border-style: solid;
+ border-width: 2px;
+ font-size: 60%;
+}
+
+div.slidy_toc .toc_heading {
+ text-align: center;
+ width: 100%;
+ margin: 0;
+ margin-bottom: 1em;
+ border-bottom-style: solid;
+ border-bottom-color: rgb(180,180,180);
+ border-bottom-width: 1px;
+}
+
+div.slide {
+ z-index: 20;
+ margin: 0 0 0 0;
+ padding-top: 0;
+ padding-bottom: 0;
+ padding-left: 20px;
+ padding-right: 20px;
+ border-width: 0;
+ clear: both;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ line-height: 120%;
+ background-color: transparent;
+}
+
+div.background {
+ display: none;
+}
+
+div.handout {
+ margin-left: 20px;
+ margin-right: 20px;
+}
+
+div.slide.titlepage {
+ text-align: center;
+}
+
+div.slide.titlepage.h1 {
+ padding-top: 10%;
+}
+
+div.slide h1 {
+ padding-left: 0;
+ padding-right: 20pt;
+ padding-top: 4pt;
+ padding-bottom: 4pt;
+ margin-top: 0;
+ margin-left: 0;
+ margin-right: 60pt;
+ margin-bottom: 0.5em;
+ display: block;
+ font-size: 160%;
+ line-height: 1.2em;
+ background: transparent;
+}
+
+div.toc {
+ position: absolute;
+ top: auto;
+ bottom: 4em;
+ left: 4em;
+ right: auto;
+ width: 60%;
+ max-width: 30em;
+ height: 30em;
+ border: solid thin black;
+ padding: 1em;
+ background: rgb(240,240,240);
+ color: black;
+ z-index: 300;
+ overflow: auto;
+ display: block;
+ visibility: visible;
+}
+
+div.toc-heading {
+ width: 100%;
+ border-bottom: solid 1px rgb(180,180,180);
+ margin-bottom: 1em;
+ text-align: center;
+}
+
+/*
+pre {
+ font-size: 80%;
+ font-weight: bold;
+ line-height: 120%;
+ padding-top: 0.2em;
+ padding-bottom: 0.2em;
+ padding-left: 1em;
+ padding-right: 1em;
+ border-style: solid;
+ border-left-width: 1em;
+ border-top-width: thin;
+ border-right-width: thin;
+ border-bottom-width: thin;
+ border-color: #95ABD0;
+ color: #00428C;
+ background-color: #E4E5E7;
+}
+*/
+
+/*
+li pre { margin-left: 0; }
+
+blockquote { font-style: italic }
+
+img { background-color: transparent }
+
+p.copyright { font-size: smaller }
+*/
+
+.center { text-align: center }
+.footnote { font-size: smaller; margin-left: 2em; }
+
+/*
+a img { border-width: 0; border-style: none }
+*/
+
+a:visited { color: navy }
+a:link { color: navy }
+a:hover { color: red; text-decoration: underline }
+a:active { color: red; text-decoration: underline }
+
+a {text-decoration: none}
+.navbar a:link {color: white}
+.navbar a:visited {color: yellow}
+.navbar a:active {color: red}
+.navbar a:hover {color: red}
+
+/*
+ul { list-style-type: square; }
+ul ul { list-style-type: disc; }
+ul ul ul { list-style-type: circle; }
+ul ul ul ul { list-style-type: disc; }
+li { margin-left: 0.5em; margin-top: 0.5em; }
+li li { font-size: 85%; font-style: italic }
+li li li { font-size: 85%; font-style: normal }
+*/
+
+div dt
+{
+ margin-left: 0;
+ margin-top: 1em;
+ margin-bottom: 0.5em;
+ font-weight: bold;
+}
+div dd
+{
+ margin-left: 2em;
+ margin-bottom: 0.5em;
+}
+
+
+/*
+p,pre,ul,ol,blockquote,h2,h3,h4,h5,h6,dl,table {
+ margin-left: 1em;
+ margin-right: 1em;
+}
+*/
+
+p.subhead { font-weight: bold; margin-top: 2em; }
+
+.smaller { font-size: smaller }
+.bigger { font-size: 130% }
+
+/*
+td,th { padding: 0.2em }
+*/
+
+ul {
+ margin: 0.5em 1.5em 0.5em 1.5em;
+ padding: 0;
+}
+
+ol {
+ margin: 0.5em 1.5em 0.5em 1.5em;
+ padding: 0;
+}
+
+ul { list-style-type: square; }
+ul ul { list-style-type: disc; }
+ul ul ul { list-style-type: circle; }
+ul ul ul ul { list-style-type: disc; }
+
+/*
+ul li {
+ list-style: square;
+ margin: 0.1em 0em 0.6em 0;
+ padding: 0 0 0 0;
+ line-height: 140%;
+}
+
+ol li {
+ margin: 0.1em 0em 0.6em 1.5em;
+ padding: 0 0 0 0px;
+ line-height: 140%;
+ list-style-type: decimal;
+}
+
+li ul li {
+ font-size: 85%;
+ font-style: italic;
+ list-style-type: disc;
+ background: transparent;
+ padding: 0 0 0 0;
+}
+li li ul li {
+ font-size: 85%;
+ font-style: normal;
+ list-style-type: circle;
+ background: transparent;
+ padding: 0 0 0 0;
+}
+li li li ul li {
+ list-style-type: disc;
+ background: transparent;
+ padding: 0 0 0 0;
+}
+
+li ol li {
+ list-style-type: decimal;
+}
+
+
+li li ol li {
+ list-style-type: decimal;
+}
+*/
+
+/*
+ setting class="outline" on ol or ul makes it behave as an
+ ouline list where blocklevel content in li elements is
+ hidden by default and can be expanded or collapsed with
+ mouse click. Set class="expand" on li to override default
+*/
+
+ol.outline li:hover { cursor: pointer }
+ol.outline li.nofold:hover { cursor: default }
+
+ul.outline li:hover { cursor: pointer }
+ul.outline li.nofold:hover { cursor: default }
+
+ol.outline { list-style:decimal; }
+ol.outline ol { list-style-type:lower-alpha }
+
+ol.outline li.nofold {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/nofold-dim.gif) no-repeat 0px 0.5em;
+}
+ol.outline li.unfolded {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/fold-dim.gif) no-repeat 0px 0.5em;
+}
+ol.outline li.folded {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/unfold-dim.gif) no-repeat 0px 0.5em;
+}
+ol.outline li.unfolded:hover {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/fold.gif) no-repeat 0px 0.5em;
+}
+ol.outline li.folded:hover {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/unfold.gif) no-repeat 0px 0.5em;
+}
+
+ul.outline li.nofold {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/nofold-dim.gif) no-repeat 0px 0.5em;
+}
+ul.outline li.unfolded {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/fold-dim.gif) no-repeat 0px 0.5em;
+}
+ul.outline li.folded {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/unfold-dim.gif) no-repeat 0px 0.5em;
+}
+ul.outline li.unfolded:hover {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/fold.gif) no-repeat 0px 0.5em;
+}
+ul.outline li.folded:hover {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/unfold.gif) no-repeat 0px 0.5em;
+}
+
+/* for slides with class "title" in table of contents */
+a.titleslide { font-weight: bold; font-style: italic }
+
+/*
+ hide images for work around for save as bug
+ where browsers fail to save images used by CSS
+*/
+img.hidden { display: none; visibility: hidden }
+div.initial_prompt { display: none; visibility: hidden }
+
+ div.slide {
+ visibility: visible;
+ position: inherit;
+ }
+ div.handout {
+ border-top-style: solid;
+ border-top-width: thin;
+ border-top-color: black;
+ }
+
+@media screen {
+ .hidden { display: none; visibility: visible }
+
+ div.slide.hidden { display: block; visibility: visible }
+ div.handout.hidden { display: block; visibility: visible }
+ div.background { display: none; visibility: hidden }
+ body.single_slide div.initial_prompt { display: block; visibility: visible }
+ body.single_slide div.background { display: block; visibility: visible }
+ body.single_slide div.background.hidden { display: none; visibility: hidden }
+ body.single_slide .invisible { visibility: hidden }
+ body.single_slide .hidden { display: none; visibility: hidden }
+ body.single_slide div.slide { position: absolute }
+ body.single_slide div.handout { display: none; visibility: hidden }
+}
+
+@media print {
+ .hidden { display: block; visibility: visible }
+
+/*
+ div.slide pre { font-size: 60%; padding-left: 0.5em; }
+*/
+ div.toolbar { display: none; visibility: hidden; }
+ div.slidy_toc { display: none; visibility: hidden; }
+ div.background { display: none; visibility: hidden; }
+ div.slide { page-break-before: always }
+ /* :first-child isn't reliable for print media */
+ div.slide.first-slide { page-break-before: avoid }
+}
+
+
+/* SJR: AsciiDoc slidy backend tweaks */
+
+ol, ul {
+ margin: 0.8em 1.5em 0.8em 1.8em;
+}
+li > ul, li > ol {
+ margin-top: 0.5em;
+}
+
+.outline > li.folded,
+.outline > li.unfolded {
+ color: #527bbd;
+}
+ul > li{ color: #aaa; }
+ul > li > *, ol > li > * { color: black; }
+
+li {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+/* slidy.js
+
+ Copyright (c) 2005-2010 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+ W3C liability, trademark, document use and software licensing
+ rules apply, see:
+
+ http://www.w3.org/Consortium/Legal/copyright-documents
+ http://www.w3.org/Consortium/Legal/copyright-software
+*/
+
+// the slidy object implementation
+var w3c_slidy = {
+ // classify which kind of browser we're running under
+ ns_pos: (typeof window.pageYOffset!='undefined'),
+ khtml: ((navigator.userAgent).indexOf("KHTML") >= 0 ? true : false),
+ opera: ((navigator.userAgent).indexOf("Opera") >= 0 ? true : false),
+ ipad: ((navigator.userAgent).indexOf("iPad") >= 0 ? true : false),
+ iphone: ((navigator.userAgent).indexOf("iPhone") >= 0 ? true : false),
+ ie: (typeof document.all != "undefined" && !this.opera),
+ ie6: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 6") != -1),
+ ie7: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 7") != -1),
+ ie8: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 8") != -1),
+ ie9: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 9") != -1),
+ keyboardless: (this.ipad || this.iphone),
+
+ // are we running as XHTML? (doesn't work on Opera)
+ is_xhtml: /xml/.test(document.contentType),
+
+ slide_number: 0, // integer slide count: 0, 1, 2, ...
+ slide_number_element: null, // element containing slide number
+ slides: [], // set to array of slide div's
+ notes: [], // set to array of handout div's
+ backgrounds: [], // set to array of background div's
+ toolbar: null, // element containing toolbar
+ title: null, // document title
+ last_shown: null, // last incrementally shown item
+ eos: null, // span element for end of slide indicator
+ toc: null, // table of contents
+ outline: null, // outline element with the focus
+ selected_text_len: 0, // length of drag selection on document
+ view_all: 0, // 1 to view all slides + handouts
+ want_toolbar: true, // user preference to show/hide toolbar
+ mouse_click_enabled: true, // enables left click for next slide
+ scroll_hack: 0, // IE work around for position: fixed
+ disable_slide_click: false, // used by clicked anchors
+
+ lang: "en", // updated to language specified by html file
+
+ help_anchor: null, // used for keyboard focus hack in showToolbar()
+ help_page: "http://www.w3.org/Talks/Tools/Slidy2/help/help.html",
+ help_text: "Navigate with mouse click, space bar, Cursor Left/Right, " +
+ "or Pg Up and Pg Dn. Use S and B to change font size.",
+
+ size_index: 0,
+ size_adjustment: 0,
+ sizes: new Array("10pt", "12pt", "14pt", "16pt", "18pt", "20pt",
+ "22pt", "24pt", "26pt", "28pt", "30pt", "32pt"),
+
+ // needed for efficient resizing
+ last_width: 0,
+ last_height: 0,
+
+
+ // Needed for cross browser support for relative width/height on
+ // object elements. The work around is to save width/height attributes
+ // and then to recompute absolute width/height dimensions on resizing
+ objects: [],
+
+ // attach initialiation event handlers
+ set_up: function () {
+ var init = function() { w3c_slidy.init(); };
+ if (typeof window.addEventListener != "undefined")
+ window.addEventListener("load", init, false);
+ else
+ window.attachEvent("onload", init);
+ },
+
+ hide_slides: function () {
+ if (document.body && !w3c_slidy.initialized)
+ document.body.style.visibility = "hidden";
+ else
+ setTimeout(w3c_slidy.hide_slides, 50);
+ },
+
+ // hack to persuade IE to compute correct document height
+ // as needed for simulating fixed positioning of toolbar
+ ie_hack: function () {
+ window.resizeBy(0,-1);
+ window.resizeBy(0, 1);
+ },
+
+ init: function () {
+ //alert("slidy starting test 10");
+ document.body.style.visibility = "visible";
+ w3c_slidy_i18n.init();
+ this.add_toolbar();
+ this.wrap_implicit_slides();
+ this.collect_slides();
+ this.collect_notes();
+ this.collect_backgrounds();
+ this.objects = document.body.getElementsByTagName("object");
+ this.patch_anchors();
+ this.slide_number = this.find_slide_number(location.href);
+ window.offscreenbuffering = true;
+ this.size_adjustment = this.find_size_adjust();
+ this.time_left = this.find_duration();
+ this.hide_image_toolbar(); // suppress IE image toolbar popup
+ this.init_outliner(); // activate fold/unfold support
+ this.title = document.title;
+
+ // work around for opera bug
+ this.is_xhtml = (document.body.tagName == "BODY" ? false : true);
+
+ if (this.slides.length > 0)
+ {
+ var slide = this.slides[this.slide_number];
+
+ if (this.slide_number > 0)
+ {
+ this.set_visibility_all_incremental("visible");
+ this.last_shown = this.previous_incremental_item(null);
+ this.set_eos_status(true);
+ }
+ else
+ {
+ this.last_shown = null;
+ this.set_visibility_all_incremental("hidden");
+ this.set_eos_status(!this.next_incremental_item(this.last_shown));
+ }
+
+ this.set_location();
+ this.add_class(this.slides[0], "first-slide");
+ w3c_slidy.show_slide(slide);
+ }
+
+ this.toc = this.table_of_contents();
+
+ this.add_initial_prompt();
+
+ // bind event handlers without interfering with custom page scripts
+ // Tap events behave too weirdly to support clicks reliably on
+ // iPhone and iPad, so exclude these from click handler
+
+ if (!this.keyboardless)
+ this.add_listener(document.body, "click", this.mouse_button_click);
+
+ this.add_listener(document, "keydown", this.key_down);
+ this.add_listener(document, "keypress", this.key_press);
+ this.add_listener(window, "resize", this.resized);
+ this.add_listener(window, "scroll", this.scrolled);
+ this.add_listener(window, "unload", this.unloaded);
+
+ if (!document.body.onclick)
+ document.body.onclick = function () { };
+
+ this.single_slide_view();
+
+ //this.set_location();
+
+ this.resized();
+
+ if (this.ie7)
+ setTimeout(w3c_slidy.ie_hack, 100);
+
+ this.show_toolbar();
+
+ // for back button detection
+ setInterval(function () { w3c_slidy.check_location(); }, 200);
+ w3c_slidy.initialized = true;
+ },
+
+ // create div element with links to each slide
+ table_of_contents: function () {
+ var toc = this.create_element("div");
+ this.add_class(toc, "slidy_toc hidden");
+ //toc.setAttribute("tabindex", "0");
+
+ var heading = this.create_element("div");
+ this.add_class(heading, "toc-heading");
+ heading.innerHTML = "Table of Contents".localize();
+
+ toc.appendChild(heading);
+ var previous = null;
+
+ for (var i = 0; i < this.slides.length; ++i)
+ {
+ var title = this.has_class(this.slides[i], "title");
+ var num = document.createTextNode((i + 1) + ". ");
+
+ toc.appendChild(num);
+
+ var a = this.create_element("a");
+ a.setAttribute("href", "#(" + (i+1) + ")");
+
+ if (title)
+ this.add_class(a, "titleslide");
+
+ var name = document.createTextNode(this.slide_name(i));
+ a.appendChild(name);
+ a.onclick = w3c_slidy.toc_click;
+ a.onkeydown = w3c_slidy.toc_keydown;
+ a.previous = previous;
+
+ if (previous)
+ previous.next = a;
+
+ toc.appendChild(a);
+
+ if (i == 0)
+ toc.first = a;
+
+ if (i < this.slides.length - 1)
+ {
+ var br = this.create_element("br");
+ toc.appendChild(br);
+ }
+
+ previous = a;
+ }
+
+ toc.focus = function () {
+ if (this.first)
+ this.first.focus();
+ }
+
+ toc.onmouseup = w3c_slidy.mouse_button_up;
+
+ toc.onclick = function (e) {
+ e||(e=window.event);
+
+ if (w3c_slidy.selected_text_len <= 0)
+ w3c_slidy.hide_table_of_contents();
+
+ w3c_slidy.stop_propagation(e);
+
+ if (e.cancel != undefined)
+ e.cancel = true;
+
+ if (e.returnValue != undefined)
+ e.returnValue = false;
+
+ return false;
+ };
+
+ document.body.insertBefore(toc, document.body.firstChild);
+ return toc;
+ },
+
+ is_shown_toc: function () {
+ return !w3c_slidy.has_class(w3c_slidy.toc, "hidden");
+ },
+
+ show_table_of_contents: function () {
+ w3c_slidy.remove_class(w3c_slidy.toc, "hidden");
+ var toc = w3c_slidy.toc;
+ toc.focus();
+
+ if (w3c_slidy.ie7 && w3c_slidy.slide_number == 0)
+ setTimeout(w3c_slidy.ie_hack, 100);
+ },
+
+ hide_table_of_contents: function () {
+ w3c_slidy.add_class(w3c_slidy.toc, "hidden");
+
+ if (!w3c_slidy.opera)
+ w3c_slidy.help_anchor.focus();
+ },
+
+ toggle_table_of_contents: function () {
+ if (w3c_slidy.is_shown_toc())
+ w3c_slidy.hide_table_of_contents();
+ else
+ w3c_slidy.show_table_of_contents();
+ },
+
+ // called on clicking toc entry
+ toc_click: function (e) {
+ if (!e)
+ e = window.event;
+
+ var target = w3c_slidy.get_target(e);
+
+ if (target && target.nodeType == 1)
+ {
+ var uri = target.getAttribute("href");
+
+ if (uri)
+ {
+ //alert("going to " + uri);
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.slide_number = w3c_slidy.find_slide_number(uri);
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_location();
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+ w3c_slidy.show_slide(slide);
+ //target.focus();
+
+ try
+ {
+ if (!w3c_slidy.opera)
+ w3c_slidy.help_anchor.focus();
+ }
+ catch (e)
+ {
+ }
+ }
+ }
+
+ w3c_slidy.hide_table_of_contents(e);
+ if (w3c_slidy.ie7) w3c_slidy.ie_hack();
+ w3c_slidy.stop_propagation(e);
+ return w3c_slidy.cancel(e);
+ },
+
+ // called onkeydown for toc entry
+ toc_keydown: function (event) {
+ var key;
+
+ if (!event)
+ var event = window.event;
+
+ // kludge around NS/IE differences
+ if (window.event)
+ key = window.event.keyCode;
+ else if (event.which)
+ key = event.which;
+ else
+ return true; // Yikes! unknown browser
+
+ // ignore event if key value is zero
+ // as for alt on Opera and Konqueror
+ if (!key)
+ return true;
+
+ // check for concurrent control/command/alt key
+ // but are these only present on mouse events?
+
+ if (event.ctrlKey || event.altKey)
+ return true;
+
+ if (key == 13)
+ {
+ var uri = this.getAttribute("href");
+
+ if (uri)
+ {
+ //alert("going to " + uri);
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.slide_number = w3c_slidy.find_slide_number(uri);
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_location();
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+ w3c_slidy.show_slide(slide);
+ //target.focus();
+
+ try
+ {
+ if (!w3c_slidy.opera)
+ w3c_slidy.help_anchor.focus();
+ }
+ catch (e)
+ {
+ }
+ }
+
+ w3c_slidy.hide_table_of_contents();
+
+ if (self.ie7)
+ w3c_slidy.ie_hack();
+
+ return w3c_slidy.cancel(event);
+ }
+
+ if (key == 40 && this.next)
+ {
+ this.next.focus();
+ return w3c_slidy.cancel(event);
+ }
+
+ if (key == 38 && this.previous)
+ {
+ this.previous.focus();
+ return w3c_slidy.cancel(event);
+ }
+
+ return true;
+ },
+
+
+ // ### OBSOLETE ###
+ before_print: function () {
+ this.show_all_slides();
+ this.hide_toolbar();
+ alert("before print");
+ },
+
+ // ### OBSOLETE ###
+ after_print: function () {
+ if (!this.view_all)
+ {
+ this.single_slide_view();
+ this.show_toolbar();
+ }
+ alert("after print");
+ },
+
+ // ### OBSOLETE ###
+ print_slides: function () {
+ this.before_print();
+ window.print();
+ this.after_print();
+ },
+
+ // ### OBSOLETE ?? ###
+ toggle_view: function () {
+ if (this.view_all)
+ {
+ this.single_slide_view();
+ this.show_toolbar();
+ this.view_all = 0;
+ }
+ else
+ {
+ this.show_all_slides();
+ this.hide_toolbar();
+ this.view_all = 1;
+ }
+ },
+
+ // prepare for printing ### OBSOLETE ###
+ show_all_slides: function () {
+ this.remove_class(document.body, "single_slide");
+ this.set_visibility_all_incremental("visible");
+ },
+
+ // restore after printing ### OBSOLETE ###
+ single_slide_view: function () {
+ this.add_class(document.body, "single_slide");
+ this.set_visibility_all_incremental("visible");
+ this.last_shown = this.previous_incremental_item(null);
+ },
+
+ // suppress IE's image toolbar pop up
+ hide_image_toolbar: function () {
+ if (!this.ns_pos)
+ {
+ var images = document.getElementsByTagName("IMG");
+
+ for (var i = 0; i < images.length; ++i)
+ images[i].setAttribute("galleryimg", "no");
+ }
+ },
+
+ unloaded: function (e) {
+ //alert("unloaded");
+ },
+
+ // Safari and Konqueror don't yet support getComputedStyle()
+ // and they always reload page when location.href is updated
+ is_KHTML: function () {
+ var agent = navigator.userAgent;
+ return (agent.indexOf("KHTML") >= 0 ? true : false);
+ },
+
+ // find slide name from first h1 element
+ // default to document title + slide number
+ slide_name: function (index) {
+ var name = null;
+ var slide = this.slides[index];
+
+ var heading = this.find_heading(slide);
+
+ if (heading)
+ name = this.extract_text(heading);
+
+ if (!name)
+ name = this.title + "(" + (index + 1) + ")";
+
+ name.replace(/\&/g, "&amp;");
+ name.replace(/\</g, "&lt;");
+ name.replace(/\>/g, "&gt;");
+
+ return name;
+ },
+
+ // find first h1 element in DOM tree
+ find_heading: function (node) {
+ if (!node || node.nodeType != 1)
+ return null;
+
+ if (node.nodeName == "H1" || node.nodeName == "h1")
+ return node;
+
+ var child = node.firstChild;
+
+ while (child)
+ {
+ node = this.find_heading(child);
+
+ if (node)
+ return node;
+
+ child = child.nextSibling;
+ }
+
+ return null;
+ },
+
+ // recursively extract text from DOM tree
+ extract_text: function (node) {
+ if (!node)
+ return "";
+
+ // text nodes
+ if (node.nodeType == 3)
+ return node.nodeValue;
+
+ // elements
+ if (node.nodeType == 1)
+ {
+ node = node.firstChild;
+ var text = "";
+
+ while (node)
+ {
+ text = text + this.extract_text(node);
+ node = node.nextSibling;
+ }
+
+ return text;
+ }
+
+ return "";
+ },
+
+ // find copyright text from meta element
+ find_copyright: function () {
+ var name, content;
+ var meta = document.getElementsByTagName("meta");
+
+ for (var i = 0; i < meta.length; ++i)
+ {
+ name = meta[i].getAttribute("name");
+ content = meta[i].getAttribute("content");
+
+ if (name == "copyright")
+ return content;
+ }
+
+ return null;
+ },
+
+ find_size_adjust: function () {
+ var name, content, offset;
+ var meta = document.getElementsByTagName("meta");
+
+ for (var i = 0; i < meta.length; ++i)
+ {
+ name = meta[i].getAttribute("name");
+ content = meta[i].getAttribute("content");
+
+ if (name == "font-size-adjustment")
+ return 1 * content;
+ }
+
+ return 1;
+ },
+
+ // <meta name="duration" content="20" /> for 20 minutes
+ find_duration: function () {
+ var name, content, offset;
+ var meta = document.getElementsByTagName("meta");
+
+ for (var i = 0; i < meta.length; ++i)
+ {
+ name = meta[i].getAttribute("name");
+ content = meta[i].getAttribute("content");
+
+ if (name == "duration")
+ return 60000 * content;
+ }
+
+ return null;
+ },
+
+ replace_by_non_breaking_space: function (str) {
+ for (var i = 0; i < str.length; ++i)
+ str[i] = 160;
+ },
+
+ // ### CHECK ME ### is use of "li" okay for text/html?
+ // for XHTML do we also need to specify namespace?
+ init_outliner: function () {
+ var items = document.getElementsByTagName("li");
+
+ for (var i = 0; i < items.length; ++i)
+ {
+ var target = items[i];
+
+ if (!this.has_class(target.parentNode, "outline"))
+ continue;
+
+ target.onclick = this.outline_click;
+/* ### more work needed for IE6
+ if (!this.ns_pos)
+ {
+ target.onmouseover = this.hover_outline;
+ target.onmouseout = this.unhover_outline;
+ }
+*/
+ if (this.foldable(target))
+ {
+ target.foldable = true;
+ target.onfocus = function () {w3c_slidy.outline = this;};
+ target.onblur = function () {w3c_slidy.outline = null;};
+
+ if (!target.getAttribute("tabindex"))
+ target.setAttribute("tabindex", "0");
+
+ if (this.has_class(target, "expand"))
+ this.unfold(target);
+ else
+ this.fold(target);
+ }
+ else
+ {
+ this.add_class(target, "nofold");
+ target.visible = true;
+ target.foldable = false;
+ }
+ }
+ },
+
+ foldable: function (item) {
+ if (!item || item.nodeType != 1)
+ return false;
+
+ var node = item.firstChild;
+
+ while (node)
+ {
+ if (node.nodeType == 1 && this.is_block(node))
+ return true;
+
+ node = node.nextSibling;
+ }
+
+ return false;
+ },
+
+ // ### CHECK ME ### switch to add/remove "hidden" class
+ fold: function (item) {
+ if (item)
+ {
+ this.remove_class(item, "unfolded");
+ this.add_class(item, "folded");
+ }
+
+ var node = item ? item.firstChild : null;
+
+ while (node)
+ {
+ if (node.nodeType == 1 && this.is_block(node)) // element
+ {
+ w3c_slidy.add_class(node, "hidden");
+ }
+
+ node = node.nextSibling;
+ }
+
+ item.visible = false;
+ },
+
+ // ### CHECK ME ### switch to add/remove "hidden" class
+ unfold: function (item) {
+ if (item)
+ {
+ this.add_class(item, "unfolded");
+ this.remove_class(item, "folded");
+ }
+
+ var node = item ? item.firstChild : null;
+
+ while (node)
+ {
+ if (node.nodeType == 1 && this.is_block(node)) // element
+ {
+ w3c_slidy.remove_class(node, "hidden");
+ }
+
+ node = node.nextSibling;
+ }
+
+ item.visible = true;
+ },
+
+ outline_click: function (e) {
+ if (!e)
+ e = window.event;
+
+ var rightclick = false;
+ var target = w3c_slidy.get_target(e);
+
+ while (target && target.visible == undefined)
+ target = target.parentNode;
+
+ if (!target)
+ return true;
+
+ if (e.which)
+ rightclick = (e.which == 3);
+ else if (e.button)
+ rightclick = (e.button == 2);
+
+ if (!rightclick && target.visible != undefined)
+ {
+ if (target.foldable)
+ {
+ if (target.visible)
+ w3c_slidy.fold(target);
+ else
+ w3c_slidy.unfold(target);
+ }
+
+ w3c_slidy.stop_propagation(e);
+ e.cancel = true;
+ e.returnValue = false;
+ }
+
+ return false;
+ },
+
+ add_initial_prompt: function () {
+ var prompt = this.create_element("div");
+ prompt.setAttribute("class", "initial_prompt");
+
+ var p1 = this.create_element("p");
+ prompt.appendChild(p1);
+ p1.setAttribute("class", "help");
+
+ if (this.keyboardless)
+ p1.innerHTML = "Tap footer to move to next slide";
+ else
+ p1.innerHTML = "Space or Right Arrow to move to next " +
+ "slide, click help below for more details";
+
+ this.add_listener(prompt, "click", function (e) {
+ document.body.removeChild(prompt);
+ w3c_slidy.stop_propagation(e);
+
+ if (e.cancel != undefined)
+ e.cancel = true;
+
+ if (e.returnValue != undefined)
+ e.returnValue = false;
+
+ return false;
+ });
+
+ document.body.appendChild(prompt);
+ this.initial_prompt = prompt;
+ setTimeout(function() {document.body.removeChild(prompt);}, 5000);
+ },
+
+ add_toolbar: function () {
+ var counter, page;
+
+ this.toolbar = this.create_element("div");
+ this.toolbar.setAttribute("class", "toolbar");
+
+ // a reasonably behaved browser
+ if (this.ns_pos || !this.ie6)
+ {
+ var right = this.create_element("div");
+ right.setAttribute("style", "float: right; text-align: right");
+
+ counter = this.create_element("span")
+ counter.innerHTML = "slide".localize() + " n/m";
+ right.appendChild(counter);
+ this.toolbar.appendChild(right);
+
+ var left = this.create_element("div");
+ left.setAttribute("style", "text-align: left");
+
+ // global end of slide indicator
+ this.eos = this.create_element("span");
+ this.eos.innerHTML = "* ";
+ left.appendChild(this.eos);
+
+ var help = this.create_element("a");
+ help.setAttribute("href", this.help_page);
+ help.setAttribute("title", this.help_text.localize());
+ help.innerHTML = "help?".localize();
+ left.appendChild(help);
+ this.help_anchor = help; // save for focus hack
+
+ var gap1 = document.createTextNode(" ");
+ left.appendChild(gap1);
+
+ var contents = this.create_element("a");
+ contents.setAttribute("href", "javascript:w3c_slidy.toggle_table_of_contents()");
+ contents.setAttribute("title", "table of contents".localize());
+ contents.innerHTML = "contents?".localize();
+ left.appendChild(contents);
+
+ var gap2 = document.createTextNode(" ");
+ left.appendChild(gap2);
+
+ var copyright = this.find_copyright();
+
+ if (copyright)
+ {
+ var span = this.create_element("span");
+ span.className = "copyright";
+ span.innerHTML = copyright;
+ left.appendChild(span);
+ }
+
+ this.toolbar.setAttribute("tabindex", "0");
+ this.toolbar.appendChild(left);
+ }
+ else // IE6 so need to work around its poor CSS support
+ {
+ this.toolbar.style.position = (this.ie7 ? "fixed" : "absolute");
+ this.toolbar.style.zIndex = "200";
+ this.toolbar.style.width = "99.9%";
+ this.toolbar.style.height = "1.2em";
+ this.toolbar.style.top = "auto";
+ this.toolbar.style.bottom = "0";
+ this.toolbar.style.left = "0";
+ this.toolbar.style.right = "0";
+ this.toolbar.style.textAlign = "left";
+ this.toolbar.style.fontSize = "60%";
+ this.toolbar.style.color = "red";
+ this.toolbar.borderWidth = 0;
+ this.toolbar.className = "toolbar";
+ this.toolbar.style.background = "rgb(240,240,240)";
+
+ // would like to have help text left aligned
+ // and page counter right aligned, floating
+ // div's don't work, so instead use nested
+ // absolutely positioned div's.
+
+ var sp = this.create_element("span");
+ sp.innerHTML = "&nbsp;&nbsp;*&nbsp;";
+ this.toolbar.appendChild(sp);
+ this.eos = sp; // end of slide indicator
+
+ var help = this.create_element("a");
+ help.setAttribute("href", this.help_page);
+ help.setAttribute("title", this.help_text.localize());
+ help.innerHTML = "help?".localize();
+ this.toolbar.appendChild(help);
+ this.help_anchor = help; // save for focus hack
+
+ var gap1 = document.createTextNode(" ");
+ this.toolbar.appendChild(gap1);
+
+ var contents = this.create_element("a");
+ contents.setAttribute("href", "javascript:toggleTableOfContents()");
+ contents.setAttribute("title", "table of contents".localize());
+ contents.innerHTML = "contents?".localize();
+ this.toolbar.appendChild(contents);
+
+ var gap2 = document.createTextNode(" ");
+ this.toolbar.appendChild(gap2);
+
+ var copyright = this.find_copyright();
+
+ if (copyright)
+ {
+ var span = this.create_element("span");
+ span.innerHTML = copyright;
+ span.style.color = "black";
+ span.style.marginLeft = "0.5em";
+ this.toolbar.appendChild(span);
+ }
+
+ counter = this.create_element("div")
+ counter.style.position = "absolute";
+ counter.style.width = "auto"; //"20%";
+ counter.style.height = "1.2em";
+ counter.style.top = "auto";
+ counter.style.bottom = 0;
+ counter.style.right = "0";
+ counter.style.textAlign = "right";
+ counter.style.color = "red";
+ counter.style.background = "rgb(240,240,240)";
+
+ counter.innerHTML = "slide".localize() + " n/m";
+ this.toolbar.appendChild(counter);
+ }
+
+ // ensure that click isn't passed through to the page
+ this.toolbar.onclick =
+ function (e) {
+ if (!e)
+ e = window.event;
+
+ var target = e.target;
+
+ if (!target && e.srcElement)
+ target = e.srcElement;
+
+ // work around Safari bug
+ if (target && target.nodeType == 3)
+ target = target.parentNode;
+
+ w3c_slidy.stop_propagation(e);
+
+ if (target && target.nodeName.toLowerCase() != "a")
+ w3c_slidy.mouse_button_click(e);
+ };
+
+ this.slide_number_element = counter;
+ this.set_eos_status(false);
+ document.body.appendChild(this.toolbar);
+ },
+
+ // wysiwyg editors make it hard to use div elements
+ // e.g. amaya loses the div when you copy and paste
+ // this function wraps div elements around implicit
+ // slides which start with an h1 element and continue
+ // up to the next heading or div element
+ wrap_implicit_slides: function () {
+ var i, heading, node, next, div;
+ var headings = document.getElementsByTagName("h1");
+
+ if (!headings)
+ return;
+
+ for (i = 0; i < headings.length; ++i)
+ {
+ heading = headings[i];
+
+ if (heading.parentNode != document.body)
+ continue;
+
+ node = heading.nextSibling;
+
+ div = document.createElement("div");
+ this.add_class(div, "slide");
+ document.body.replaceChild(div, heading);
+ div.appendChild(heading);
+
+ while (node)
+ {
+ if (node.nodeType == 1 && // an element
+ (node.nodeName == "H1" ||
+ node.nodeName == "h1" ||
+ node.nodeName == "DIV" ||
+ node.nodeName == "div"))
+ break;
+
+ next = node.nextSibling;
+ node = document.body.removeChild(node);
+ div.appendChild(node);
+ node = next;
+ }
+ }
+ },
+
+// return new array of all slides
+ collect_slides: function () {
+ var slides = new Array();
+ var divs = document.body.getElementsByTagName("div");
+
+ for (var i = 0; i < divs.length; ++i)
+ {
+ div = divs.item(i);
+
+ if (this.has_class(div, "slide"))
+ {
+ // add slide to collection
+ slides[slides.length] = div;
+
+ // hide each slide as it is found
+ this.add_class(div, "hidden");
+
+ // add dummy <br/> at end for scrolling hack
+ var node1 = document.createElement("br");
+ div.appendChild(node1);
+ var node2 = document.createElement("br");
+ div.appendChild(node2);
+ }
+ else if (this.has_class(div, "background"))
+ { // work around for Firefox SVG reload bug
+ // which otherwise replaces 1st SVG graphic with 2nd
+ div.style.display = "block";
+ }
+ }
+
+ this.slides = slides;
+ },
+
+ // return new array of all <div class="handout">
+ collect_notes: function () {
+ var notes = new Array();
+ var divs = document.body.getElementsByTagName("div");
+
+ for (var i = 0; i < divs.length; ++i)
+ {
+ div = divs.item(i);
+
+ if (this.has_class(div, "handout"))
+ {
+ // add note to collection
+ notes[notes.length] = div;
+
+ // and hide it
+ this.add_class(div, "hidden");
+ }
+ }
+
+ this.notes = notes;
+ },
+
+ // return new array of all <div class="background">
+ // including named backgrounds e.g. class="background titlepage"
+ collect_backgrounds: function () {
+ var backgrounds = new Array();
+ var divs = document.body.getElementsByTagName("div");
+
+ for (var i = 0; i < divs.length; ++i)
+ {
+ div = divs.item(i);
+
+ if (this.has_class(div, "background"))
+ {
+ // add background to collection
+ backgrounds[backgrounds.length] = div;
+
+ // and hide it
+ this.add_class(div, "hidden");
+ }
+ }
+
+ this.backgrounds = backgrounds;
+ },
+
+ // set click handlers on all anchors
+ patch_anchors: function () {
+ var self = w3c_slidy;
+ var handler = function (event) {
+ // compare this.href with location.href
+ // for link to another slide in this doc
+
+ if (self.page_address(this.href) == self.page_address(location.href))
+ {
+ // yes, so find new slide number
+ var newslidenum = self.find_slide_number(this.href);
+
+ if (newslidenum != self.slide_number)
+ {
+ var slide = self.slides[self.slide_number];
+ self.hide_slide(slide);
+ self.slide_number = newslidenum;
+ slide = self.slides[self.slide_number];
+ self.show_slide(slide);
+ self.set_location();
+ }
+ }
+ else if (this.target == null)
+ location.href = this.href;
+
+ this.blur();
+ self.disable_slide_click = true;
+ };
+
+ var anchors = document.body.getElementsByTagName("a");
+
+ for (var i = 0; i < anchors.length; ++i)
+ {
+ if (window.addEventListener)
+ anchors[i].addEventListener("click", handler, false);
+ else
+ anchors[i].attachEvent("onclick", handler);
+ }
+ },
+
+ // ### CHECK ME ### see which functions are invoked via setTimeout
+ // either directly or indirectly for use of w3c_slidy vs this
+ show_slide_number: function () {
+ var timer = w3c_slidy.get_timer();
+ w3c_slidy.slide_number_element.innerHTML = timer + "slide".localize() + " " +
+ (w3c_slidy.slide_number + 1) + "/" + w3c_slidy.slides.length;
+ },
+
+ // every 200mS check if the location has been changed as a
+ // result of the user activating the Back button/menu item
+ // doesn't work for Opera < 9.5
+ check_location: function () {
+ var hash = location.hash;
+
+ if (w3c_slidy.slide_number > 0 && (hash == "" || hash == "#"))
+ w3c_slidy.goto_slide(0);
+ else if (hash.length > 2 && hash != "#("+(w3c_slidy.slide_number+1)+")")
+ {
+ var num = parseInt(location.hash.substr(2));
+
+ if (!isNaN(num))
+ w3c_slidy.goto_slide(num-1);
+ }
+
+ if (w3c_slidy.time_left && w3c_slidy.slide_number > 0)
+ {
+ w3c_slidy.show_slide_number();
+
+ if (w3c_slidy.time_left > 0)
+ w3c_slidy.time_left -= 200;
+ }
+ },
+
+ get_timer: function () {
+ var timer = "";
+ if (w3c_slidy.time_left)
+ {
+ var mins, secs;
+ secs = Math.floor(w3c_slidy.time_left/1000);
+ mins = Math.floor(secs / 60);
+ secs = secs % 60;
+ timer = (mins ? mins+"m" : "") + secs + "s ";
+ }
+
+ return timer;
+ },
+
+ // this doesn't push location onto history stack for IE
+ // for which a hidden iframe hack is needed: load page into
+ // the iframe with script that set's parent's location.hash
+ // but that won't work for standalone use unless we can
+ // create the page dynamically via a javascript: URL
+ set_location: function () {
+ var uri = w3c_slidy.page_address(location.href);
+ var hash = "#(" + (w3c_slidy.slide_number+1) + ")";
+
+ if (w3c_slidy.slide_number >= 0)
+ uri = uri + hash;
+
+ if (w3c_slidy.ie && !w3c_slidy.ie8)
+ w3c_slidy.push_hash(hash);
+
+ if (uri != location.href) // && !khtml
+ location.href = uri;
+
+ if (this.khtml)
+ hash = "(" + (w3c_slidy.slide_number+1) + ")";
+
+ if (!this.ie && location.hash != hash && location.hash != "")
+ location.hash = hash;
+
+ document.title = w3c_slidy.title + " (" + (w3c_slidy.slide_number+1) + ")";
+ w3c_slidy.show_slide_number();
+ },
+
+ page_address: function (uri) {
+ var i = uri.indexOf("#");
+
+ if (i < 0)
+ i = uri.indexOf("%23");
+
+ // check if anchor is entire page
+
+ if (i < 0)
+ return uri; // yes
+
+ return uri.substr(0, i);
+ },
+
+ // only used for IE6 and IE7
+ on_frame_loaded: function (hash) {
+ location.hash = hash;
+ var uri = w3c_slidy.page_address(location.href);
+ location.href = uri + hash;
+ },
+
+ // history hack with thanks to Bertrand Le Roy
+ push_hash: function (hash) {
+ if (hash == "") hash = "#(1)";
+ window.location.hash = hash;
+
+ var doc = document.getElementById("historyFrame").contentWindow.document;
+ doc.open("javascript:'<html></html>'");
+ // PWL modified this string literal to break the close script tag
+ // which otherwise gets parsed when incorporated
+ doc.write("<html><head><script type=\"text/javascript\">window.parent.w3c_slidy.on_frame_loaded('"+
+ (hash) + "');</" + "script></head><body>hello mum</body></html>");
+ doc.close();
+ },
+
+ // find current slide based upon location
+ // first find target anchor and then look
+ // for associated div element enclosing it
+ // finally map that to slide number
+ find_slide_number: function (uri) {
+ // first get anchor from page location
+
+ var i = uri.indexOf("#");
+
+ // check if anchor is entire page
+ if (i < 0)
+ return 0; // yes
+
+ var anchor = unescape(uri.substr(i+1));
+
+ // now use anchor as XML ID to find target
+ var target = document.getElementById(anchor);
+
+ if (!target)
+ {
+ // does anchor look like "(2)" for slide 2 ??
+ // where first slide is (1)
+ var re = /\((\d)+\)/;
+
+ if (anchor.match(re))
+ {
+ var num = parseInt(anchor.substring(1, anchor.length-1));
+
+ if (num > this.slides.length)
+ num = 1;
+
+ if (--num < 0)
+ num = 0;
+
+ return num;
+ }
+
+ // accept [2] for backwards compatibility
+ re = /\[(\d)+\]/;
+
+ if (anchor.match(re))
+ {
+ var num = parseInt(anchor.substring(1, anchor.length-1));
+
+ if (num > this.slides.length)
+ num = 1;
+
+ if (--num < 0)
+ num = 0;
+
+ return num;
+ }
+
+ // oh dear unknown anchor
+ return 0;
+ }
+
+ // search for enclosing slide
+
+ while (true)
+ {
+ // browser coerces html elements to uppercase!
+ if (target.nodeName.toLowerCase() == "div" &&
+ this.has_class(target, "slide"))
+ {
+ // found the slide element
+ break;
+ }
+
+ // otherwise try parent element if any
+
+ target = target.parentNode;
+
+ if (!target)
+ {
+ return 0; // no luck!
+ }
+ };
+
+ for (i = 0; i < slides.length; ++i)
+ {
+ if (slides[i] == target)
+ return i; // success
+ }
+
+ // oh dear still no luck
+ return 0;
+ },
+
+ previous_slide: function (incremental) {
+ if (!w3c_slidy.view_all)
+ {
+ var slide;
+
+ if ((incremental || w3c_slidy.slide_number == 0) && w3c_slidy.last_shown != null)
+ {
+ w3c_slidy.last_shown = w3c_slidy.hide_previous_item(w3c_slidy.last_shown);
+ w3c_slidy.set_eos_status(false);
+ }
+ else if (w3c_slidy.slide_number > 0)
+ {
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+
+ w3c_slidy.slide_number = w3c_slidy.slide_number - 1;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.set_visibility_all_incremental("visible");
+ w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);
+ w3c_slidy.set_eos_status(true);
+ w3c_slidy.show_slide(slide);
+ }
+
+ w3c_slidy.set_location();
+
+ if (!w3c_slidy.ns_pos)
+ w3c_slidy.refresh_toolbar(200);
+ }
+ },
+
+ next_slide: function (incremental) {
+ if (!w3c_slidy.view_all)
+ {
+ var slide, last = w3c_slidy.last_shown;
+
+ if (incremental || w3c_slidy.slide_number == w3c_slidy.slides.length - 1)
+ w3c_slidy.last_shown = w3c_slidy.reveal_next_item(w3c_slidy.last_shown);
+
+ if ((!incremental || w3c_slidy.last_shown == null) &&
+ w3c_slidy.slide_number < w3c_slidy.slides.length - 1)
+ {
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+
+ w3c_slidy.slide_number = w3c_slidy.slide_number + 1;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.show_slide(slide);
+ }
+ else if (!w3c_slidy.last_shown)
+ {
+ if (last && incremental)
+ w3c_slidy.last_shown = last;
+ }
+
+ w3c_slidy.set_location();
+
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+
+ if (!w3c_slidy.ns_pos)
+ w3c_slidy.refresh_toolbar(200);
+ }
+ },
+
+ // to first slide with nothing revealed
+ // i.e. state at start of presentation
+ first_slide: function () {
+ if (!w3c_slidy.view_all)
+ {
+ var slide;
+
+ if (w3c_slidy.slide_number != 0)
+ {
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+
+ w3c_slidy.slide_number = 0;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.show_slide(slide);
+ }
+
+ w3c_slidy.set_eos_status(
+ !w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+ w3c_slidy.set_location();
+ }
+ },
+
+ // goto last slide with everything revealed
+ // i.e. state at end of presentation
+ last_slide: function () {
+ if (!w3c_slidy.view_all)
+ {
+ var slide;
+
+ w3c_slidy.last_shown = null; //revealNextItem(lastShown);
+
+ if (w3c_slidy.last_shown == null &&
+ w3c_slidy.slide_number < w3c_slidy.slides.length - 1)
+ {
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.slide_number = w3c_slidy.slides.length - 1;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.set_visibility_all_incremental("visible");
+ w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);
+
+ w3c_slidy.show_slide(slide);
+ }
+ else
+ {
+ w3c_slidy.set_visibility_all_incremental("visible");
+ w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);
+ }
+
+ w3c_slidy.set_eos_status(true);
+ w3c_slidy.set_location();
+ }
+ },
+
+
+ // ### check this and consider add/remove class
+ set_eos_status: function (state) {
+ if (this.eos)
+ this.eos.style.color = (state ? "rgb(240,240,240)" : "red");
+ },
+
+ // first slide is 0
+ goto_slide: function (num) {
+ //alert("going to slide " + (num+1));
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.slide_number = num;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+ document.title = w3c_slidy.title + " (" + (w3c_slidy.slide_number+1) + ")";
+ w3c_slidy.show_slide(slide);
+ w3c_slidy.show_slide_number();
+ },
+
+
+ show_slide: function (slide) {
+ this.sync_background(slide);
+ window.scrollTo(0,0);
+ this.remove_class(slide, "hidden");
+ },
+
+ hide_slide: function (slide) {
+ this.add_class(slide, "hidden");
+ },
+
+ // show just the backgrounds pertinent to this slide
+ // when slide background-color is transparent
+ // this should now work with rgba color values
+ sync_background: function (slide) {
+ var background;
+ var bgColor;
+
+ if (slide.currentStyle)
+ bgColor = slide.currentStyle["backgroundColor"];
+ else if (document.defaultView)
+ {
+ var styles = document.defaultView.getComputedStyle(slide,null);
+
+ if (styles)
+ bgColor = styles.getPropertyValue("background-color");
+ else // broken implementation probably due Safari or Konqueror
+ {
+ //alert("defective implementation of getComputedStyle()");
+ bgColor = "transparent";
+ }
+ }
+ else
+ bgColor == "transparent";
+
+ if (bgColor == "transparent" ||
+ bgColor.indexOf("rgba") >= 0 ||
+ bgColor.indexOf("opacity") >= 0)
+ {
+ var slideClass = this.get_class_list(slide);
+
+ for (var i = 0; i < this.backgrounds.length; i++)
+ {
+ background = this.backgrounds[i];
+
+ var bgClass = this.get_class_list(background);
+
+ if (this.matching_background(slideClass, bgClass))
+ this.remove_class(background, "hidden");
+ else
+ this.add_class(background, "hidden");
+ }
+ }
+ else // forcibly hide all backgrounds
+ this.hide_backgrounds();
+ },
+
+ hide_backgrounds: function () {
+ for (var i = 0; i < this.backgrounds.length; i++)
+ {
+ background = this.backgrounds[i];
+ this.add_class(background, "hidden");
+ }
+ },
+
+ // compare classes for slide and background
+ matching_background: function (slideClass, bgClass) {
+ var i, count, pattern, result;
+
+ // define pattern as regular expression
+ pattern = /\w+/g;
+
+ // check background class names
+ result = bgClass.match(pattern);
+
+ for (i = count = 0; i < result.length; i++)
+ {
+ if (result[i] == "hidden")
+ continue;
+
+ if (result[i] == "background")
+ continue;
+
+ ++count;
+ }
+
+ if (count == 0) // default match
+ return true;
+
+ // check for matches and place result in array
+ result = slideClass.match(pattern);
+
+ // now check if desired name is present for background
+ for (i = count = 0; i < result.length; i++)
+ {
+ if (result[i] == "hidden")
+ continue;
+
+ if (this.has_token(bgClass, result[i]))
+ return true;
+ }
+
+ return false;
+ },
+
+ resized: function () {
+ var width = 0;
+
+ if ( typeof( window.innerWidth ) == 'number' )
+ width = window.innerWidth; // Non IE browser
+ else if (document.documentElement && document.documentElement.clientWidth)
+ width = document.documentElement.clientWidth; // IE6
+ else if (document.body && document.body.clientWidth)
+ width = document.body.clientWidth; // IE4
+
+ var height = 0;
+
+ if ( typeof( window.innerHeight ) == 'number' )
+ height = window.innerHeight; // Non IE browser
+ else if (document.documentElement && document.documentElement.clientHeight)
+ height = document.documentElement.clientHeight; // IE6
+ else if (document.body && document.body.clientHeight)
+ height = document.body.clientHeight; // IE4
+
+ if (height && (width/height > 1.05*1024/768))
+ {
+ width = height * 1024.0/768;
+ }
+
+ // IE fires onresize even when only font size is changed!
+ // so we do a check to avoid blocking < and > actions
+ if (width != w3c_slidy.last_width || height != w3c_slidy.last_height)
+ {
+ if (width >= 1100)
+ w3c_slidy.size_index = 5; // 4
+ else if (width >= 1000)
+ w3c_slidy.size_index = 4; // 3
+ else if (width >= 800)
+ w3c_slidy.size_index = 3; // 2
+ else if (width >= 600)
+ w3c_slidy.size_index = 2; // 1
+ else if (width)
+ w3c_slidy.size_index = 0;
+
+ // add in font size adjustment from meta element e.g.
+ // <meta name="font-size-adjustment" content="-2" />
+ // useful when slides have too much content ;-)
+
+ if (0 <= w3c_slidy.size_index + w3c_slidy.size_adjustment &&
+ w3c_slidy.size_index + w3c_slidy.size_adjustment < w3c_slidy.sizes.length)
+ w3c_slidy.size_index = w3c_slidy.size_index + w3c_slidy.size_adjustment;
+
+ // enables cross browser use of relative width/height
+ // on object elements for use with SVG and Flash media
+ w3c_slidy.adjust_object_dimensions(width, height);
+
+ if (document.body.style.fontSize != w3c_slidy.sizes[w3c_slidy.size_index])
+ {
+ document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];
+ }
+
+ w3c_slidy.last_width = width;
+ w3c_slidy.last_height = height;
+
+ // force reflow to work around Mozilla bug
+ if (w3c_slidy.ns_pos)
+ {
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.show_slide(slide);
+ }
+
+ // force correct positioning of toolbar
+ w3c_slidy.refresh_toolbar(200);
+ }
+ },
+
+ scrolled: function () {
+ if (w3c_slidy.toolbar && !w3c_slidy.ns_pos && !w3c_slidy.ie7)
+ {
+ w3c_slidy.hack_offset = w3c_slidy.scroll_x_offset();
+ // hide toolbar
+ w3c_slidy.toolbar.style.display = "none";
+
+ // make it reappear later
+ if (w3c_slidy.scrollhack == 0 && !w3c_slidy.view_all)
+ {
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, 1000);
+ w3c_slidy.scrollhack = 1;
+ }
+ }
+ },
+
+ hide_toolbar: function () {
+ w3c_slidy.add_class(w3c_slidy.toolbar, "hidden");
+ window.focus();
+ },
+
+ // used to ensure IE refreshes toolbar in correct position
+ refresh_toolbar: function (interval) {
+ if (!w3c_slidy.ns_pos && !w3c_slidy.ie7)
+ {
+ w3c_slidy.hide_toolbar();
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, interval);
+ }
+ },
+
+ // restores toolbar after short delay
+ show_toolbar: function () {
+ if (w3c_slidy.want_toolbar)
+ {
+ w3c_slidy.toolbar.style.display = "block";
+
+ if (!w3c_slidy.ns_pos)
+ {
+ // adjust position to allow for scrolling
+ var xoffset = w3c_slidy.scroll_x_offset();
+ w3c_slidy.toolbar.style.left = xoffset;
+ w3c_slidy.toolbar.style.right = xoffset;
+
+ // determine vertical scroll offset
+ //var yoffset = scrollYOffset();
+
+ // bottom is doc height - window height - scroll offset
+ //var bottom = documentHeight() - lastHeight - yoffset
+
+ //if (yoffset > 0 || documentHeight() > lastHeight)
+ // bottom += 16; // allow for height of scrollbar
+
+ w3c_slidy.toolbar.style.bottom = 0; //bottom;
+ }
+
+ w3c_slidy.remove_class(w3c_slidy.toolbar, "hidden");
+ }
+
+ w3c_slidy.scrollhack = 0;
+
+
+ // set the keyboard focus to the help link on the
+ // toolbar to ensure that document has the focus
+ // IE doesn't always work with window.focus()
+ // and this hack has benefit of Enter for help
+
+ try
+ {
+ if (!w3c_slidy.opera)
+ w3c_slidy.help_anchor.focus();
+ }
+ catch (e)
+ {
+ }
+ },
+
+// invoked via F key
+ toggle_toolbar: function () {
+ if (!w3c_slidy.view_all)
+ {
+ if (w3c_slidy.has_class(w3c_slidy.toolbar, "hidden"))
+ {
+ w3c_slidy.remove_class(w3c_slidy.toolbar, "hidden")
+ w3c_slidy.want_toolbar = 1;
+ }
+ else
+ {
+ w3c_slidy.add_class(w3c_slidy.toolbar, "hidden")
+ w3c_slidy.want_toolbar = 0;
+ }
+ }
+ },
+
+ scroll_x_offset: function () {
+ if (window.pageXOffset)
+ return self.pageXOffset;
+
+ if (document.documentElement &&
+ document.documentElement.scrollLeft)
+ return document.documentElement.scrollLeft;
+
+ if (document.body)
+ return document.body.scrollLeft;
+
+ return 0;
+ },
+
+ scroll_y_offset: function () {
+ if (window.pageYOffset)
+ return self.pageYOffset;
+
+ if (document.documentElement &&
+ document.documentElement.scrollTop)
+ return document.documentElement.scrollTop;
+
+ if (document.body)
+ return document.body.scrollTop;
+
+ return 0;
+ },
+
+ // looking for a way to determine height of slide content
+ // the slide itself is set to the height of the window
+ optimize_font_size: function () {
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+
+ //var dh = documentHeight(); //getDocHeight(document);
+ var dh = slide.scrollHeight;
+ var wh = getWindowHeight();
+ var u = 100 * dh / wh;
+
+ alert("window utilization = " + u + "% (doc "
+ + dh + " win " + wh + ")");
+ },
+
+ // from document object
+ get_doc_height: function (doc) {
+ if (!doc)
+ doc = document;
+
+ if (doc && doc.body && doc.body.offsetHeight)
+ return doc.body.offsetHeight; // ns/gecko syntax
+
+ if (doc && doc.body && doc.body.scrollHeight)
+ return doc.body.scrollHeight;
+
+ alert("couldn't determine document height");
+ },
+
+ get_window_height: function () {
+ if ( typeof( window.innerHeight ) == 'number' )
+ return window.innerHeight; // Non IE browser
+
+ if (document.documentElement && document.documentElement.clientHeight)
+ return document.documentElement.clientHeight; // IE6
+
+ if (document.body && document.body.clientHeight)
+ return document.body.clientHeight; // IE4
+ },
+
+ document_height: function () {
+ var sh, oh;
+
+ sh = document.body.scrollHeight;
+ oh = document.body.offsetHeight;
+
+ if (sh && oh)
+ {
+ return (sh > oh ? sh : oh);
+ }
+
+ // no idea!
+ return 0;
+ },
+
+ smaller: function () {
+ if (w3c_slidy.size_index > 0)
+ {
+ --w3c_slidy.size_index;
+ }
+
+ w3c_slidy.toolbar.style.display = "none";
+ document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.show_slide(slide);
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, 50);
+ },
+
+ bigger: function () {
+ if (w3c_slidy.size_index < w3c_slidy.sizes.length - 1)
+ {
+ ++w3c_slidy.size_index;
+ }
+
+ w3c_slidy.toolbar.style.display = "none";
+ document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.show_slide(slide);
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, 50);
+ },
+
+ // enables cross browser use of relative width/height
+ // on object elements for use with SVG and Flash media
+ // with thanks to Ivan Herman for the suggestion
+ adjust_object_dimensions: function (width, height) {
+ for( var i = 0; i < w3c_slidy.objects.length; i++ )
+ {
+ var obj = this.objects[i];
+ var mimeType = obj.getAttribute("type");
+
+ if (mimeType == "image/svg+xml" || mimeType == "application/x-shockwave-flash")
+ {
+ if ( !obj.initialWidth )
+ obj.initialWidth = obj.getAttribute("width");
+
+ if ( !obj.initialHeight )
+ obj.initialHeight = obj.getAttribute("height");
+
+ if ( obj.initialWidth && obj.initialWidth.charAt(obj.initialWidth.length-1) == "%" )
+ {
+ var w = parseInt(obj.initialWidth.slice(0, obj.initialWidth.length-1));
+ var newW = width * (w/100.0);
+ obj.setAttribute("width",newW);
+ }
+
+ if ( obj.initialHeight &&
+ obj.initialHeight.charAt(obj.initialHeight.length-1) == "%" )
+ {
+ var h = parseInt(obj.initialHeight.slice(0, obj.initialHeight.length-1));
+ var newH = height * (h/100.0);
+ obj.setAttribute("height", newH);
+ }
+ }
+ }
+ },
+
+ // needed for Opera to inhibit default behavior
+ // since Opera delivers keyPress even if keyDown
+ // was cancelled
+ key_press: function (event) {
+ if (!event)
+ event = window.event;
+
+ if (!w3c_slidy.key_wanted)
+ return w3c_slidy.cancel(event);
+
+ return true;
+ },
+
+ // See e.g. http://www.quirksmode.org/js/events/keys.html for keycodes
+ key_down: function (event) {
+ var key;
+
+ w3c_slidy.key_wanted = true;
+
+ if (!event)
+ event = window.event;
+
+ // kludge around NS/IE differences
+ if (window.event)
+ key = window.event.keyCode;
+ else if (event.which)
+ key = event.which;
+ else
+ return true; // Yikes! unknown browser
+
+ // ignore event if key value is zero
+ // as for alt on Opera and Konqueror
+ if (!key)
+ return true;
+
+ // check for concurrent control/command/alt key
+ // but are these only present on mouse events?
+
+ if (event.ctrlKey || event.altKey || event.metaKey)
+ return true;
+
+ // dismiss table of contents if visible
+ if (w3c_slidy.is_shown_toc() && key != 9 && key != 16 && key != 38 && key != 40)
+ {
+ w3c_slidy.hide_table_of_contents();
+
+ if (key == 27 || key == 84 || key == 67)
+ return w3c_slidy.cancel(event);
+ }
+
+ if (key == 34) // Page Down
+ {
+ if (w3c_slidy.view_all)
+ return true;
+
+ w3c_slidy.next_slide(false);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 33) // Page Up
+ {
+ if (w3c_slidy.view_all)
+ return true;
+
+ w3c_slidy.previous_slide(false);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 32) // space bar
+ {
+ w3c_slidy.next_slide(true);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 37) // Left arrow
+ {
+ w3c_slidy.previous_slide(!event.shiftKey);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 36) // Home
+ {
+ w3c_slidy.first_slide();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 35) // End
+ {
+ w3c_slidy.last_slide();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 39) // Right arrow
+ {
+ w3c_slidy.next_slide(!event.shiftKey);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 13) // Enter
+ {
+ if (w3c_slidy.outline)
+ {
+ if (w3c_slidy.outline.visible)
+ w3c_slidy.fold(w3c_slidy.outline);
+ else
+ w3c_slidy.unfold(w3c_slidy.outline);
+
+ return w3c_slidy.cancel(event);
+ }
+ }
+ else if (key == 188) // < for smaller fonts
+ {
+ w3c_slidy.smaller();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 190) // > for larger fonts
+ {
+ w3c_slidy.bigger();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 189 || key == 109) // - for smaller fonts
+ {
+ w3c_slidy.smaller();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 187 || key == 191 || key == 107) // = + for larger fonts
+ {
+ w3c_slidy.bigger();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 83) // S for smaller fonts
+ {
+ w3c_slidy.smaller();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 66) // B for larger fonts
+ {
+ w3c_slidy.bigger();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 90) // Z for last slide
+ {
+ w3c_slidy.last_slide();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 70) // F for toggle toolbar
+ {
+ w3c_slidy.toggle_toolbar();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 65) // A for toggle view single/all slides
+ {
+ w3c_slidy.toggle_view();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 75) // toggle action of left click for next page
+ {
+ w3c_slidy.mouse_click_enabled = !w3c_slidy.mouse_click_enabled;
+ var alert_msg = (w3c_slidy.mouse_click_enabled ?
+ "enabled" : "disabled") + " mouse click advance";
+
+ alert(alert_msg.localize());
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 84 || key == 67) // T or C for table of contents
+ {
+ if (w3c_slidy.toc)
+ w3c_slidy.toggle_table_of_contents();
+
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 72) // H for help
+ {
+ window.location = w3c_slidy.help_page;
+ return w3c_slidy.cancel(event);
+ }
+ //else alert("key code is "+ key);
+
+ return true;
+ },
+
+ // safe for both text/html and application/xhtml+xml
+ create_element: function (name) {
+ if (this.xhtml && (typeof document.createElementNS != 'undefined'))
+ return document.createElementNS("http://www.w3.org/1999/xhtml", name)
+
+ return document.createElement(name);
+ },
+
+ get_element_style: function (elem, IEStyleProp, CSSStyleProp) {
+ if (elem.currentStyle)
+ {
+ return elem.currentStyle[IEStyleProp];
+ }
+ else if (window.getComputedStyle)
+ {
+ var compStyle = window.getComputedStyle(elem, "");
+ return compStyle.getPropertyValue(CSSStyleProp);
+ }
+ return "";
+ },
+
+ // the string str is a whitespace separated list of tokens
+ // test if str contains a particular token, e.g. "slide"
+ has_token: function (str, token) {
+ if (str)
+ {
+ // define pattern as regular expression
+ var pattern = /\w+/g;
+
+ // check for matches
+ // place result in array
+ var result = str.match(pattern);
+
+ // now check if desired token is present
+ for (var i = 0; i < result.length; i++)
+ {
+ if (result[i] == token)
+ return true;
+ }
+ }
+
+ return false;
+ },
+
+ get_class_list: function (element) {
+ if (typeof element.className != 'undefined')
+ return element.className;
+
+ return element.getAttribute("class");
+ },
+
+ has_class: function (element, name) {
+ if (element.nodeType != 1)
+ return false;
+
+ var regexp = new RegExp("(^| )" + name + "\W*");
+
+ if (typeof element.className != 'undefined')
+ return regexp.test(element.className);
+
+ return regexp.test(element.getAttribute("class"));
+ },
+
+ remove_class: function (element, name) {
+ var regexp = new RegExp("(^| )" + name + "\W*");
+ var clsval = "";
+
+ if (typeof element.className != 'undefined')
+ {
+ clsval = element.className;
+
+ if (clsval)
+ {
+ clsval = clsval.replace(regexp, "");
+ element.className = clsval;
+ }
+ }
+ else
+ {
+ clsval = element.getAttribute("class");
+
+ if (clsval)
+ {
+ clsval = clsval.replace(regexp, "");
+ element.setAttribute("class", clsval);
+ }
+ }
+ },
+
+ add_class: function (element, name) {
+ if (!this.has_class(element, name))
+ {
+ if (typeof element.className != 'undefined')
+ element.className += " " + name;
+ else
+ {
+ var clsval = element.getAttribute("class");
+ clsval = clsval ? clsval + " " + name : name;
+ element.setAttribute("class", clsval);
+ }
+ }
+ },
+
+ // HTML elements that can be used with class="incremental"
+ // note that you can also put the class on containers like
+ // up, ol, dl, and div to make their contents appear
+ // incrementally. Upper case is used since this is what
+ // browsers report for HTML node names (text/html).
+ incremental_elements: null,
+ okay_for_incremental: function (name) {
+ if (!this.incremental_elements)
+ {
+ var inclist = new Array();
+ inclist["p"] = true;
+ inclist["pre"] = true;
+ inclist["li"] = true;
+ inclist["blockquote"] = true;
+ inclist["dt"] = true;
+ inclist["dd"] = true;
+ inclist["h2"] = true;
+ inclist["h3"] = true;
+ inclist["h4"] = true;
+ inclist["h5"] = true;
+ inclist["h6"] = true;
+ inclist["span"] = true;
+ inclist["address"] = true;
+ inclist["table"] = true;
+ inclist["tr"] = true;
+ inclist["th"] = true;
+ inclist["td"] = true;
+ inclist["img"] = true;
+ inclist["object"] = true;
+ this.incremental_elements = inclist;
+ }
+ return this.incremental_elements[name.toLowerCase()];
+ },
+
+ next_incremental_item: function (node) {
+ var br = this.is_xhtml ? "br" : "BR";
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+
+ for (;;)
+ {
+ node = w3c_slidy.next_node(slide, node);
+
+ if (node == null || node.parentNode == null)
+ break;
+
+ if (node.nodeType == 1) // ELEMENT
+ {
+ if (node.nodeName == br)
+ continue;
+
+ if (w3c_slidy.has_class(node, "incremental")
+ && w3c_slidy.okay_for_incremental(node.nodeName))
+ return node;
+
+ if (w3c_slidy.has_class(node.parentNode, "incremental")
+ && !w3c_slidy.has_class(node, "non-incremental"))
+ return node;
+ }
+ }
+
+ return node;
+ },
+
+ previous_incremental_item: function (node) {
+ var br = this.is_xhtml ? "br" : "BR";
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+
+ for (;;)
+ {
+ node = w3c_slidy.previous_node(slide, node);
+
+ if (node == null || node.parentNode == null)
+ break;
+
+ if (node.nodeType == 1)
+ {
+ if (node.nodeName == br)
+ continue;
+
+ if (w3c_slidy.has_class(node, "incremental")
+ && w3c_slidy.okay_for_incremental(node.nodeName))
+ return node;
+
+ if (w3c_slidy.has_class(node.parentNode, "incremental")
+ && !w3c_slidy.has_class(node, "non-incremental"))
+ return node;
+ }
+ }
+
+ return node;
+ },
+
+ // set visibility for all elements on current slide with
+ // a parent element with attribute class="incremental"
+ set_visibility_all_incremental: function (value) {
+ var node = this.next_incremental_item(null);
+
+ if (value == "hidden")
+ {
+ while (node)
+ {
+ w3c_slidy.add_class(node, "invisible");
+ node = w3c_slidy.next_incremental_item(node);
+ }
+ }
+ else // value == "visible"
+ {
+ while (node)
+ {
+ w3c_slidy.remove_class(node, "invisible");
+ node = w3c_slidy.next_incremental_item(node);
+ }
+ }
+ },
+
+ // reveal the next hidden item on the slide
+ // node is null or the node that was last revealed
+ reveal_next_item: function (node) {
+ node = w3c_slidy.next_incremental_item(node);
+
+ if (node && node.nodeType == 1) // an element
+ w3c_slidy.remove_class(node, "invisible");
+
+ return node;
+ },
+
+ // exact inverse of revealNextItem(node)
+ hide_previous_item: function (node) {
+ if (node && node.nodeType == 1) // an element
+ w3c_slidy.add_class(node, "invisible");
+
+ return this.previous_incremental_item(node);
+ },
+
+ // left to right traversal of root's content
+ next_node: function (root, node) {
+ if (node == null)
+ return root.firstChild;
+
+ if (node.firstChild)
+ return node.firstChild;
+
+ if (node.nextSibling)
+ return node.nextSibling;
+
+ for (;;)
+ {
+ node = node.parentNode;
+
+ if (!node || node == root)
+ break;
+
+ if (node && node.nextSibling)
+ return node.nextSibling;
+ }
+
+ return null;
+ },
+
+ // right to left traversal of root's content
+ previous_node: function (root, node) {
+ if (node == null)
+ {
+ node = root.lastChild;
+
+ if (node)
+ {
+ while (node.lastChild)
+ node = node.lastChild;
+ }
+
+ return node;
+ }
+
+ if (node.previousSibling)
+ {
+ node = node.previousSibling;
+
+ while (node.lastChild)
+ node = node.lastChild;
+
+ return node;
+ }
+
+ if (node.parentNode != root)
+ return node.parentNode;
+
+ return null;
+ },
+
+ previous_sibling_element: function (el) {
+ el = el.previousSibling;
+
+ while (el && el.nodeType != 1)
+ el = el.previousSibling;
+
+ return el;
+ },
+
+ next_sibling_element: function (el) {
+ el = el.nextSibling;
+
+ while (el && el.nodeType != 1)
+ el = el.nextSibling;
+
+ return el;
+ },
+
+ first_child_element: function (el) {
+ var node;
+
+ for (node = el.firstChild; node; node = node.nextSibling)
+ {
+ if (node.nodeType == 1)
+ break;
+ }
+
+ return node;
+ },
+
+ first_tag: function (element, tag) {
+ var node;
+
+ if (!this.is_xhtml)
+ tag = tag.toUpperCase();
+
+ for (node = element.firstChild; node; node = node.nextSibling)
+ {
+ if (node.nodeType == 1 && node.nodeName == tag)
+ break;
+ }
+
+ return node;
+ },
+
+ hide_selection: function () {
+ if (window.getSelection) // Firefox, Chromium, Safari, Opera
+ {
+ var selection = window.getSelection();
+
+ if (selection.rangeCount > 0)
+ {
+ var range = selection.getRangeAt(0);
+ range.collapse (false);
+ }
+ }
+ else // Internet Explorer
+ {
+ var textRange = document.selection.createRange ();
+ textRange.collapse (false);
+ }
+ },
+
+ get_selected_text: function () {
+ try
+ {
+ if (window.getSelection)
+ return window.getSelection().toString();
+
+ if (document.getSelection)
+ return document.getSelection().toString();
+
+ if (document.selection)
+ return document.selection.createRange().text;
+ }
+ catch (e)
+ {
+ }
+
+ return "";
+ },
+
+ // make note of length of selected text
+ // as this evaluates to zero in click event
+ mouse_button_up: function (e) {
+ w3c_slidy.selected_text_len = w3c_slidy.get_selected_text().length;
+ },
+
+ // right mouse button click is reserved for context menus
+ // it is more reliable to detect rightclick than leftclick
+ mouse_button_click: function (e) {
+ var rightclick = false;
+ var leftclick = false;
+ var middleclick = false;
+ var target;
+
+ if (!e)
+ var e = window.event;
+
+ if (e.target)
+ target = e.target;
+ else if (e.srcElement)
+ target = e.srcElement;
+
+ // work around Safari bug
+ if (target.nodeType == 3)
+ target = target.parentNode;
+
+ if (e.which) // all browsers except IE
+ {
+ leftclick = (e.which == 1);
+ middleclick = (e.which == 2);
+ rightclick = (e.which == 3);
+ }
+ else if (e.button)
+ {
+ // Konqueror gives 1 for left, 4 for middle
+ // IE6 gives 0 for left and not 1 as I expected
+
+ if (e.button == 4)
+ middleclick = true;
+
+ // all browsers agree on 2 for right button
+ rightclick = (e.button == 2);
+ }
+ else leftclick = true;
+/*
+ alert("you clicked over a " + target.nodeName + " element\n" +
+ "w3c_slidy.mouse_click_enabled = " + w3c_slidy.mouse_click_enabled + "\n" +
+ "leftclick = " + leftclick + "\n" +
+ "selected text length = " + w3c_slidy.selected_text_len);
+ //alert("selected text length = " + w3c_slidy.selected_text_len);
+*/
+ if (w3c_slidy.selected_text_len > 0)
+ {
+ w3c_slidy.stop_propagation(e);
+ e.cancel = true;
+ e.returnValue = false;
+ return false;
+ }
+
+ // dismiss table of contents
+ w3c_slidy.hide_table_of_contents();
+
+ // check if target is something that probably want's clicks
+ // e.g. a, embed, object, input, textarea, select, option
+ var tag = target.nodeName.toLowerCase();
+
+ if (w3c_slidy.mouse_click_enabled && leftclick &&
+ tag != "a" &&
+ tag != "embed" &&
+ tag != "object" &&
+ tag != "video" &&
+ tag != "input" &&
+ tag != "textarea" &&
+ tag != "select" &&
+ tag != "option" &&
+ !target.onclick)
+ {
+ w3c_slidy.next_slide(true);
+ w3c_slidy.stop_propagation(e);
+ e.cancel = true;
+ e.returnValue = false;
+ return false;
+ }
+ },
+
+ get_key: function (e)
+ {
+ var key;
+
+ // kludge around NS/IE differences
+ if (typeof window.event != "undefined")
+ key = window.event.keyCode;
+ else if (e.which)
+ key = e.which;
+
+ return key;
+ },
+
+ get_target: function (e) {
+ var target;
+
+ if (!e)
+ e = window.event;
+
+ if (e.target)
+ target = e.target;
+ else if (e.srcElement)
+ target = e.srcElement;
+
+ if (target.nodeType != 1)
+ target = target.parentNode;
+
+ return target;
+ },
+
+ // does display property provide correct defaults?
+ is_block: function (elem) {
+ var tag = elem.nodeName.toLowerCase();
+
+ return tag == "ol" || tag == "ul" || tag == "p" ||
+ tag == "li" || tag == "table" || tag == "pre" ||
+ tag == "h1" || tag == "h2" || tag == "h3" ||
+ tag == "h4" || tag == "h5" || tag == "h6" ||
+ tag == "blockquote" || tag == "address";
+ },
+
+ add_listener: function (element, event, handler) {
+ if (window.addEventListener)
+ element.addEventListener(event, handler, false);
+ else
+ element.attachEvent("on"+event, handler);
+ },
+
+ // used to prevent event propagation from field controls
+ stop_propagation: function (event) {
+ event = event ? event : window.event;
+ event.cancelBubble = true; // for IE
+
+ if (event.stopPropagation)
+ event.stopPropagation();
+
+ return true;
+ },
+
+ cancel: function (event) {
+ if (event)
+ {
+ event.cancel = true;
+ event.returnValue = false;
+
+ if (event.preventDefault)
+ event.preventDefault();
+ }
+
+ w3c_slidy.key_wanted = false;
+ return false;
+ }
+};
+
+// for each language define an associative array
+// and also the help text which is longer
+
+var w3c_slidy_i18n = {
+ strings_es: {
+ "slide":"pág.",
+ "help?":"Ayuda",
+ "contents?":"Índice",
+ "table of contents":"tabla de contenidos",
+ "Table of Contents":"Tabla de Contenidos",
+ "restart presentation":"Reiniciar presentación",
+ "restart?":"Inicio"
+ },
+ help_es:
+ "Utilice el ratón, barra espaciadora, teclas Izda/Dcha, " +
+ "o Re pág y Av pág. Use S y B para cambiar el tamaño de fuente.",
+
+ strings_ca: {
+ "slide":"pàg..",
+ "help?":"Ajuda",
+ "contents?":"Índex",
+ "table of contents":"taula de continguts",
+ "Table of Contents":"Taula de Continguts",
+ "restart presentation":"Reiniciar presentació",
+ "restart?":"Inici"
+ },
+ help_ca:
+ "Utilitzi el ratolí, barra espaiadora, tecles Esq./Dta. " +
+ "o Re pàg y Av pàg. Usi S i B per canviar grandària de font.",
+
+ strings_cs: {
+ "slide":"snímek",
+ "help?":"nápověda",
+ "contents?":"obsah",
+ "table of contents":"obsah prezentace",
+ "Table of Contents":"Obsah prezentace",
+ "restart presentation":"znovu spustit prezentaci",
+ "restart?":"restart"
+ },
+ help_cs:
+ "Prezentaci můžete procházet pomocí kliknutí myši, mezerníku, " +
+ "šipek vlevo a vpravo nebo kláves PageUp a PageDown. Písmo se " +
+ "dá zvětšit a zmenšit pomocí kláves B a S.",
+
+ strings_nl: {
+ "slide":"pagina",
+ "help?":"Help?",
+ "contents?":"Inhoud?",
+ "table of contents":"inhoudsopgave",
+ "Table of Contents":"Inhoudsopgave",
+ "restart presentation":"herstart presentatie",
+ "restart?":"Herstart?"
+ },
+ help_nl:
+ "Navigeer d.m.v. het muis, spatiebar, Links/Rechts toetsen, " +
+ "of PgUp en PgDn. Gebruik S en B om de karaktergrootte te veranderen.",
+
+ strings_de: {
+ "slide":"Seite",
+ "help?":"Hilfe",
+ "contents?":"Übersicht",
+ "table of contents":"Inhaltsverzeichnis",
+ "Table of Contents":"Inhaltsverzeichnis",
+ "restart presentation":"Präsentation neu starten",
+ "restart?":"Neustart"
+ },
+ help_de:
+ "Benutzen Sie die Maus, Leerschlag, die Cursortasten links/rechts oder " +
+ "Page up/Page Down zum Wechseln der Seiten und S und B für die Schriftgrösse.",
+
+ strings_pl: {
+ "slide":"slajd",
+ "help?":"pomoc?",
+ "contents?":"spis treści?",
+ "table of contents":"spis treści",
+ "Table of Contents":"Spis Treści",
+ "restart presentation":"Restartuj prezentację",
+ "restart?":"restart?"
+ },
+ help_pl:
+ "Zmieniaj slajdy klikając myszą, naciskając spację, strzałki lewo/prawo" +
+ "lub PgUp / PgDn. Użyj klawiszy S i B, aby zmienić rozmiar czczionki.",
+
+ strings_fr: {
+ "slide":"page",
+ "help?":"Aide",
+ "contents?":"Index",
+ "table of contents":"table des matières",
+ "Table of Contents":"Table des matières",
+ "restart presentation":"Recommencer l'exposé",
+ "restart?":"Début"
+ },
+ help_fr:
+ "Naviguez avec la souris, la barre d'espace, les flèches " +
+ "gauche/droite ou les touches Pg Up, Pg Dn. Utilisez " +
+ "les touches S et B pour modifier la taille de la police.",
+
+ strings_hu: {
+ "slide":"oldal",
+ "help?":"segítség",
+ "contents?":"tartalom",
+ "table of contents":"tartalomjegyzék",
+ "Table of Contents":"Tartalomjegyzék",
+ "restart presentation":"bemutató újraindítása",
+ "restart?":"újraindítás"
+ },
+ help_hu:
+ "Az oldalak közti lépkedéshez kattintson az egérrel, vagy " +
+ "használja a szóköz, a bal, vagy a jobb nyíl, illetve a Page Down, " +
+ "Page Up billentyűket. Az S és a B billentyűkkel változtathatja " +
+ "a szöveg méretét.",
+
+ strings_it: {
+ "slide":"pag.",
+ "help?":"Aiuto",
+ "contents?":"Indice",
+ "table of contents":"indice",
+ "Table of Contents":"Indice",
+ "restart presentation":"Ricominciare la presentazione",
+ "restart?":"Inizio"
+ },
+ help_it:
+ "Navigare con mouse, barra spazio, frecce sinistra/destra o " +
+ "PgUp e PgDn. Usare S e B per cambiare la dimensione dei caratteri.",
+
+ strings_el: {
+ "slide":"σελίδα",
+ "help?":"βοήθεια;",
+ "contents?":"περιεχόμενα;",
+ "table of contents":"πίνακας περιεχομένων",
+ "Table of Contents":"Πίνακας Περιεχομένων",
+ "restart presentation":"επανεκκίνηση παρουσίασης",
+ "restart?":"επανεκκίνηση;"
+ },
+ help_el:
+ "Πλοηγηθείτε με το κλίκ του ποντικιού, το space, τα βέλη αριστερά/δεξιά, " +
+ "ή Page Up και Page Down. Χρησιμοποιήστε τα πλήκτρα S και B για να αλλάξετε " +
+ "το μέγεθος της γραμματοσειράς.",
+
+ strings_ja: {
+ "slide":"スライド",
+ "help?":"ヘルプ",
+ "contents?":"目次",
+ "table of contents":"目次を表示",
+ "Table of Contents":"目次",
+ "restart presentation":"最初から再生",
+ "restart?":"最初から"
+ },
+ help_ja:
+ "マウス左クリック ・ スペース ・ 左右キー " +
+ "または Page Up ・ Page Downで操作, S ・ Bでフォントサイズ変更",
+
+ strings_zh: {
+ "slide":"幻灯片",
+ "help?":"帮助?",
+ "contents?":"内容?",
+ "table of contents":"目录",
+ "Table of Contents":"目录",
+ "restart presentation":"重新启动展示",
+ "restart?":"重新启动?"
+ },
+ help_zh:
+ "用鼠标点击, 空格条, 左右箭头, Pg Up 和 Pg Dn 导航. " +
+ "用 S, B 改变字体大小.",
+
+ strings_ru: {
+ "slide":"слайд",
+ "help?":"помощь?",
+ "contents?":"содержание?",
+ "table of contents":"оглавление",
+ "Table of Contents":"Оглавление",
+ "restart presentation":"перезапустить презентацию",
+ "restart?":"перезапуск?"
+ },
+ help_ru:
+ "Перемещайтесь кликая мышкой, используя клавишу пробел, стрелки" +
+ "влево/вправо или Pg Up и Pg Dn. Клавиши S и B меняют размер шрифта.",
+
+ strings_sv: {
+ "slide":"sida",
+ "help?":"hjälp",
+ "contents?":"innehåll",
+ "table of contents":"innehållsförteckning",
+ "Table of Contents":"Innehållsförteckning",
+ "restart presentation":"visa presentationen från början",
+ "restart?":"börja om"
+ },
+ help_sv:
+ "Bläddra med ett klick med vänstra musknappen, mellanslagstangenten, " +
+ "vänster- och högerpiltangenterna eller tangenterna Pg Up, Pg Dn. " +
+ "Använd tangenterna S och B för att ändra textens storlek.",
+
+// each such language array is declared in the localize array
+// which is set on string prototype and used as in "foo".localize();
+ localize: {
+ "es":this.strings_es,
+ "ca":this.strings_ca,
+ "cs":this.strings_cs,
+ "nl":this.strings_nl,
+ "de":this.strings_de,
+ "pl":this.strings_pl,
+ "fr":this.strings_fr,
+ "hu":this.strings_hu,
+ "it":this.strings_it,
+ "el":this.strings_el,
+ "jp":this.strings_ja,
+ "zh":this.strings_zh,
+ "ru":this.strings_ru,
+ "sv":this.strings_sv
+ },
+
+ init: function () {
+ var i18n = w3c_slidy_i18n;
+ var help_text = w3c_slidy.help_text;
+ i18n.strings_es[help_text] = i18n.help_es;
+ i18n.strings_ca[help_text] = i18n.help_ca;
+ i18n.strings_cs[help_text] = i18n.help_cs;
+ i18n.strings_nl[help_text] = i18n.help_nl;
+ i18n.strings_de[help_text] = i18n.help_de;
+ i18n.strings_pl[help_text] = i18n.help_pl;
+ i18n.strings_fr[help_text] = i18n.help_fr;
+ i18n.strings_hu[help_text] = i18n.help_hu;
+ i18n.strings_it[help_text] = i18n.help_it;
+ i18n.strings_el[help_text] = i18n.help_el;
+ i18n.strings_ja[help_text] = i18n.help_ja;
+ i18n.strings_zh[help_text] = i18n.help_zh;
+ i18n.strings_ru[help_text] = i18n.help_ru;
+ i18n.strings_sv[help_text] = i18n.help_sv;
+
+ w3c_slidy.lang = document.body.parentNode.getAttribute("lang");
+
+ if (!w3c_slidy.lang)
+ w3c_slidy.lang = document.body.parentNode.getAttribute("xml:lang");
+
+ if (!w3c_slidy.lang)
+ w3c_slidy.lang = "en";
+
+ // add localize method to all strings
+ // for use as in "contents".localize()
+ String.prototype.localize = function() {
+ if (this == "")
+ return this;
+
+ // try full language code, e.g. en-US
+ var s, lookup = w3c_slidy_i18n.localize[w3c_slidy.lang];
+
+ if (lookup)
+ {
+ s = lookup[this];
+
+ if (s)
+ return s;
+ }
+
+ // strip country code suffix, e.g.
+ // try en if undefined for en-US
+ var lg = w3c_slidy.lang.split("-");
+
+ if (lg.length > 1)
+ {
+ lookup = w3c_slidy_i18n.localize[lg[0]];
+
+ if (lookup)
+ {
+ s = lookup[this];
+
+ if (s)
+ return s;
+ }
+ }
+
+ // otherwise string as is
+ return this;
+ };
+ }
+};
+
+// hack for back button behavior
+if (w3c_slidy.ie6 || w3c_slidy.ie7)
+{
+ document.write("<iframe id='historyFrame' " +
+ "src='javascript:\"<html"+"></"+"html>\"' " +
+ "height='1' width='1' " +
+ "style='position:absolute;left:-800px'></iframe>");
+}
+
+// attach event listeners for initialization
+w3c_slidy.set_up();
+
+// hide the slides as soon as body element is available
+// to reduce annoying screen mess before the onload event
+setTimeout(w3c_slidy.hide_slides, 50);
+
+/*]]>*/
+</script>
+</head>
+<body class="article" style="max-width:45em">
+<div id="header" class="slide">
+<h1>Welcome to Osmocom Conference 2017</h1>
+<span id="author">Harald Welte &lt;hwelte@sysmocom.de&gt;</span><br />
+</div>
+<div class="sect1 slide">
+<h1 id="_welcome_to_osmocom_conference_2017">Welcome to Osmocom Conference 2017</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="paragraph"><p><span class="image">
+<img src="images/osmocon.png" alt="images/osmocon.png" width="90%" />
+</span></p></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_a_diverse_audience">A diverse audience</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class=" incremental">
+<li>
+<span>
+Osmocom developers
+</span>
+</li>
+<li>
+<span>
+Commercial cellular Operators
+</span>
+</li>
+<li>
+<span>
+Community Wireless Network Operators
+</span>
+</li>
+<li>
+<span>
+IT Security
+</span>
+</li>
+<li>
+<span>
+Academia / Research
+</span>
+</li>
+<li>
+<span>
+Vendors of BTS hardware / PHY layers
+</span>
+</li>
+<li>
+<span>
+M2M / IoT Device Testing
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_thanks_to">Thanks to..</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class=" incremental">
+<li>
+<span>
+Heike for organization, backoffice, registration
+</span>
+</li>
+<li>
+<span>
+Maike for ticket sales, registration
+</span>
+</li>
+<li>
+<span>
+our hosts here at JGH Berlin
+</span>
+</li>
+<li>
+<span>
+our Speakers
+</span>
+</li>
+<li>
+<span>
+the anonymous sponsor of the travel grants
+</span>
+</li>
+<li>
+<span>
+C3VOC of Chaos Computer Club for video recordings
+</span>
+</li>
+<li>
+<span>
+Everyone who ever contributed code to Osmocom!
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_schedule">Schedule</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<col width="25%" />
+<col width="25%" />
+<col width="50%" />
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">10:00</p></td>
+<td align="left" valign="top"><p class="table">10:30</p></td>
+<td align="left" valign="top"><p class="table">Morning Break</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">12:30</p></td>
+<td align="left" valign="top"><p class="table">13:30</p></td>
+<td align="left" valign="top"><p class="table">Lunch Break</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">15:30</p></td>
+<td align="left" valign="top"><p class="table">16:00</p></td>
+<td align="left" valign="top"><p class="table">Afternoon Break</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">19:30</p></td>
+<td align="left" valign="top"><p class="table">-</p></td>
+<td align="left" valign="top"><p class="table">Social event (doors)</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">20:00</p></td>
+<td align="left" valign="top"><p class="table">-</p></td>
+<td align="left" valign="top"><p class="table">Social event (food)</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>and lots of technical talks in between, of course</p></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_social_event">Social Event</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+Address
+</span>
+<div class="listingblock">
+<div class="content">
+<pre><code>Restaurant "Zur Gerichtslaube"
+Poststr. 28
+10178 Berlin</code></pre>
+</div></div>
+</li>
+<li>
+<span>
+We have leaflets with map + address informations
+</span>
+</li>
+<li>
+<span>
+Get there: By yourself, using public transport or cabs
+</span>
+</li>
+<li>
+<span>
+Vegetarian + Vegan option available upon request
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_where_do_we_come_from">Where do we come from?</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+2008: Humble beginnings with bs11_abis + bsc_hack
+</span>
+<ul class="">
+<li>
+<span>
+Dieter Spaar + Harald Welte start with old Siemens BS-11 and ISDN-Card
+</span>
+</li>
+<li>
+<span>
+implement whatever needed beyond the BTS to simulate a telephony network
+</span>
+</li>
+<li>
+<span>
+turned into OpenBSC in December 2008
+</span>
+</li>
+</ul>
+</li>
+</ul>
+<div class="literalblock">
+<div class="content">
+<pre><code>commit 52b1f9888905df8aa6ecd50af900b63f5273de6a
+Author: Harald Welte &lt;laforge@gnumonks.org&gt;
+Date: Tue Dec 23 20:25:15 2008 +0000
+
+ initial commit of current OpenBSC state</code></pre>
+</div></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_from_openbsc_to_osmocom">From OpenBSC to Osmocom</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+2009: OpenBSC code matures beyond PoC
+</span>
+</li>
+<li>
+<span>
+2009: Support for ip.access nanoBTS
+</span>
+<ul class="">
+<li>
+<span>
+first multi-vendor BSC to our knowledge
+</span>
+</li>
+</ul>
+</li>
+<li>
+<span>
+2010: OsmocomBB project starts for phone-side GSM stack
+</span>
+</li>
+<li>
+<span>
+Start of Osmocom as umbrella project for OpenBSC + OsmocomBB
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_osmocom_101">Osmocom 101</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+umbrella project for <strong>O</strong> pen <strong>S</strong> ource <strong>MO</strong> bile <strong>COM</strong> munications
+</span>
+</li>
+<li>
+<span>
+FOSS developers exploring mobile communications
+</span>
+</li>
+<li>
+<span>
+much larger than the <strong>Cellular Infrastructure</strong> projects we talk about today
+</span>
+<ul class="">
+<li>
+<span>
+TETRA, Thuraya, DECT, OP25, SDR, SIMtrace and many others
+</span>
+</li>
+<li>
+<span>
+59 projects in <a href="https://osmocom.org/">https://osmocom.org/</a> redmine
+</span>
+</li>
+<li>
+<span>
+112 git repositories on <a href="https://git.osmocom.org/">https://git.osmocom.org/</a>
+</span>
+</li>
+</ul>
+</li>
+<li>
+<span>
+most well-known typically OsmocomBB, OpenBSC + rtl-sdr
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_community_collaborative_development">Community + Collaborative Development</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+Free Software is about <strong>collaborative development</strong>
+</span>
+<ul class="">
+<li>
+<span>
+shared investment in R&amp;D, while everyone can use full results
+</span>
+</li>
+<li>
+<span>
+it is <strong>not</strong> about a one-way producer/consumer relationship
+</span>
+</li>
+</ul>
+</li>
+<li>
+<span>
+sustainable projects need serious committment contributions from all
+ stake holders
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_sysmocom_s_f_m_c_gmbh">sysmocom - s.f.m.c. GmbH</h1>
+<div class="sectionbody" style="max-width:45em">
+<ul class="">
+<li>
+<span>
+founded in 2011 by two core Osmocom developers
+</span>
+</li>
+<li>
+<span>
+exists to drive/support Osmocom development
+</span>
+</li>
+<li>
+<span>
+does not claim (nor want) ownership over any part of Osmocom
+</span>
+</li>
+<li>
+<span>
+organizes this event as Osmocom is no legal entity
+</span>
+</li>
+<li>
+<span>
+unfortunately is doing &gt;= 80% of commits in Osmocom cellular
+ infrastructure projects.
+</span>
+<ul class="">
+<li>
+<span>
+Osmocom must not depend on sysmocom
+</span>
+</li>
+<li>
+<span>
+we need more commitment and contributions from all users and beneficiaries
+</span>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_eof">EOF</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="paragraph"><p>End of File</p></div>
+</div>
+</div>
+</body>
+</html>
personal git repositories of Harald Welte. Your mileage may vary